您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何編譯安裝php5.6.31”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“如何編譯安裝php5.6.31”這篇文章吧。
編譯安裝php5.6.31的方法:1、添加epel源并下載php-5.6.31;2、將安裝包進(jìn)行解壓并安裝;3、修改php-fpm.conf;4、啟動(dòng)php-fpm;5、編輯nginx配置文件并重啟nginx服務(wù)即可。
本文操作環(huán)境:CentOS 7系統(tǒng)、php5.6.31版、DELL G3電腦
CentOS 7 編譯安裝PHP5.6.31
服務(wù)器上已經(jīng)有nginx和mysql,所以就決定采用 PHP+Nginx+mysql這個(gè)組合,在網(wǎng)上翻了很多資料,由于對(duì)linux和PHP不不了解,不知道PHP和nginx和mysql是怎么關(guān)聯(lián)的,遇到各種原因(不是php裝錯(cuò)了,就是包沒(méi)裝,),花了很多時(shí)間,后來(lái)部署完后發(fā)現(xiàn),這三個(gè)都是單獨(dú)安裝(額~~難道還能一起安裝),只需要php安裝后配置下,nginx的配置下(和php的關(guān)聯(lián))就直接可以跑了。至于mysql,只要開(kāi)啟,php項(xiàng)目里面的連接數(shù)據(jù)庫(kù)配置好了,可以直接連上去。所以本文主要針對(duì)php的安裝。
關(guān)于nginx和mysql的安裝,開(kāi)始安裝前需要在linux的一些開(kāi)發(fā)庫(kù)安裝在此也不復(fù)述,參考鏈接里面都有。
本文主要參考了此鏈接博客:https://www.cnblogs.com/flower-tree/p/7562101.html
php版本:5.6.31
nginx版本:1.7.3
mysql版本:5.6.62
nginx本身不能處理PHP,它只是個(gè)WEB服務(wù)器,當(dāng)接收到請(qǐng)求后,如果是php請(qǐng)求,則發(fā)送給php解釋器處理,并把結(jié)果返回給客戶(hù)端。
nginx一般把請(qǐng)求發(fā)送給fastcgi管理進(jìn)程處理,fastcgi管理進(jìn)程選擇cgi子進(jìn)程處理結(jié)果并返回nginx。
什么是PHP-FPM?PHP-FPM是一個(gè)屬于PHP的FASTCGI管理器,只用于PHP,新版本已集成php-fpm了,php-fpm提供更好的php進(jìn)程管理,可以有效控制內(nèi)存和進(jìn)程,可以平滑重載php配置。在configure時(shí),帶-enable-fpm參數(shù)即可開(kāi)啟php-fpm,其他參數(shù)可見(jiàn)這里,至于什么是fastcgi,和php-fpm什么關(guān)系,可參考鏈接https://segmentfault.com/q/1010000000256516
安裝前準(zhǔn)備
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-develyum -y install gcc gcc-c++ glibcyum -y install libmcrypt-devel mhash-devel libxslt-devel \ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \ zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \ ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \ krb5 krb5-devel libidn libidn-devel openssl openssl-devel
下載php-5.6.31
1)將安裝包解壓到 /usr/local/src
cd /usr/local/srctar -zvxf php-5.6.31.tar.gz
2)進(jìn)入安裝目錄,進(jìn)行安裝
cd php-5.6.31./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \--enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath \--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendarmake && make install
CentOS 中下載php: wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror
以上就完成了php-fpm的安裝,安裝過(guò)程會(huì)花一些時(shí)間。
1、為php提供配置文件
cp php.ini-production /usr/local/php/etc/php.ini
注意:php.ini-production 還是在剛才/usr/local/src/php-5.6.31 目錄下
2、為php-fpm提供配置文件
cd /usr/local/phpcp etc/php-fpm.conf.default etc/php-fpm.conf vim etc/php-fpm.conf
修改php-fpm.conf
user = www
group = www
如果www用戶(hù)不存在,那么先添加www用戶(hù)(默認(rèn)運(yùn)行用戶(hù)nobody)
groupadd www useradd -g www www
如果沒(méi)有配置這一步,瀏覽器打開(kāi) php 文件會(huì)報(bào)錯(cuò)
“The page you are looking for is temporarily unavailable. Please try again later”
修改
pm.max_children = 150 pm.start_servers = 8 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pid = /usr/local/php/var/run/php-fpm.pid
3、啟動(dòng)php-fpm
執(zhí)行
/usr/local/php/sbin/php-fpm
使用如下命令來(lái)驗(yàn)正(如果此命令輸出有中幾個(gè)php-fpm進(jìn)程就說(shuō)明啟動(dòng)成功了):
ps aux | grep php-fpm
結(jié)果如下圖:
3、nginx和php-fpm整合
編輯nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
初始內(nèi)容如下:
# nginx運(yùn)行的用戶(hù)名 user nginx; # nginx啟動(dòng)進(jìn)程,通常設(shè)置成和cpu的數(shù)量相等,這里為自動(dòng) worker_processes auto; # errorlog文件位置 error_log /var/log/nginx/error.log; # pid文件地址,記錄了nginx的pid,方便進(jìn)程管理 pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. # 用來(lái)加載其他動(dòng)態(tài)模塊的配置 include /usr/share/nginx/modules/*.conf; # 工作模式和連接數(shù)上限 events { # 每個(gè)worker_processes的最大并發(fā)鏈接數(shù) # 并發(fā)總數(shù):worker_processes*worker_connections worker_connections 1024; } # 與提供http服務(wù)相關(guān)的一些配置參數(shù)類(lèi)似的還有mail http { # 設(shè)置日志的格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # access_log記錄訪(fǎng)問(wèn)的用戶(hù)、頁(yè)面、瀏覽器、ip和其他的訪(fǎng)問(wèn)信息 access_log /var/log/nginx/access.log main; # 這部分下面會(huì)單獨(dú)解釋 # 設(shè)置nginx是否使用sendfile函數(shù)輸出文件 sendfile on; # 數(shù)據(jù)包最大時(shí)發(fā)包(使用Nagle算法) tcp_nopush on; # 立刻發(fā)送數(shù)據(jù)包(禁用Nagle算法) tcp_nodelay on; # 鏈接超時(shí)時(shí)間 keepalive_timeout 65; # 這個(gè)我也不清楚... types_hash_max_size 2048; # 引入文件擴(kuò)展名與文件類(lèi)型映射表 include /etc/nginx/mime.types; # 默認(rèn)文件類(lèi)型 default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; # http服務(wù)上支持若干虛擬主機(jī)。 # 每個(gè)虛擬主機(jī)一個(gè)對(duì)應(yīng)的server配置項(xiàng) # 配置項(xiàng)里面包含該虛擬主機(jī)相關(guān)的配置。 server { # 端口 listen 80 default_server; listen [::]:80 default_server; # 訪(fǎng)問(wèn)的域名 server_name _; # 默認(rèn)網(wǎng)站根目錄(www目錄) root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; # 默認(rèn)請(qǐng)求 location / { } # 錯(cuò)誤頁(yè)(404) error_page 404 /404.html; location = /40x.html { } # 錯(cuò)誤頁(yè)(50X) error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
我們要更改配置的只需要server
部分就可以了。進(jìn)入vim編輯模式,或者用FlashFXP將配置文件共享到桌面來(lái)更改即可。
只需要改動(dòng)三處即可
server { listen 80 default_server; listen [::]:80 default_server; # 這里改動(dòng)了,也可以寫(xiě)你的域名,我用的是IP地址 server_name 192.168.0.222; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { # 這里改動(dòng)了 定義首頁(yè)索引文件的名稱(chēng) index index.php index.html index.htm; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } # 這里新加的 # PHP 腳本請(qǐng)求全部轉(zhuǎn)發(fā)到 FastCGI處理. 使用FastCGI協(xié)議默認(rèn)配置. # Fastcgi服務(wù)器和程序(PHP,Python)溝通的協(xié)議. location ~ \.php$ { # 設(shè)置監(jiān)聽(tīng)端口 fastcgi_pass 127.0.0.1:9000; # 設(shè)置腳本文件請(qǐng)求的路徑 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 引入fastcgi的配置文件 include fastcgi_params; } }
重啟nginx服務(wù)器
nginx -s reload
此時(shí),nginx和php已經(jīng)聯(lián)合配置完成了,但是我們并不知道實(shí)際配置效果如何,這個(gè)時(shí)候我們可以寫(xiě)一個(gè)小的測(cè)試腳本來(lái)驗(yàn)證一下。
之前提過(guò)了/usr/share/nginx/html是Nginx的網(wǎng)站根目錄,我們可以在此目錄下建立一個(gè)php測(cè)試腳本。
# phpinfo.php是我要建立的文件名
vi /usr/share/nginx/html/phpinfo.php
打開(kāi)編輯器后,在里面輸入
<?php phpinfo();// 測(cè)試信息?>
保存退出后,在瀏覽器中輸入http://192.168.0.222/phpinfo.php,我這里的ip是192.168.0.222,你換成你們自己的即可。如圖出現(xiàn)類(lèi)似如下界面:
Nginx和php已經(jīng)配置完成了。
4、安裝過(guò)程出錯(cuò)原因
我按流程安裝時(shí),出現(xiàn)了一個(gè)錯(cuò)誤:mcrypt.h not found. Please reinstall libmcrypt
是因?yàn)閜hp-mcrypt libmcrypt libmcrypt-devel這些包沒(méi)安裝,出現(xiàn)的錯(cuò)誤一般都是缺少庫(kù)或者包,安裝即可。
以上是“如何編譯安裝php5.6.31”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。