(一)首先安裝nginx服務,具體請見另外一篇關於nginx的博文。php
(二)安裝MySQL數據庫html
1、安裝前準備 [root@localhost ~]# rpm -e mysql-server --nodeps #卸載系統自帶的rpm方式安裝的mysql服務 [root@localhost ~]# rpm -e mysql --nodeps #卸載系統自帶的rpm方式安裝的mysql客戶端 [root@localhost ~]# rpm -ivh ncurses-devel #安裝光盤自帶的基礎包 [root@localhost ~]# useradd -M -s /sbin/nologin mysql 2、安裝cmake軟件,代替./configure配置mysql程序 [root@localhost ~]# tar -zxvf cmake-2.8.6.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/cmake-2.8.6/ [root@localhost cmake-2.8.6]# ./configure && gmake && gmake install 3、安裝mysql軟件 [root@localhost ~]# tar -zxvf mysql-5.5.22.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/mysql-5.5.22/ [root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc - DWITH_EXTRA_CHARSETS=all [root@localhost mysql-5.5.22]# make && make install 4、安裝後調整 [root@localhost ~]# chown -R mysql:mysql /usr/local/mysql [root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf #建立配置文件 [root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/#初始化數據庫 [root@localhost ~]# ln -s /usr/local/mysql/bin/* /usr/local/bin/ #設置環境變量 [root@localhost ~]# cp /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld #添加系統服務 [root@localhost ~]# chmod +x /etc/init.d/mysqld [root@localhost ~]# service mysqld restart [root@localhost ~]# chkconfig --add mysqld [root@localhost ~]# chkconfig mysqld on [root@localhost ~]# netstat -anpt | grep mysqld #mysql的端口默認爲3306 五、驗證登錄 [root@localhost ~]# mysqladmin -u root -p password "123.com";history -c #設置mysql登錄密碼後面接;history -c是爲了安全起見清除命令歷史記錄 [root@localhost ~]# mysql -u root -p123.com #登錄mysql,"-p+密碼"的方式不建議用,直接mysql -u root -p進入交互便可; 退出的話 quit或者ctrl+D
(三)PHP解析環境的安裝node
配置網頁動靜分離,解析PHP,有兩種方法能夠選擇:一、使用PHP的FPM模塊 二、將訪問PHP頁面的Web請求轉交給Apache服務器去處理,今天咱們介紹第一種。mysql
FPM模塊(FastCGI Process Manager,FastCGI進程管理器)模塊,用來對PHP解析實例進行管理、優化解析效率。FastCGI將Http Server和動態腳本語言分離開,Nginx專門處理靜態請求,轉發動態請求,好比轉給Tomcat或者Apache等,單臺LNMP架構服務器轉發動態請求一般使用FPM方式來解析PHPlinux
一、安裝PHPnginx
1 ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps #將RPM方式安裝的php及相關依賴包(若是已存在)卸載 2 ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel zlib-devel 3 4 ~]# tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/ #安裝數據加密工具 5 ~]# cd /usr/src/libmcrypt-2.5.8/ 6 ~]# ./configure && make && make install 7 ~]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/ 8 9 ~]# tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/src/ #安裝數據加密工具,依賴libmcrypt 10 ~]# cd /usr/src/mhash-0.9.9.9/ 11 ~]# ./configure && make && make install 12 ~]# ln -s /usr/local/lib/libmhash* /usr/lib/ 13 14 ~]# tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/src/ #安裝數據加密工具,依賴libmhash 15 ~]# cd /usr/src/mcrypt-2.6.8/ 16 ~]# ./configure && make && make install 17 ~]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #若是./configure報錯,執行此命令 18 19 ~]# tar -zxvf php-5.3.28.tar.gz -C /usr/src/ 20 ~]# cd /usr/src/php-5.3.28/ 21 ~]# ./configure --prefix=/usr/local/php --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php --enable-mbstring 22 23 ~]#./configure --prefix=/usr/local/php --with-gd --with-zlib --with- 24 mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php --enable-mbstring --enable-fpm 25 --with-jpeg-dir=/usr/lib --with-mcrypt 26 ~]# make && make install 27 #---------------------------------------------------------------- 28 --with-mcrypt: 加載數據加密等擴展工具支持 29 --with-mysql: 設置Mysql數據庫服務程序的安裝位置 30 --with-config-file-path: 設置PHP的配置文件php.ini將要存放的位置 31 --enable-mbstring: 啓用多字節字符串功能,以便支持中文等代碼 32 #----------------------------------------------------------------
二、配置PHPsql
1 ~]#cp /usr/src/php-5.3.28/php.ini-development /usr/local/php/php.ini # php.ini-development開發板樣例,用於學習測試php.ini-production生產版,用於實際運營 2 ~]#vim /usr/local/php/php.ini 3 修改: 4 default_charset = "utf-8」 #需修改 //設置默認字符集 5 file_uploads = On //容許經過PHP網頁上傳文件 6 upload_max_filesize = 2M //容許上傳的文件大小限制 7 max_file_uploads = 20 //每一個HTTP最多容許請求上傳的文件數 8 post_max_size = 8M //每次經過表單post提交的數據量限制 9 short_open_tag = On #需修改 //容許識別PHP短語法標記,即<?…?> 10 ~]#ln -s /usr/local/php/bin/* /usr/local/bin/ 11 ~]#ln -s /usr/local/php/sbin/* /usr/local/sbin/
三、添加優化模塊ZendGuardLoader
ZendGuardLoader適用於PHP 5.3版本,若使用 PHP 5.2版本,應改成較早的ZendOptimizer.數據庫
1 ~]#tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/ 2 ~]#cp /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/ZendGuardLoader.so /usr/local/php/lib/php/ 3 ~]#vim /usr/local/php/php.ini 4 添加: 5 zend_extension=/usr/local/php/lib/php/ZendGuardLoader.so 6 zend_loader.enable=1
四、啓用php-fpm進程apache
1 ~]#useradd -M -s /sbin/nologin php 2 ~]#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 3 ~]#vim php-fpm.conf 4 修改 5 pid = run/php-fpm.pid #確認pid文件位置 6 user = php 7 group = php 8 pm.max_children = 50 #最多空閒進程數 9 pm.start_servers = 20 #啓動時開啓的進程數 10 pm.min_spare_servers = 5 #最少空閒進程數 11 pm.max_spare_servers = 35 12 ~]#/usr/local/sbin/php-fpm 13 ~]#netstat -anpt | grep php-fpm #默認9000端口 14 ~]#cp /usr/src/php-5.3.28/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #這裏和apache不一樣,apache調用php模塊不須要php手動開啓,可是LNMP架構須要開啓php-fpm模塊,也能夠把開啓此模塊寫在nginx腳本里,所以,一旦啓動或關閉Nginx服務,php-fpm程序也會隨之啓動或關閉,不須要額外再啓動或關閉php-fpm,具體方法請見文章末尾 15 ~]#chmod +x /etc/init.d/php-fpm 16 ~]#service php-fpm stop 17 ~]#service php-fpm start 18 ~]#chkconfig --add php-fpm 19 ~]#chkconfig php-fpm on
(五)配置Nginx支持PHP解析
不管是將PHP頁面交給LAMP服務器去解析,仍是調用本機的php-fpm進行解析,都須要在"server {}"配置段中添加location 設置,以便指定當訪問.php網頁時候採起何種操做,配置完畢後別忘了重啓Nginxvim
第一種方法:轉交給其餘Web服務器處理
使用的配置語句以下,例如,交給IP地址爲 192.168.4.253的LAMP服務器處理,從而實現由Nginx負責靜態頁面,LAMP負責動態頁面的動靜分離效果。
~]#vim /usr/local/nginx/conf/nginx.conf 修改: server { …… location ~ \.php$ { #訪問.php頁面的配置段 proxy_pass http://192.168.4.253:80; #Apache服務器的監聽地址 } }
第二種方法:調用本機的php-fpm進程
使用的配置語句以下,在conf/目錄下的fastcgi.conf 文件中已經包含必需的宏設置,可經過include語句添加進來,打開nginx.conf文件:
server { …… location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; #修改,這是php-fpm的監聽地址 fastcgi_index index.php; #PHP首頁文件 include fastcgi.conf; #修改包括fastcgi.conf樣本配置 } }
(六)PHP頁面訪問測試,請參考LAMP架構
(七)把php-fpm服務控制寫入nginx控制腳本的方法
分別在start和stop下進入相應語句便可,首先定義php-fpm的主程序文件和pid的路徑
PROG_FPM="/usr/local/sbin/php-fpm" PIDF_FPM="/usr/local/php5/var/run/php-fpm.pid"
而後調用兩個變量
start)
$PROG_FPM
stop)
kill -s QUIT $(cat $PIDF_FPM)