CentOS7.0下安裝PHP5.6.30服務(wù)的教程詳解
關(guān)于php-fpm
nginx本身不能處理PHP,它只是個web服務(wù)器,當(dāng)接收到請求后,如果是php請求,則發(fā)給php解釋器處理,并把結(jié)果返回給客戶端。
nginx一般是把請求發(fā)fastcgi管理進(jìn)程處理,fascgi管理進(jìn)程選擇cgi子進(jìn)程處理結(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ù)制鏈接地址,在遠(yuǎn)程主機登錄,下載該軟件(我選的是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
配置安裝
進(jìn)入到目錄,我們需要在安裝的時候?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 && make install
看到這句話,表明安裝完成!
為了保險起見,我們make test一把,看看是否真的成功了。
配置相關(guān)php.ini配置
首先我們需要配置的是php.ini這個文件
安裝目錄有2個文件:php.ini-development和php.ini-production
php.ini-production 線上版本使用
php.ini-development 開發(fā)版本使用
我們選擇development進(jìn)行配置
# 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(已棄用,詳細(xì)的見注1)
啟動
#/etc/init.d/php-fpm
查看php是否啟動成功
#ps aux | grep php
看到這些,表明你的php已經(jīng)啟動成功啦!
重啟及關(guān)閉
#kill -9 進(jìn)程號 #/etc/init.d/php-fpm
配置Nginx支持PHP
進(jìn)入nginx主目錄,/usr/local/nginx;
#cd /usr/local/nginx
進(jìn)入配置目錄
#cd conf
Nginx支持PHP需要修改nginx.conf
#vim 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)容
<?php phpinfo(); ?>
在瀏覽器中打開http://遠(yuǎn)程ip/phpinfo.php
看到這個頁面,恭喜你,你的PHP已經(jīng)安裝配置完成。你可以在這個頁面看到所有php依賴的組件,下一節(jié)我將和大家詳細(xì)講解一下這個頁面,如果對本節(jié)有什么疑問的,歡迎在評論區(qū)和我交流討論,有留言必回。^_^
注
設(shè)置php開機自啟動與開啟php服務(wù)便捷方式
上面的方法中,我在拷貝php-fpm的服務(wù)時出了問題,不應(yīng)該直接將php-fpm的可執(zhí)行文件拷貝到/etc/init.d/目錄下去,應(yīng)該將php給我們準(zhǔn)備好的init.d.php-fpm。
#cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
將php-fpm服務(wù)添加到chkconfig列表
#chkconfig --add php-fpm
設(shè)置開機自啟動
#chkconfig php-fpm on
以后重啟和停止php的方式為
#service php-fpm start #service php-fpm stop #service php-fpm restart #service php-fpm reload
上面是我的問題,請大家及時更正。
相關(guān)文章
PHP+Ajax異步通訊實現(xiàn)用戶名郵箱驗證是否已注冊( 2種方法實現(xiàn))
在網(wǎng)站注冊用戶時使用,主要為了無刷新異步驗證用戶輸入的用戶名或者Email是否已注冊。2011-12-12php把時間戳轉(zhuǎn)換成多少時間之前函數(shù)的實例
下面小編就為大家?guī)硪黄猵hp把時間戳轉(zhuǎn)換成多少時間之前函數(shù)的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11Laravel 5框架學(xué)習(xí)之日期,Mutator 和 Scope
這篇文章主要介紹了Laravel 5框架學(xué)習(xí)之日期,Mutator 和 Scope的相關(guān)資料,需要的朋友可以參考下2015-04-04Codeigniter通過SimpleXML將xml轉(zhuǎn)換成對象的方法
這篇文章主要介紹了Codeigniter通過SimpleXML將xml轉(zhuǎn)換成對象的方法,涉及Codeigniter操作XML文件的技巧,非常具有實用價值,需要的朋友可以參考下2015-03-03PHP使用php-resque庫配合Redis實現(xiàn)MQ消息隊列的教程
這篇文章主要介紹了PHP使用php-resque庫配合Redis實現(xiàn)MQ消息隊列的教程,將展示php-resque的安裝部署及一個Worker隊列的運行過程,需要的朋友可以參考下2016-06-06如何優(yōu)雅的使用 laravel 的 validator驗證方法
web 開發(fā)過程中經(jīng)常會需要進(jìn)行參數(shù)驗證,這篇文章主要介紹了如何優(yōu)雅的使用 laravel 的 validator驗證方法,非常具有實用價值,需要的朋友可以參考下2018-11-11laravel項目利用twemproxy部署redis集群的完整步驟
Twemproxy是一個代理服務(wù)器,可以通過它減少Memcached或Redis服務(wù)器所打開的連接數(shù)。下面這篇文章主要給大家介紹了關(guān)于laravel項目利用twemproxy部署redis集群的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-05-05