由于nginx不是以模块化运行php的fast-cgi,因此要安装php-fpm,通过9000端口与php-fpm通信。
apache把php作为模块运行,不需要安装php-fpm
apache安装
#配置参数
./configure --prefix=/usr/local/apache --enable-so
#编译
sudo make
#安装
sudo make install
安装mysql,gd记录略
php安装
#配置参数
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-gd --with-mysql
#编译
sudo make
#安装
sudo make install
#找到php指定的php.ini目录
/usr/local/php/bin/php -r 'phpinfo();' | grep 'php.ini'
#显示如下
Configuration File (php.ini) Path => /usr/local/php/lib
#复制安装包下配置文件到/usr/local/php/lib目录下
cp 你解压安装包后文件下的php.ini-development /usr/local/php/lib/php.ini
(注:prefix=安装的路径;–with-apxs2=apache安装路径下面的/bin/apxs(这是让PHP知道apache的安装路径并把.so文件复制到apache模块文件,并在配置文件中添加相应配置);–with-mysql和–with-gd这两个是指定GD和MYSQL的安装目录,由于我们是apt包安装的是默认路径,PHP自己会找的到,如果你的通过编绎安装的GD和MYSQL那么这里就必须要指定路径了。)
其他配置可以安装好后再改配置文件
基本配置
#用gedit编辑器打开配置文件
sudo gedit conf/httpd.conf
#httpd.conf需要更改的地方
#在LoadModule处添加,根据实际版本,我这是php7
LoadModule php7_module modules/libphp7.so
DocumentRoot :你项目根目录
<Directory "你项目根目录">
#在ADDTYPE处添加
AddType application/x-httpd-php .php
#在index.html处添加一项index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
发现apache没有rewrite模块
#利用计算机查找功能找到安装包源文件mod_rewrite.c,并将路径切换到此目录下,利用apaxs动态添加模块
sudo /usr/local/apache/bin/apxs -c -i -a mod_rewrite.c
#重启apache
sudo /usr/local/apache/bin/httpd -k restart
-c 编译 -i将编译好的.so文件安装到apache存放so文件的目录中 -a激活模块(即向httpd.conf添加 LoadModule指令)