Debian 7 (Wheezy)安装配置Apache mod_fastcgi PHP-FPM

本文介绍如何在Debian 7系统上配置和安装使用Apache mod_fastcgi和PHP-FPM。 Apache的默认配置使用mod_php而不是mod_fastcgi,mod_php使用大量的系统资源。
mod_php使用更多资源的主要原因是因为它即使为非PHP文件(如纯HTML和JavaScript文件)也加载。 FastCGI进程管理器(PHP-FPM)通过强制Web服务器充当代理并且仅将以php文件扩展名结尾的文件传递给PHP-FPM来帮助减少所使用的系统资源量。
此外,使用PHP-FPM允许将每个虚拟主机配置为作为单独用户运行PHP代码。 以前,这只能通过使用suPHP。

安装mod_fastcgi和PHP-FPM



mod_fastcgi和PHP-FPM都在Debian 7官方软件库,安装方法如下:
1.更新软件库

  1. sudo apt-get update && sudo apt-get upgrade --show-upgraded

2.看看mod_fastcgi是否可用。 默认情况下,Debian 7不包括安装mod_fastcgi所需的软件库,因为它是一个contrib模块,并且是non-free的(就Debian的许可限制而言)。

  1. sudo apt-cache search libapache2-mod-fastcgi

3.如果不可用,您需要编辑/etc/apt/sources.list文件,以允许将contrib和non-free软件加载到软件库列表中。 您的源文件应如下所示:
/etc/apt/sources.list:

  1. deb http://ftp.es.debian.org/debian stable main contrib non-free
  2. deb-src http://ftp.es.debian.org/debian stable main contrib non-free
  3.  
  4. deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
  5. deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
  6.  
  7. deb http://security.debian.org/ wheezy/updates main contrib non-free
  8. deb-src http://security.debian.org/ wheezy/updates main contrib non-free

4.更新apt-get软件库

  1. sudo apt-get update && sudo apt-get upgrade --show-upgraded

5.安装mod_fastcgi和PHP-FPM

  1. sudo apt-get install libapache2-mod-fastcgi php5-fpm

配置Apache使用PHP-FPM



我们现在将配置Apache将PHP文件的所有请求(带有PHP文件扩展名)通过FastCGI传递给PHP wrapper。
1.激活mod_actions模块

  1. sudo a2enmod actions

2.配置PHP-FPM使用UNIX套接字而不是TCP。 在这个命令中,我们将使用grep来确定套接字是否已被使用。

  1. sudo grep -E '^\s*listen\s*=\s*[a-zA-Z/]+' /etc/php5/fpm/pool.d/www.conf

你会看到如下输出:
listen = /var/run/php5-fpm.sock
如果你看到如上输出,请跳到第6步。
3.如果没有看到以上输出,更改如下文件:
etc/php5/fpm/pool.d/www.conf

  1. listen = /var/run/php5-fpm.sock

4.找到如下行并删除
/etc/php5/fpm/pool.d/www.conf:

  1. listen = 127.0.0.1:9000

5.重启php5-fpm生效配置

  1. sudo service php5-fpm restart

6.检查Apache版本

  1. apache2 -v

7.根据Apache版本,编辑对应的文件
Apache 2.2或更早版本
/etc/apache2/mods-enabled/fastcgi.conf:

  1. <IfModule mod_fastcgi.c>
  2.  AddType application/x-httpd-fastphp5 .php
  3.  Action application/x-httpd-fastphp5 /php5-fcgi
  4.  Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
  5.  FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
  6. </IfModule>

Apache 2.4或更高版本
/etc/apache2/mods-enabled/fastcgi.conf

  1. <IfModule mod_fastcgi.c>
  2.  AddType application/x-httpd-fastphp5 .php
  3.  Action application/x-httpd-fastphp5 /php5-fcgi
  4.  Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
  5.  FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
  6.  <Directory /usr/lib/cgi-bin>
  7.   Require all granted
  8.  </Directory>
  9. </IfModule>

8.保存文件并检查配置错误

  1. sudo apache2ctl configtest

9.只要你看到Syntax OK输出,重启Apache服务

  1. sudo service apache2 restart

如果没有看到Syntax OK,检查下配置哪里出错了
10.通过创建和访问具有phpinfo()显示的页面来检查PHP是否正常工作。 以下命令将在/var/www(Apache中网站的默认目录)中创建info.php:

  1. sudo echo "<?php phpinfo(); ?>" > /var/www/info.php
标签:DebianPHPApache 发布于:2019-11-21 16:31:19