centos7.3編譯安裝php-7.1.10
阿新 • • 發佈:2017-10-12
編譯 php
實驗環境:
centos7.3主機一臺
apache服務配置結束
http://php.net/ 官網下載最新版php源碼包
實驗前準備
]#yum install libxml2-devel -y ]#yum install bzip2-devel -y ]#yum install libmcrypt-devel -y <===基於epel源
編譯安裝
]#rz ]#tar xvf php-7.1.10.tar.xz ]#cd php-7.1.10/ ]#./configure --prefix=/app/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr \ --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo ]#make && make install
添加配置文件
]#cd php-7.1.10/ ]#cp php.ini-production /etc/php.ini
編輯apache配置文件httpd.conf,以使apache支持php
]#vim /etc/httpd24/conf/httpd.conf <IfModule dir_module> DirectoryIndex index.php index.html <===添加index.php一行 </IfModule> AddType application/x-httpd-php .php <===添加以下兩行 AddType application/x-httpd-php-source .phps
測試
]#cd /app/httpd24/htdocs <===編譯安裝的主頁在這裏 ]#vim index.php <?php <===php的格式 phpinfo(); ?> ]#ab -c 10 -n 100 http://192.168.32.111/index.php <===另外一臺主機測試服務器性能 . . Time per request: 21.902 [ms] (mean) Time per request: 2.190 [ms] (mean, across all concurrent requests) Transfer rate: 36964.69 [Kbytes/sec] received . .
通過查看包組可以看到php的配置文件是在httpd下面,歸httpd管理的一個小模塊。能不能單獨作為一個服務呢?當然可以。這就是fpm機制。
]#rpm -ql php /etc/httpd/conf.d/php.conf /etc/httpd/conf.modules.d/10-php.conf /usr/lib64/httpd/modules/libphp5.so /usr/share/httpd/icons/php.gif /var/lib/php/session
FPM機制
CentOS 6:
PHP-5.3.2之前:默認不支持fpm機制;需要自行打補丁並編譯安裝
httpd-2.2:默認不支持fcgi協議,需要自行編譯此模塊
解決方案:編譯安裝httpd-2.4, php-5.3.3+
CentOS 7:
httpd-2.4:rpm包默認編譯支持了fcgi模塊
php-fpm包:專用於將php運行於fpm模式
這裏給大家介紹一下基於php-fpm包的fpm模式。
前提:卸載原來的php包,二者不能同時運行。
安裝:
]#yum install -y php-fpm ]#rpm -ql php-fpm /etc/logrotate.d/php-fpm /etc/php-fpm.conf /etc/php-fpm.d /etc/php-fpm.d/www.conf <===修改監聽地址,允許連接的地址等 /etc/sysconfig/php-fpm /run/php-fpm /usr/lib/systemd/system/php-fpm.service /usr/lib/tmpfiles.d/php-fpm.conf /usr/sbin/php-fpm /usr/share/doc/php-fpm-5.4.16 /usr/share/doc/php-fpm-5.4.16/fpm_LICENSE /usr/share/doc/php-fpm-5.4.16/php-fpm.conf.default /usr/share/fpm /usr/share/fpm/status.html /usr/share/man/man8/php-fpm.8.gz /var/log/php-fpm ]#systemctl start php-fpm.service
添加配置文件
]#/etc/httpd/conf.d/fpm.conf DirectoryIndex index.php ProxyRequests Off <===是否開啟正向代理 ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1 <===開啟FCGI反向代理 註釋:前面的/相對於後面的/var/www/html而言,後面的$1是指前面的/(.*\.php)
如果需要配置虛擬主機,把這段代碼寫進/etc/httpd/conf.d/vhosts.conf
<VirtualHost*:80>
.
.
DirectoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/b.net/$1
.
</VirtualHost>
註意:在HTTPD服務器上必須啟用proxy_fcgi_module模塊,充當PHP客戶端。
centos7.3編譯安裝php-7.1.10