一吕嘀、下載安裝包
PHP官方下載頁面右鍵另復制鏈接胡诗。
終端切換到/usr/loca/src/
目錄下。
執(zhí)行wget http://hk1.php.net/get/php-5.6.30.tar.bz2/from/this/mirror
下載纤垂。
下載后src
目錄下多了一個mirror
的文件损肛,這個其實就是剛才下載的PHP的安裝包了,根據(jù)剛才頁面上顯示的內容蜘醋,這個應該是一個.bz2結尾的壓縮包胁塞。
mv mirror php-5.6.30.tar.bz2 # 改名。
tar jxf php-5.6.30.tar.bz2 # 解壓
cd php-5.6.30 # 進入目錄压语,準備編譯安裝
二啸罢、安裝之前的準備
在安裝PHP之前,先把PHP的一些依賴的庫安裝上胎食。
yum -y install gd zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libjpeg libjpeg-devel libpng libpng-devel
各種庫的作用:
- gd:不用多說扰才,PHP的GD庫。
- zlib zlib-devel:在上一篇編譯安裝Nginx的時候就已經(jīng)說過厕怜,這是一個解壓壓縮用到的依賴衩匣,并且已經(jīng)安裝過,這里可以不安裝粥航。
- openssl openssl-devel:openssl是為網(wǎng)絡通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議琅捏,囊括了主要的密碼算法、常用的密鑰和證書封裝管理功能以及SSL協(xié)議递雀。
- libxml2 libxml2-devel:對xml進行操作需要這個庫提供的函數(shù)柄延。
- libjpeg libjpeg-devel libpng libpng-devel:都是進行圖片處理的所需要的庫。
其實也沒有幾個庫缀程,除了GD庫以外搜吧,都是安裝一個基本庫市俊,然后安裝PHP的時候還需要讀取其頭文件等信息,所以在基本庫的后面加上
-devel
三滤奈、配置環(huán)境并安裝
./configure --prefix=/usr/local/web/php \
--with-gd \
--enable-gd-native-ttf \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--enable-mbstring \
--enable-fpm
參數(shù)說明:
- 支持GD庫及一些字體摆昧、支持MySQL連接和PDO連接、支持openssl蜒程、開啟
mbstring
擴展绅你。- 最后一句比較重要:讓PHP作為一個獨立進程運行(9000端口),在apache環(huán)境下搞糕,PHP是作為其下的一個模塊運行勇吊。
如下所示環(huán)境配置成功了。
make && make install
編譯安裝
四窍仰、啟動PHP進程
PHP安裝完畢后,在/usr/local/web/php/sbin/
下存放著php-fpm
礼殊,運行驹吮。
- 報錯
大概意思是說:
- 無法打開
/usr/local/web/php/etc/php-fpm.conf
這個文件,不存在晶伦。- 加載這個文件失敗碟狞。
- FPM初始化失敗。
究其原因婚陪,就是沒有/usr/local/web/php/etc/php-fpm.conf
這個文件族沃,當然也無法加載,F(xiàn)PM啟動 需要讀取這個配置文件泌参,所以啟動失敗脆淹。
OK,進入到/usr/local/web/php/etc/
這個目錄下查看沽一。
果然沒有php-fpm.conf
這個文件啊盖溺,不過有一個默認的php-fmp.conf.default
。
為了保險起見铣缠,把這個默認的文件復制一份并改名為php-fpm.conf
解決烘嘱。
重新啟動php-fpm
并查看進程。
五蝗蛙、整合Nginx和PHP
到目前為止蝇庭,Nginx與PHP都已安裝完畢,但并不能正常工作捡硅。
工作流程
當用戶的訪問請求到達我的服務器80端口哮内,被Nginx監(jiān)聽到,但Nginx無法解析.php
文件病曾,所以需要在配置里添加上規(guī)則牍蜂。
如果遇到以.php
結尾的文件漾根,可以直接在本機找到9000端口的進程php-fpm
告訴它這個.php
腳本的所在位置并交由PHP去解析,解析完畢后鲫竞,再將結果返回給Nginx辐怕,Nginx再返回給用戶。
修改Nginx配置
vim /usr/local/web/nginx/conf/nginx.conf
打開Nginx的配置文件从绘。
65gg
跳轉到65行寄疏。
將注釋打開,將69
行的/scripts
替換為$DOCUMENT_ROOT
并保存僵井、重啟Nginx陕截。
正確加載php.ini配置文件
至此,Nginx和PHP的整合工作已經(jīng)做好了批什,去
html
目錄下編寫一個測試腳本index.php
农曲,輸出phpinfo()
。
如上圖所示驻债,在/usr/local/web/php/lib
目錄下加載php.ini
配置文件并沒有成功乳规。
切換到這個目錄下前來查看,發(fā)現(xiàn)只有一個php
文件夾合呐,并沒有php.ini
配置文件暮的。
在/usr/local/src/php-5.6.30/
目錄下,有php.ini-development
淌实、php.ini-production
冻辩,前者是開發(fā)時用的配置,報錯等級低拆祈,有什么報什么恨闪,后者相反。
執(zhí)行cp php.ini-production /usr/local/web/php/lib/php.ini
復制一份配置文件到/usr/local/web/php/lib/
目錄下缘屹,重啟PHP凛剥。
再次訪問,已可以看到正確加載了php.ini
配置文件轻姿。