centos7.3編譯安裝php-7.1.10

實驗環境:php

  1. centos7.3主機一臺html

  2. apache服務配置結束
    mysql

  3. http://php.net/ 官網下載最新版php源碼包sql

實驗前準備apache

]#yum install libxml2-devel -y
]#yum install bzip2-devel -y
]#yum install libmcrypt-devel -y  <===基於epel源

編譯安裝vim

]#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

添加配置文件centos

]#cd php-7.1.10/
]#cp php.ini-production /etc/php.ini

編輯apache配置文件httpd.conf,以使apache支持phpbash

]#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
.
.

wKioL1nd6Y2hgu9QAAG5j8V_QjY515.jpg-wh_50

經過查看包組能夠看到php的配置文件是在httpd下面,歸httpd管理的一個小模塊。能不能單獨做爲一個服務呢?固然能夠。這就是fpm機制。session

]#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

添加配置文件

]#vim /etc/httpd24/httpd.conf  <===在httpd配置文件中添加,我這裏是編譯安裝的httpd
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客戶端。

相關文章
相關標籤/搜索