搭建LAMP-配置apache与php-fpm的php
编辑时间:2017-10-11 作者:jack
### 简介 PHP-FPM是一个PHPFastCGI管理器,用于替换PHP FastCGI的大部分功能,对于高负载网站是非常有用的。传统上,很多LAMP架构的网站都是把php作为Apache的一个模块来运行,当通过浏览器访问php文件时,Apache就会调用php7_module(Apache内置的mod_php模块)来解析php代码。 所以,之前在Apache配置文件httpd.conf中通常有类似以下的配置: LoadModule php7_module modules/libphp7.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> 或 AddType application/x-httpd-php .php 但是把PHP作为Apache的一个模块这样配置通常性能都不高。一旦有大量用户访问,并发数过多,服务器就会承受不了。 所以,本文就介绍如何搭建LAMP-配置apache与通过php-fpm来执行php代码的方式。 ### 搭建前说明 不同版本之间可能配置有些不同。 * 版本 Apache:2.4.7 PHP: 7.0.7 Linux:centos6.8 * 安装路径说明 php安装到/usr/local/php目录下 apache安装到/usr/local/apache2目录下 ### 具体安装步骤 * 安装php的configure `$ ./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-gd --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=mysqlnd --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=mysqlnd --without-pear --enable-fpm` 其实就是加入了`--enable-fpm`,去掉了`--with-apxs2=/usr/local/apache2/bin/apxs` `$ make` `$ make test` `$ make install` * 让php-fpm开机自启 //sapi目录在解压后的php源码包中 `$ cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm` `$ chmod +x /etc/init.d/php-fpm` `$ chkconfig --add php-fpm` `$ chkconfig php-fpm on` * 让php-fpm的配置文件生效 `$ cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf` `$ cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf` * 修改php-fpm配置文件 `$ vim /usr/local/php/etc/php-fpm.d/www.conf` user = daemon group = daemon pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 8 * apache安装时配置不需要做任何改变,但是需要修改Apache的配置文件 `$ vim /usr/local/apache2/etc/httpd.conf` //删除以下配置前面的# LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so ![输入图片说明](https://www.3maio.com/img/uploads/2017-10-11-73b8302f40e4b9a74aca31b8803ab947.png "在这里输入图片标题") * 再对apache配置文件做修改 `$ vim /usr/local/apache2/etc/httpd.conf` ProxyRequests Off ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache2/htdocs/$1 ![输入图片说明](https://www.3maio.com/img/uploads/2017-10-11-3d99e621cbc24bc9e9fd0554f6ca599d.png "在这里输入图片标题") 这里啰嗦一句,$1前面必须有一个/,否则访问php文件时,会出现 File not found.的错误 * 启动php-fpm,apache `$ service php-fpm start` `$ /usr/local/apache2/bin/apache2 start` ### 参考链接 * http://php.net/manual/zh/install.fpm.php * https://cnzhx.net/blog/apache-httpd-mod_proxy_fcgi-php-fpm/
来说两句吧
最新评论