承接上文;上回说到Apache的安装和一些常用配置,接下来说下Apache结合PHP的安装和配置。Apache处理PHP动态请求的稳定性高于Nginx+PHP-fpm的方式,就是因为PHP利用Apache的动态模块机制实现了高度整合。去PHP官网下载PHP包
[root@localhost ~]# tar zxvf php-5.6.40.tar.gz
[root@localhost ~]# ll
总用量 29436
drwxr-xr-x. 18 1000 1000 4096 1月 21 17:05 php-5.6.40
-rw-r--r--. 1 root root 19305795 1月 21 16:18 php-5.6.40.tar.gz
编译前先安装下面的依赖,不然编译过错会报错,
yum -y install libxml2 libxml2-devel
yum -y install curl-devel
yum -y install libjpeg-devel
yum -y install libpng libpng-devel
yum -y install freetype-devel
yum -y install epel-release
yum -y install libmcrypt-devel
PHP提供编译选项--with-apxs2 用户编译Apache模块,其中数字2表示该编译选项是为2.x版本的Apache设计的
[root@localhost ~]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-zlib --enable-zip --enable-mbstring --with-mcrypt --with-mysql --with-mysqli --with-pdo-mysql --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-curl --with-openssl --with-mhash --enable-bcmath --enable-opcache
[root@localhost ~]# make && make install
编译完成后,在Apache的模块modules目录中可以看到编译后的PHP模块,在httpd.conf配置文件中会看到该模块已经添加并使用
[root@localhost modules]# ls | grep php
libphp5.so
[root@localhost modules]#
[root@localhost apache2]# grep php conf/httpd.conf
LoadModule php5_module modules/libphp5.so
DirectoryIndex index.html index.php
setHandler application/x-httpd-php
[root@localhost apache2]#
初次安装PHP,还需要复制php.ini.其实php.ini的保持目录可以使用--with-config-file-path编译选项来指定,也可以在httpd.conf 文件中通过PHPIntDir指令进行指定
[root@localhost modules]# cd ~/php-5.6.40
[root@localhost php-5.6.40]# cp php.ini-development /usr/local/php/lib/php.ini
Apache和PHP勾搭一起
为了使Apache能够识别php扩展名的文件,将文件交给PHP模块处理,需要在httpd.conf中配置文件扩展名。
setHandler application/x-httpd-php
在httpd.conf找DirectoryIndex。在后面追加 index.php
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
DirectoryIndex index.html index.php
记得重启Apache,然后创建一个php文件,进行测试
[root@localhost apache2]# /usr/local/apache2/bin/apachectl restart