----------------------------------------------------------------------------------------------------
LAMP组合(场景一):配置PHP以HTTPD的模块工作
CentOS-6.7 + httpd-2.4.17 + mariadb-5.5.46 + php-5.5.30
----------------------------------------------------------------------------------------------------
编译安装httpd-2.4.17
----------------------------------------------------------------------------------------------------
编译安装步骤:
前提:安装开发环境,安装pcre-devel、zlib-devel
# yum groupinstall "Development Tools" "Server Platform Development" -y
# yum install pcre-devel zlib-devel -y
创建apache用户和组
# groupadd -r apache
# useradd -r -g apache -s /sbin/nologin -M apache
httpd依赖于更高版本(1.4以上)的apr和apr-util
(1) 编译安装apr-1.5.2
# tar xf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure --prefix=/usr/local/apr
# make && make install
(2) 编译安装apr-util-1.5.4
# tar xf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
★编译安装apr-util时需指明apr的安装路径
(3) 编译安装httpd-2.4.17
# tar xf httpd-2.4.17.tar.bz2
# cd httpd-2.4.17
编译参数:
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make && make install
★关于MPM模块的构建:
(1)构建MPM为静态模块
在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。
(2)构建 MPM 为动态模块
在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。
后续的配置:
1) 导出头文件
[root@httpd-server local]# ln -sv /usr/local/apache/include//usr/include/httpd
`/usr/include/httpd‘ -> `/usr/local/apache/include/‘
2) 导出库文件
# ldconfig -v
# ldconfig -p 显示当前系统已经缓存的所有库文件列表
# 如果有库文件,编辑 /etc/ld.so.conf.d/httpd.conf 把库文件目录路径写在里面
3) 导出帮助手册
# vim /etc/man.config
添加一条路径:
MANPATH /usr/local/apache/man
★如果没有导出帮助手册,可直接指定路径查找:
man -M /usr/local/apache/man httpd
4) 输出二进制程序
# vim /etc/profile.d/httpd.sh
添加一行:
export PATH=/usr/local/apache/bin:$PATH
启动服务:
apachectl start
ps aux | grep httpd
ss -tnl 查看是否监听80端口
★如果启动服务时出现以下错误提示,是因为找不到FQDN导致的
AH00557: httpd: apr_sockaddr_info_get() failedfor SERVER_NAME
AH00558: httpd: Could not reliably determinethe server‘s fully qualified domain name
解决方法:
编辑主配置文件 /etc/httpd2.4/httpd.conf
修改 ServerName www.example.com:80为 ServerName 127.0.0.1:80
此时网站已能够正常访问:如果不能访问,请检查iptables 和 Selinux 是否未关闭
安装mariadb-5.5.45(通用二进制格式)
----------------------------------------------------------------------------------------------------
把安装包解压至/usr/local/目录下,再创建个软链接名为mysql
# tar xf mariadb-5.5.45-linux-x86_64.tar.gz -C /usr/local/
# cd /usr/local/
# ln -sv mariadb-5.5.45-linux-x86_64/ mysql
`mysql‘ -> `mariadb-5.5.45-linux-x86_64/‘
配置MariaDB:
创建mysql用户和组
# groupadd -r mysql
# useradd -r -s /sbin/nologin -M -g mysql mysql
#
# grep mysql /etc/passwd /etc/group
/etc/passwd:mysql:x:498:499::/home/mysql:/sbin/nologin
/etc/group:mysql:x:499:
修改/usr/local/mysql/目录下所有文件属主为root、属组为mysql
# chown -R root.mysql /usr/local/mysql/*
# ll mysql/
total 220
drwxr-xr-x. 2 rootmysql 4096 Oct 22 13:15 bin
-rw-r--r--. 1 rootmysql 17987 Aug 5 05:54 COPYING
-rw-r--r--. 1 rootmysql 26545 Aug 5 05:54 COPYING.LESSER
drwxr-xr-x. 3 rootmysql 4096 Oct 22 13:15 data
-rw-r--r--. 1 rootmysql 8245 Aug 5 05:54 EXCEPTIONS-CLIENT
drwxr-xr-x. 3 rootmysql 4096 Oct 22 13:15 include
-rw-r--r--. 1 rootmysql 8694 Aug 5 05:54 INSTALL-BINARY
drwxr-xr-x. 3 rootmysql 4096 Oct 22 13:15 lib
drwxr-xr-x. 4 rootmysql 4096 Oct 22 13:15 man
drwxr-xr-x. 11 root mysql 4096 Oct 22 13:15 mysql-test
-rw-r--r--. 1 rootmysql 108813 Aug 5 05:54 README
drwxr-xr-x. 2 rootmysql 4096 Oct 22 13:15 scripts
drwxr-xr-x. 27 root mysql 4096 Oct 22 13:15 share
drwxr-xr-x. 4 rootmysql 4096 Oct 22 13:15 sql-bench
drwxr-xr-x. 3 rootmysql 4096 Oct 22 13:15 support-files
创建用于存放数据库文件的目录,/data/mydata,并把该目录属主、属组为mysql
# mkdir -pv /data/mydata
mkdir: created directory `/data‘
mkdir: created directory `/data/mydata‘
#
# chown -R mysql.mysql /data/mydata/
#
# ll -d /data/mydata/
drwxr-xr-x. 2 mysql mysql 4096 Oct 22 13:37 /data/mydata/
输出二进制程序
# vim /etc/profile.d/mysqld.sh
添加一行:
export PATH=/usr/local/mysql/bin:$PATH
导出帮助手册
# 编辑/etc/man.config 添加一条路径 MANPATH /usr/local/mysql/man
★如果没有导出帮助手册,可直接指定路径查找:
man -M /usr/local/mysql/man mysql
初始化MySQL
# cd /usr/local/mysql/scripts/
# ./mysql_install_db --user=mysql --datadir=/data/mydata/
获取MariaDB配置文件:
默认提供了几个配置文件(根据服务器硬件配置选择)
/usr/local/mysql/support-files/my-medium.cnf
/usr/local/mysql/support-files/my-small.cnf
/usr/local/mysql/support-files/my-large.cnf ###应用于512M内存
/usr/local/mysql/support-files/my-huge.cnf
/usr/local/mysql/support-files/my-innodb-heavy-4G.cnf
# mkdir /etc/mysql
# cp my-huge.cnf /etc/mysql/my.cnf
★MariaDB的配置文件查找顺序:/etc/my.cnf--> /etc/mysql/my.cnf --> ~/.my.cnf
配置MariaDB数据库文件存放目录,及相关参数:
# vim /etc/mysql/my.cnf
找到 [mysqld] 修改下列几行:
datadir = /data/mydata ###数据库文件存放路径
thread_concurrency = 8 ###表示线程并发数(cpu核心数*2)
innodb_file_per_table = on ###用于innodb高级特性
skip_name_resolve = on ###关闭IP地址反向解析
★查看是否关闭:SHOWGLOBAL VARIABLES LIKE ‘%skip‘;
启动MySQL数据库
方法1:
# cd /usr/local/mysql/
# cp ./support-files/mysql.server /etc/init.d/mysqld
#
# chmod +x /etc/init.d/mysqld
# /etc/init.d/mysqld start
Starting MySQL... SUCCESS!
方法2:
/usr/local/mysql/bin/mysqld_safe &
停止mysql服务: mysqladmin shutdown
为数据库管理员设置密码:
# mysqladmin -u root password ‘magelinux‘
MariaDB默认不允许用户远程登录,因此要对用户和主机进行授权:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TOroot@"%" IDENTIFIED BY ‘magelinux‘ WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
编译安装php:(php编译为httpd的模块)
----------------------------------------------------------------------------------------------------
检查安装环境:
rpm -qa zlib* libpng* libjpeg* bzip2* libxml* libxslt*freetype* gd-devel* curl* openssl* libcurl-dev* libiconv* libmcrypt*
zlib-1.2.3-29.el6.x86_64
zlib-devel-1.2.3-29.el6.x86_64
libxml2-2.7.6-20.el6.x86_64
libxml2-devel-2.7.6-20.el6.x86_64
freetype-2.3.11-15.el6_6.1.x86_64
freetype-devel-2.3.11-15.el6_6.1.x86_64
libxslt-1.1.26-2.el6_3.1.x86_64
libxslt-devel-1.1.26-2.el6_3.1.x86_64
gd-devel-2.0.35-11.el6.x86_64
curl-7.19.7-46.el6.x86_64
openssl-1.0.1e-42.el6.x86_64
openssl-devel-1.0.1e-42.el6.x86_64
libpng-1.2.49-1.el6_2.x86_64
libpng-devel-1.2.49-1.el6_2.x86_64
bzip2-1.0.5-7.el6_0.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64
libjpeg-turbo-1.2.1-3.el6_5.x86_64
libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64
libcurl-devel.x86_64
libmcrypt-2.5.8-9.el6.x86_64
libmcrypt-devel-2.5.8-9.el6.x86_64
yum install zib zlib-devel libxml2 libxml2-devel freetypefreetype-devel libxslt libxslt-devel gd-devel curl openssl libpng libpng-develbzip2 bzip2-devel libjpeg-turbo libjpeg-turbo-devel libcurl-devel -y
libiconv 需要额外编译安装
http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
./configure --prefix=/usr/local/libiconv
make && make install
libmcrypt-devel 需要额外安装,在Fredora-EPEL源中寻找
http://mirrors.sohu.com/fedora-epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
http://mirrors.sohu.com/fedora-epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
编译安装PHP
# tar xfphp-5.5.30.tar.bz2
# cd php-5.5.30/
编译参数:
# ./configure --prefix=/usr/local/php--with-config-file-path=/etc/php/php.ini--with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml--with-mcrypt --with-bz2 --with-config-file-scan-dir=/etc/php.d/ --with-openssl--with-curl --with-xsl --with-iconv=/usr/local/libiconv --enable-sockets --enable-short-tags--enable-static --enable-gd-native-ttf --enable-ftp --enable-maintainer-zts
# make && make install
★为了支持apache的worker或event这两个MPM,编译时使用--enable-maintainer-zts 选项
★如果php与mysql同在一台机,那么编译安装的时候要指定mysql的路径:
--with-mysql=/usr/local/mysql/
--with-mysqli=/usr/local/mysql/bin/mysql_config
★如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。
# ./configure --with-mysql=mysqlnd--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
★如果PHP不是以编译安装方式安装的,那么可能需要安装php-mysql客户端
php-mysql.x86_64
提供php的配置文件:
# mkdir /etc/php/
# cp /tmp/php-5.5.30/php.ini-production /etc/php/php.ini
# vim /ect/php/php.ini
修改时区:
data.timezone = “Asia/Shanghai”
配置apache支持php
编辑apache主配置文件httpd.conf
检查配置文件内有无包含php模块的行
LoadModule php5_module modules/libphp5.so
增加如下内容:
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
添加index.php 为默认搜索主页
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
测试apache能否支持php
在网站根目录下创建一个index.php的主页文件
# vim /usr/local/apache/htdocs/index.php
主页内容:
<?php
phpinfo();
?>
测试php能否连接mysql
# vim /usr/local/apache/htdocs/index.php
#
<?php
$link = mysql_connect(‘172.16.2.6‘,‘root‘,‘magelinux‘);
if($link){
echo "mysql connection successfully!";
}else{
echo "mysql connection Failed.";
}
mysql_close();
?>
使用phpMyAdmin数据库图形化管理界面
把phpMyAdmin解压至/data/web/
# mkdir -pv /data/web/
# unzip phpMyAdmin-4.0.5-all-languages.zip -d /data/web/
#
# cd /data/web/
# mv phpMyAdmin-4.0.5-all-languages/ pmadmin
配置虚拟主机用于访问phpMyAdmin管理界面
(1)、编辑httpd主配置文件,开启虚拟主机开关
# vim /etc/httpd/httpd.conf
# Virtual hosts
Include /etc/httpd/extra/httpd-vhosts.conf
(2)、编辑虚拟主机配置文件,添加一个FQDN的虚拟主机
# vim /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@magelinux.com
DocumentRoot "/data/web/pmadmin"
ServerName pmadin.magelinux.com
ServerAlias magelinux.com
ErrorLog "/usr/local/apache/logs/pmadmin-error_log"
CustomLog"/usr/local/apache/logs/pmadmin-access_log" common
</VirtualHost>
<Directory "/data/web/pmadmin">
AllowOverride None
Options None
Require all granted
</Directory>
(3)、重启服务测试访问
使用xcache扩展模块提升php网站性能
使用ab命令对php页面进行压力测试:
# ab -n 1000 -c 50 http://pmadmin.magelinux.com/index.php
共发起1000个请求,并发访问50个
Server Software: Apache/2.4.17
Server Hostname: pmadmin.magelinux.com
Server Port: 80
Document Path: /index.php
Document Length: 8146 bytes ###页面文件大小
Concurrency Level: 50
Time taken for tests: 31.035 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 9439584 bytes
HTML transferred: 8146000 bytes
Requests per second: 32.22 [#/sec] (mean) ###服务器每秒响应个数
Time per request: 1551.746 [ms] (mean)
Time per request: 31.035 [ms] (mean, across all concurrent requests)
Transfer rate: 297.03 [Kbytes/sec] received
由于服务器接收到客户端对动态页面的请求,要交给应用程序服务处理后再把结果返回给客户端,可见,速度相当慢。
1、安装xcache-3.2.0
xcache的编译过程比较独特,因为它是php的扩展模块,所以没有自己的configure脚本文件,
因此它要生成configure脚本需要依赖当前的php环境,进到该软件解压的目录下执行phpize
phpize是php提供用来专门准备一个模块可以编译php额外扩展的功能
# tar xf xcache-3.2.0.tar.bz2
# cd xcache-3.2.0
#
# /usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20121113
Zend Module Api No: 20121212
Zend Extension Api No: 220121212
#
# ./configure --enable-xcache--with-php-config=/usr/local/php/bin/php-config
# make && make install
编译安装完成后它会安装一个php扩展模块,并提示一个路径:
/usr/local/php/lib/php/extensions/no-debug-zts-20121212/
2、编辑php.ini,整合php和xcache:
# cp xcache.ini /etc/php.d
编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:
extension =/usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so
3、重启httpd服务生效
打开phpinfo页,可看到php已加载该模块
此时,再使用ab命令对php页面进行压力测试:
# ab -n 1000 -c 50 http://pmadmin.magelinux.com/index.php
同样发起1000个请求,并发访问50个
Server Software: Apache/2.4.17
Server Hostname: pmadmin.magelinux.com
Server Port: 80
Document Path: /index.php
Document Length: 8146 bytes
Concurrency Level: 50
Time taken for tests: 4.338 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 9439598 bytes
HTML transferred: 8146000 bytes
Requests per second: 230.54 [#/sec] (mean)
Time per request: 216.884 [ms] (mean)
Time per request: 4.338 [ms] (mean, across all concurrent requests)
Transfer rate: 2125.19 [Kbytes/sec] received
可见,该扩展模块对服务器响应速度已有非常显著的提升!
----------------------------------------------------------------------------------------------------
LAMP组合(场景二):PHP以FPM模式工作
CentOS-6.7 + httpd-2.4.17 + mariadb-5.5.46 + php-5.5.30
----------------------------------------------------------------------------------------------------
fastcgi:php-5.3.3 之后的版本自带了fpm组件,
fpm组件能把PHP解释器工作为守护进程,并提供类似prefork模式的应用,它能够接收来自前端httpd,http-proxy-fcgi反向代理用户对动态内容请求至后端的fastcgi server
把php编译为fpm工作模式时需要加一个重要的选项 --enable-fpm
而不再使用 -with-apxs2=/usr/local/apache/bin/apxs
编译安装PHP:
----------------------------------------------------------------------------------------------------
# tar xf php-5.5.30.tar.bz2
# cd php-5.5.30/
# ./configure --prefix=/usr/local/php--with-config-file-path=/etc/php/php.ini--with-config-file-scan-dir=/etc/php.d/ --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml--with-mcrypt --with-bz2 --with-openssl --with-curl --with-xsl --with-iconv=/usr/local/libiconv--enable-sockets --enable-short-tags --enable-static --enable-gd-native-ttf--enable-ftp --enable-maintainer-zts --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --enable-fpm
# make && make install
把php编译为fpm工作模式时需要加一个重要的选项 --enable-fpm
而不再使用 -with-apxs2=/usr/local/apache/bin/apxs
为php提供配置文件
# mkdir /etc/php /etc/php.d
# cp php.ini-production /ect/php/php.ini
配置php-fpm
为php-fpm提供SysV init脚本,并将其添加至服务列表:
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig --add php-fpm
# chkconfig php-fpm on
检查php-fpm服务是否自启动
# chkconfig | grep php
php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
为php-fpm提供配置文件:
# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
编辑php-fpm的配置文件,配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
# vim /usr/local/php/etc/php-fpm.conf
listen = 172.16.2.5:9000
pm.max_children = 50 ###静态方式下开启的php-fpm进程数量
pm.start_servers = 5 ###动态方式下的起始php-fpm进程数量
pm.min_spare_servers = 2 ###动态方式下的最小php-fpm进程数量
pm.max_spare_servers = 8 ###动态方式下的最大php-fpm进程数量
pid = /usr/local/php/var/run/php-fpm.pid ###PID文件路径
说明:如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。
如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。
系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的
需求动态在pm.min_spare_servers 和pm.max_spare_servers之间调整php-fpm进程数。
当php-fpm工作为独立守护进程时,默认监听在127.0.0.1:9000 端口上,即默认至允许本机上的
httpd进程访问,当前环境是httpd和php分别在不同服务器安装,因此要修改监听端口,让其他主机
能够访问。
各自以fast-cgi方式工作时,前端的Web服务器必须以fcgi模块跟后端主机进行通信。
接下来就可以启动php-fpm了
# service php-fpm start
使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
# ps aux | grep php
root 4351 0.0 0.5 112472 5588 ? Ss 18:49 0:00 php-fpm: masterprocess (/usr/local/php/etc/php-fpm.conf)
nobody 4352 0.0 0.4 112472 4804 ? S 18:49 0:00 php-fpm: poolwww
nobody 4353 0.0 0.4 112472 4804 ? S 18:49 0:00 php-fpm: poolwww
nobody 4354 0.0 0.4 112472 4804 ? S 18:49 0:00 php-fpm: poolwww
nobody 4355 0.0 0.4 112472 4804 ? S 18:49 0:00 php-fpm: poolwww
nobody 4356 0.0 0.4 112472 4804 ? S 18:49 0:00 php-fpm: pool www
验正其是否已经监听在相应的套接字,此时已监听在172.16.2.5:9000 这个套接字上了
# netstat -tnlp | grep php-fpm
tcp 0 0 172.16.2.5:9000 0.0.0.0:* LISTEN 4351/php-fpm
在httpd服务器上设置:
----------------------------------------------------------------------------------------------------
配置httpd
1、启用httpd的相关模块
在Apache httpd2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,
它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
开启虚拟主机开关
Include /etc/httpd/extra/httpd-vhosts.conf
2、配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1
ProxyRequests Off:关闭正向代理
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI
所以这里直接在fcgi://127.0.0.1:9000 后指明了这两个参数
其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。
需要注意的问题:
动态资源需要放在PHP服务器上,当httpd服务器接收到客户端浏览器请求的是动态页面内容时,
会把请求发往指定的PHP服务器上处理,但是静态页面例如:html、jpg等还是会在httpd服务器上
处理,不然图片等信息可能就无法显示,因此在部署网站时,需要把网站的资源分别放在两边。
分别在HTTPD服务器和PHP服务器上各自创建同样路径的目录,不然启动httpd服务时会报错。
编辑虚拟主机配置文件:
# vim /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@magelinux.com
DocumentRoot "/data/web/www/"
ServerName phpinfo.magelinux.com
ServerAlias magelinux.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$fcgi://172.16.2.5:9000/data/web/www/$1
ErrorLog "/usr/local/apache/logs/phpinfo-error_log"
CustomLog"/usr/local/apache/logs/phpinfo-access_log" common
</VirtualHost>
<Directory "/data/web/www/">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
创建虚拟主机主页(在PHP Server上),测试httpd能否支持php
# vim /data/web/www/index.php
编辑如下内容:
<?php
phpinfo();
?>
客户端浏览器上测试:
此时,Server API 工作模式为:FPM/FastCGI
原文:http://yao3800.blog.51cto.com/1522113/1705701