針對PHP的動靜分離php
LAMP
環境Nginx
處理靜態頁面請求,在server {}
;段中加入[root@nginx php5]#vim /usr/local/httpd/conf/nginx.conf location ~ .*\.(gifiglipeglbmp|swf)$ { root html; index index.html index.htm; };
[root@nginx php5]#vim /usr/local/httpd/conf/nginx.conf server { ..... location ~ \.php$ { proxy_ pass http://192.168.9.237:8080; //LAMP的IP地址 ......
開啓兩臺Linux虛擬機,一臺配置Nginx,一臺配置LANM架構,客戶端訪問nginx網頁時Nginx服務處理靜態訪問信息,LAMP處理動態訪問信息,html
yum install httpd httpd-devel -y 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile ...//省略部份內容... 已安裝: httpd.x86_64 0:2.4.6-90.el7.centos httpd-devel.x86_64 0:2.4.6-90.el7.centos ...//省略部份內容... 完畢! [root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http success //配置防火牆容許http服務在公共區域經過 [root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https success //配置防火牆容許https服務在公共區域經過 [root@localhost ~]# firewall-cmd --reload //從新加載防火牆 success [root@localhost ~]# systemctl start httpd.service //啓動http服務
[root@localhost ~]# yum install mariadb mariadb-server mariadb-libs mariadb-devel -y 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn ...//省略部份內容... 已安裝: mariadb.x86_64 1:5.5.64-1.el7 mariadb-devel.x86_64 1:5.5.64-1.el7 mariadb-server.x86_64 1:5.5.64-1.el7 完畢! [root@localhost ~]# systemctl start mariadb //啓動mariadb服務 [root@localhost ~]# netstat -ntap | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2519/mysqld [root@localhost ~]# mysql_secure_installation //設置數據庫 NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): //詢問是否給root用戶設置密碼,直接回車 OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y //是否設置密碼,輸入y確認 New password: //輸入密碼 Re-enter new password: //再次輸入密碼 Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB 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? [Y/n] n //詢問是否刪除匿名用戶,輸入n,不刪除 ... skipping. 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? [Y/n] n //詢問是否拒絕root用戶遠程登陸,輸入n,不拒絕 ... skipping. By default, MariaDB 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? [Y/n] n //詢問是否刪除測試數據庫,輸入n,不刪除 ... skipping. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y //詢問是否從新加載數據庫,輸入y,從新加載 ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! //完成設置
[root@localhost ~]# yum -y install php //安裝php服務 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn ...//省略部份內容... 已安裝: php.x86_64 0:5.4.16-46.1.el7_7 ...//省略部份內容... 完畢! [root@localhost ~]# yum install php-mysql -y //安裝php與mysql鏈接包 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn * extras: ftp.sjtu.edu.cn ...//省略部份內容... 已安裝: php-mysql.x86_64 0:5.4.16-46.1.el7_7 做爲依賴被安裝: php-pdo.x86_64 0:5.4.16-46.1.el7_7 完畢! [root@localhost ~]# yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath //安裝php環境包 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn ...//省略部份內容... 已安裝: libcurl-devel.x86_64 0:7.29.0-54.el7 php-bcmath.x86_64 0:5.4.16-46.1.el7_7 php-gd.x86_64 0:5.4.16-46.1.el7_7 php-ldap.x86_64 0:5.4.16-46.1.el7_7 php-mbstring.x86_64 0:5.4.16-46.1.el7_7 php-odbc.x86_64 0:5.4.16-46.1.el7_7 php-pear.noarch 1:1.9.4-21.el7 php-snmp.x86_64 0:5.4.16-46.1.el7_7 php-soap.x86_64 0:5.4.16-46.1.el7_7 php-xml.x86_64 0:5.4.16-46.1.el7_7 php-xmlrpc.x86_64 0:5.4.16-46.1.el7_7 ...//省略部份內容... 完畢! [root@localhost ~]# cd /var/www/html //進入網頁站點 [root@localhost html]# vim index.php //編輯php網頁內容 <?php phpinfo(); ?> :wq [root@localhost html]# systemctl restart httpd.service //重啓http服務
[root@localhost ~]# hostnamectl set-hostname nginx //爲了區分先更改Linux主機名稱 [root@localhost ~]# su [root@nginx ~]# //更改爲功 [root@nginx nginx-1.12.2]# yum install gcc gcc-c++ make pcre-devel zlib-devel -y //安裝環境包 已加載插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: ftp.sjtu.edu.cn ...//省略部份內容... 已安裝: gcc.x86_64 0:4.8.5-39.el7 gcc-c++.x86_64 0:4.8.5-39.el7 pcre-devel.x86_64 0:8.32-17.el7 zlib-devel.x86_64 0:1.2.7-18.el7 ...//省略部份內容... 完畢! [root@nginx ~]# useradd -M -s /sbin/nologin nginx //建立程序用戶 [root@nginx ~]# mount.cifs //192.168.100.10/lnmp /mnt/ //掛載宿主機源碼包目錄到mnt目錄下 Password for root@//192.168.100.10/lnmp: [root@nginx ~]# cd /mnt/ //進入mnt目錄 [root@nginx mnt]# tar zvxf nginx-1.12.2.tar.gz -C /opt/ //解壓源碼包 ...//省略部份內容... nginx-1.12.2/auto/cc/msvc nginx-1.12.2/auto/cc/name nginx-1.12.2/auto/cc/owc nginx-1.12.2/auto/cc/sunc [root@nginx mnt]# cd /opt/nginx-1.12.2/ //進入解壓的nginx文件目錄 [root@nginx nginx-1.12.2]# ./configure \ //配置nginx > --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx \ > --with-http_stub_status_module ...//省略部份內容... nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp [root@nginx nginx-1.12.2]# make && make install //製做安裝nginx ...//省略部份內容... test -d '/usr/local/nginx/html' \ || cp -R html '/usr/local/nginx' test -d '/usr/local/nginx/logs' \ || mkdir -p '/usr/local/nginx/logs' make[1]: 離開目錄「/opt/nginx-1.12.2」 [root@nginx nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ //建立軟鏈接文件到系統命令目錄 [root@nginx nginx-1.12.2]# cd /lib/systemd/system //進入system管理目錄 [root@nginx system]# vim nginx.service //編輯nginx啓動腳本文件 [Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/bin/kill -s HUP $MAINPID ExecStop=/usr/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target :wq [root@nginx system]# chmod 754 nginx.service //添加執行權限 [root@nginx system]# systemctl start nginx.service //啓動服務 [root@nginx system]# systemctl stop firewalld.service //關閉防火牆 [root@nginx system]# setenforce 0 //關閉加強性安全功能
[root@nginx system]# vim /usr/local/nginx/conf/nginx.conf ...//省略部份內容... error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # location ~ \.php$ { //開啓此模塊,並將IP地址更改成LAMP的主機,也就是將動態請求交給LAMP的主機處理 proxy_pass http://192.168.144.137; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; ...//省略部份內容... :wq [root@nginx system]# systemctl stop nginx.service //關閉服務 [root@nginx system]# systemctl start nginx.service //從新啓動服務