關(guān)于php-fpm
nginx本身不能處理PHP,它只是個web服務(wù)器,當(dāng)接收到請求后,如果是php請求,則發(fā)給php解釋器處理,并把結(jié)果返回給客戶端。
nginx一般是把請求發(fā)fastcgi管理進程處理,fascgi管理進程選擇cgi子進程處理結(jié)果并返回被nginx。
PHP-FPM是一個PHP FastCGI管理器,是只用于PHP的。
PHP在 5.3.3 之后已經(jīng)講php-fpm寫入php源碼核心了。所以已經(jīng)不需要另外下載了。
獲取PHP下載地址
為什么選擇5.6.30這個版本,因為學(xué)習(xí),不是研究。誠然,7.0新增了很多PHP的新特性,性能上面也有些提升,如果是研究,倒是可以折騰一番,后面得空再講7.0的版本以及如何在各個PHP版本之間切換。
打開php的官網(wǎng):http://php.net/ ,查看php的版本列表
右擊,復(fù)制鏈接地址,在遠程主機登錄,下載該軟件(我選的是Australia的主機mirror下載的)
# wget http://au1.php.net/get/php-5.6.30.tar.gz/from/this/mirror
下載下來的是一個mirror文件,改成我們需要的文件名
#mv mirror php-5.6.30.tar.gz#tar zxvf php-5.6.30.tar.gz#cd php-5.6.30
配置安裝
進入到目錄,我們需要在安裝的時候?qū)惭b目錄配置到/usr/local/php/里
#./configure
--prefix=/usr/local/php
--with-curl
--with-freetype-dir
--with-gd
--with-gettext
--with-iconv-dir
--with-kerberos
--with-libdir=lib64
--with-libxml-dir
--with-MySQL
--with-mysqli
--with-openssl
--with-pcre-regex
--with-pdo-mysql
--with-pdo-sqlite
--with-pear
--with-png-dir
--with-xmlrpc
--with-xsl
--with-zlib
--enable-fpm
--enable-bcmath
--enable-libxml
--enable-inline-optimization
--enable-gd-native-ttf
--enable-mbregex
--enable-mbstring
--enable-opcache
--enable-pcntl
--enable-shmop
--enable-soap
--enable-sockets
--enable-sysvsem
--enable-xml
--enable-zip
配置的過程中可能會報如下錯誤
錯誤1:
xml2-config not found.
Please check your libxml2 installation.
解決辦法
安裝libxml2相關(guān)組件
#yum install libxml2#yum install libxml2-devel -y
錯誤2:
Please reinstall the libcurl
distribution -
easy.h
should be in
curl-dir>/include/curl/
安裝curl相關(guān)組件
#yum install curl curl-devel
錯誤3:
configure: error: png.h not found.
安裝libpng相關(guān)組件
#yum install libpng#yum install libpng-devel
錯誤4:
freetype-config not found.
安裝freetype相關(guān)組件
#yum install freetype-devel
錯誤5:
xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
安裝libxslt相關(guān)組件
#yum install libxslt-devel
好的,當(dāng)我們看到下面這句話的時候,說明你的php已經(jīng)配置完成啦!
接下來我們只需要編譯安裝即可完成php的安裝
看到這句話,表明安裝完成!
為了保險起見,我們make test一把,看看是否真的成功了。
配置相關(guān)php.ini配置
首先我們需要配置的是php.ini這個文件
安裝目錄有2個文件:php.ini-development和php.ini-production
php.ini-production 線上版本使用
php.ini-development 開發(fā)版本使用
我們選擇development進行配置
# cp php.ini-development /usr/local/php/lib/php.ini
php-fpm配置
拷貝php-fpm配置文件
#cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
拷貝啟用文件
#cp -R ./sapi/fpm/php-fpm /etc/init.d/php-fpm(已棄用,詳細的見注1)
啟動
查看php是否啟動成功
看到這些,表明你的php已經(jīng)啟動成功啦!
重啟及關(guān)閉
#kill -9 進程號
#/etc/init.d/php-fpm
配置Nginx支持PHP
進入nginx主目錄,/usr/local/nginx;
進入配置目錄
Nginx支持PHP需要修改nginx.conf
代開下面代碼,讓Nginx支持PHP,在server代碼段里。
修改完,這段代碼變?yōu)?,紅色部分為我們主機目錄為/usr/www,需要修改fastcgi_param SCRIPT_FILENAME指向?qū)?yīng)目錄即可:
設(shè)置主目錄設(shè)置為/usr/www。
注釋掉root那行,新增一行:root /usr/www;
保存退出。
根據(jù)Nginx章的解釋,我們重啟Nginx服務(wù)。
#/etc/init.d/nginx restart
如果你沒有按照我們在Nginx的方法配置,可以按照以下的方式重啟Nginx服務(wù)
# /usr/local/nginx/sbin/nginx -s reload
重啟成功!下面我們在/usr/www目錄下添加一個新文件。
#vim /usr/www/phpinfo.php
插入以下內(nèi)容
在瀏覽器中打開http://遠程ip/phpinfo.php
看到這個頁面,恭喜你,你的PHP已經(jīng)安裝配置完成。你可以在這個頁面看到所有php依賴的組件,下一節(jié)我將和大家詳細講解一下這個頁面,如果對本節(jié)有什么疑問的,歡迎在評論區(qū)和我交流討論,有留言必回。^_^
注
設(shè)置php開機自啟動與開啟php服務(wù)便捷方式
上面的方法中,我在拷貝php-fpm的服務(wù)時出了問題,不應(yīng)該直接將php-fpm的可執(zhí)行文件拷貝到/etc/init.d/目錄下去,應(yīng)該將php給我們準備好的init.d.php-fpm。
#cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
將php-fpm服務(wù)添加到chkconfig列表
設(shè)置開機自啟動
以后重啟和停止php的方式為
#service php-fpm start
#service php-fpm stop
#service php-fpm restart
#service php-fpm reload
上面是我的問題,請大家及時更正。
您可能感興趣的文章:- CentOS7.0下安裝FTP服務(wù)的方法
- Linux系列教程之虛擬機中安裝Centos7.0
- 詳解CentOS7.0安裝與配置Tomcat-7
- 詳解騰訊云CentOS7.0使用yum安裝mysql及使用遇到的問題