前言:我们在搭建apache2 + php-fpm的web服务器的时候,常常会使用apache2的模块功能来配置,这样对新手来说就可以不需要专门地学习apache2的配置文件怎么写,却能很快搭建起一个web服务。
[ubuntu + apache2 + php ]web服务搭建
apt-get install apache2
#安装php7支持
apt-get install php
apt-get -y install php7.0-fpm php-mysql
#由于apache2 可能不能正常解析php7.0,因此需要安装PHP针对于apache的模块
apt-get install php libapache2-mod-php
apache2配置文件目录解析
-
apache2.conf是最初的文件,后面的所有配置都是在这里include进来的
可以看到这个配置文件导入了mods-enabled、conf-enabled、sites-enabled
等目录下面的文件
- mods-enabled、conf-enabled、sites-enabled
这三个目录保存的信息分别是:
mods-enabled : 保存apache模块的配置文件,我们上面用到的libapache2-mod-php的配置文件就保存在这个目录下面
conf-enabled:一般用来保存apache自己的配置文件
sites-enabled:一般用来保存网站相关的配置文件,比如url解析等信息
#此外还有一个mods-available/目录
mods-available:这个目录一般也是模块配置信息
修改php后缀扩展名集合
由于我们这里使用的是libapache2-mod-php
模块,而这个,模块的配置文件在mods-available/
目录下面:
将红框中的那一行按照正则的方式去写就可以解析其他的扩展名了,而这样的url请求过来的时候,会通过SetHandler application/x-httpd-php
转发请求给php-fpm,这样子就可以解析.phj后缀的文件了:
php-fpm配置文件解析
有时候在写nginx的php fastcgi的端口为9000的时候发现没有相应,这个时候php-fpm并没有在监听9000端口,那么我们这时候要怎么找到相关信息呢?
其实相关信息在/etc/php/7.0/fpm/pool.d/www.conf
,如下图:
这里列出了几种调用php-fpm fastcgi的方式,其中最常用的就是监听本地的9000端口,或者使用unix管道,当使用管道的时候,就可以使用类似以下的方式转发:
#nginx.conf
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}