lnmp架構的安裝原理與步驟

                LNMP就是Linux+Nginx+MySQL+PHP,Linux作為服務器的操作系統,MySQL即為數據庫。是一組搭建動態網站的開源軟件架構,本身是各自獨立的軟件服務,放在一起使用擁有很高的兼容性,共同組成了一個強大的WEB應用程序平臺。

                Nginx為一款高性能Web服務器,本身是不能處理PHP的,當接收到請求時,判斷如果是PHP請求就會將請求交給PHP解釋器處理,然后將結果返回給Client。Nginx一般把請求轉發給fast-cgi管理進程處理,fast-cgi管理進程再選擇cgi子進程處理請求,然后把結果返給Nginx。

                LNMP就是Linux+Nginx+MySQL+PHP,Linux作為服務器的操作系統,MySQL即為數據庫。

                區別(lamp和lnmp) 
                Apache一般是把PHP當做自己的一個模塊來啟動;而Ngnix則是把http請求變量轉發給PHP進程,即PHP獨立進程,與Ngnix通信,這種方式叫做Fast-CGI運行方式。所以Apache所編譯的PHP不能用于Nginx。

                lnmp的搭建步驟

                一、mysql源碼安裝

                源碼編譯安裝給20G吧,9G是不夠的?。。。。?!

                1.安裝包 
                yum install -y gcc gcc-c++ ncurses-devel bison cmake-2.8.12.2-4.el6.x86_64.rpm–因為6.5的cmake版本低,需要升級版本————–偏商業化(查看cmake版本yum list cmake)

                源碼包:mysql-boost-5.7.17.tar.gz

                2.解壓安裝 

                tar zxf mysql-boost-5.7.17.tar.gz

                在解壓目錄下: 
                cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=/root/mysql-5.7.17/boost/boost_1_59_0/

                -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \  #安裝目錄
                -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \    #數據庫存放目錄
                -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \   #Unix socket 文件路徑
                -DWITH_MYISAM_STORAGE_ENGINE=1 \    #安裝 myisam 存儲引擎 
                -DWITH_INNOBASE_STORAGE_ENGINE=1 \  #安裝 innodb 存儲引擎
                -DDEFAULT_CHARSET=utf8 \    #默認使用 utf8 字符
                -DDEFAULT_COLLATION=utf8_general_ci \   #校驗字符
                -DEXTRA_CHARSETS=all \  #安裝所有擴展字符集
                -DWITH_BOOST=/mnt/mysql-5.7.11/boost/boost_1_59_0/  ##安裝過程中指定下載目錄123456789

                make && make install

                在編譯過程中出現錯誤應該清理緩存之后在重新編譯 
                make clean #清除緩存 
                rm -rf CMakeCache.txt #編譯出錯時,也需要刪除緩存

                3.數據庫的初始化

                (1)數據庫用戶的創建 
                groupadd -g 27 mysql 
                useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/ mysql 
                usermod -s /sbin/nologin mysql #安全設置,禁止交互式登陸

                (2)環境的配置 
                vim ~/.bash_profile #設置環境變量,方便登陸

                PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
                cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld  #添加啟動腳本12

                (3)更改配置文件 
                首先備份然后復制需要的過去 
                cp /etc/my.cnf /etc/my.cnf.bak 
                cp /usr/local/lnmp/mysql/support-files/my-default.cnf /etc/my.cnf

                vim /etc/my.cnf

                [mysqld]
                datadir=/usr/local/lnmp/mysql/data
                socket=/usr/local/lnmp/mysql/data/mysql.sock
                user=mysql1234

                (4)數據庫的初始化與更改密碼 
                mysqld –initialize –user=mysql #初始化,復制臨時密碼 
                chown root.mysql /usr/local/lnmp/mysql -R 
                chown mysql /usr/local/lnmp/mysql/data -R 
                /etc/init.d/mysqld start 
                mysql_secure_installation #設置密碼 
                mysql -p #登陸

                @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
                [root@server1 mysql]# mysql_secure_installation 
                New password:           -----新密碼
                Re-enter new password: 
                VALIDATE PASSWORD PLUGIN can be used to test passwords
                and improve security. It checks the strength of password
                and allows the users to set only those passwords which are
                secure enough. Would you like to setup VALIDATE PASSWORD plugin?
                Press y|Y for Yes, any other key for No: ----是否檢測密碼強度(回車默認no)
                Using existing password for root.
                Change the password for root ? ((Press y|Y for Yes, any other key for No) : ----------是否更改root密碼
                 ... skipping.
                 By default, a MySQL installation has an anonymous user,
                allowing anyone to log into MySQL without having to have
                a user account created for them. This is intended only for
                testing, and to make the installation go a bit smoother.
                You should remove them before moving into a production
                environment.
                Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
                Success.--------刪除匿名用戶
                Normally, root should only be allowed to connect from
                'localhost'. This ensures that someone cannot guess at
                the root password from the network.
                Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y------------取消root用戶遠程登陸
                Success.
                By default, MySQL comes with a database named 'test' that
                anyone can access. This is also intended only for testing,
                and should be removed before moving into a production
                environment.
                Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y------------刪除test庫和對test庫的訪問權限
                 - Dropping test database...
                Success.
                 - Removing privileges on test database...
                Success.
                Reloading the privilege tables will ensure that all changes
                made so far will take effect immediately.
                Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y---------刷新授權表使修改生效
                Success.
                All done! 
                @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

                二、php源碼安裝

                1. 依賴包的安裝 
                  yum install -y libxml2-devel openssl-devel curl-devel libjpeg-turbo-devel gd-devel-2.0.35-11.el6.x86_64.rpm(圖形、圖片) libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm gmp-devel net-snmp-devel libpng-devel freetype-devel

                源碼包:php-5.6.35.tar.bz2

                2.解壓安裝 
                tar jxf php-5.6.35.tar.bz2

                在解壓目錄下: 
                ./configure –prefix=/usr/local/lnmp/php –with-config-file-path=/usr/local/lnmp/php/etc/ –enable-mysqlnd –with-mysql=mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-openssl –with-snmp –with-gd –with-zlib –with-curl –with-libxml-dir –with-png-dir –with-jpeg-dir –with-freetype-dir –with-pear –with-gettext –with-gmp –enable-inline-optimization –enable-soap –enable-ftp –enable-sockets –enable-mbstring –enable-fpm –with-fpm-user=nginx –with-fpm-group=nginx –with-mcrypt –with-mhash

                make && make install

                3.php的配置 
                (1)查看安裝的php大小 
                cd /usr/local/lnmp/php/ 
                du -sh(一般是這么大109M . 
                (2)復制文件便于后續操作 
                cd /root/php-5.6.35 
                cp php.ini-production /usr/local/lnmp/php/etc/php.ini(一定要用.ini結尾) 
                cd /root/php-5.6.35/sapi/fpm/ 
                file init.d.php-fpm ##查看文件類型 
                cp init.d.php-fpm /etc/init.d/php-fpm ##企業六里面腳本的固定位置 
                chmod +x /etc/init.d/php-fpm 
                (3)配置文件的更改 
                cd /usr/local/lnmp/php/etc/ 
                ls 
                vim php.ini ##更改時區

                  925 date.timezone = Asia/shanghai1

                (4)開啟php-fpm服務 
                cp php-fpm.conf.default php-fpm.conf 
                vim php-fpm.conf

                25 pid = run/php-fpm.pid1

                /etc/init.d/php-fpm start (只有用戶創建了才能起來服務,否則沒有合法的身份啟動) 
                (5)nginx用戶的創建 
                useradd -u 800 -M -d /usr/local/lnmp/nginx nginx

                三、nginx的源碼安裝

                1.依賴包的安裝 
                yum install pcre-devel openssl-devel zlib-devel -y

                源碼包: 
                nginx-1.14.0.tar.gz

                2.解壓安裝 
                tar zxf nginx-1.14.0.tar.gz

                (1)版本號的隱藏: 
                vim /mnt/nginx-1.10.1/src/core/nginx.h

                  #define NGINX_VER          "nginx/" #為了安全,不顯示版本號1

                (2)減少編譯內存 
                vim /mnt/nginx-1.10.1/auto/cc/gcc

                   # debug
                    #CFLAGS="$CFLAGS -g"   #關閉DEBUG,減少內存12

                在解壓目錄下: 
                ./configure –prefix=/usr/local/lnmp/nginx –with-http_ssl_module –with-http_stub_status_module –with-file-aio –with-threads –user=nginx –group=nginx #需要的模塊自定義

                make && make install

                ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/

                3.添加php的路徑 
                cd /usr/local/lnmp/php 
                vim ~/.bash_profile

                PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnm
                p/php/bin12

                source ~/.bash_profile

                4.更改配置文件,打開nginx服務 
                vim /usr/local/lnmp/nginx/conf/nginx.conf

                location ~\ \.php\$ {
                        root           html;
                        fastcgi_pass   127.0.0.1:9000;
                        fastcgi_index  index.php;
                       # fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
                        include        fastcgi.conf;
                    }
                    server {
                            listen 80;
                            server_name bbs.xinhao.com;
                            location / {
                                    root /bbs;
                                    index index.php;
                            }

                檢查是否配置成功nginx -t 
                開啟服務: nginx

                測試: 
                /usr/local/lnmp/nginx/html/ 
                vim index.php ##php測試頁的編寫 

                ##經過上述三大步,Lnmp框架基本搭建成功了,下面來我們通過搭建論壇來測試一下

                四、簡單論壇的搭建 
                1. unzip Discuz_X3.2_SC_UTF8.zip ##解壓

                cd readme/ 
                less readme.txt ##查看安裝過程

                mv upload/ /usr/local/lnmp/nginx/html/ ##將論壇推到nginx默認發布目錄

                cd /usr/local/lnmp/nginx/html/bbs 
                chmod 777 config/ data/ uc_client/ uc_server/ -R

                cd /usr/local/lnmp/php/etc/ 
                vim php.ini (修改如下)

                   1001 pdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock    
                   1150 mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock    1210 mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock123

                6.更改完配置文件刷新服務,查看端口

                /etc/init.d/php-fpm reload 
                查看9000端口: netstat -antlp | grep :9000 
                tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 7491/php-fpm

                7.瀏覽器測試 
                此時進去發現數據庫權限被拒:授權 chmod 755 /usr/local/lnmp/mysql/data/ 
                此時安裝完成。


                無數據提示還沒有評論,樓主喊你快去搶前排~~~我要評論
                微信掃碼登陸

                打開 微信
                掃一掃登錄

                phpstudy使用視頻教程 pk牛牛平台总代