通过fcgi实现lamp

简单罗列基础命令,只分享我的想法!

要求:三台单独的服务器通过fcgi,实现lamp

环境:httpd-2.4.10apr-1.5.0apr-until-1.4.1PHP-5.4.40mariaDB-5.5.43CentOS 6.6

环境示意图(同一个网卡设置多个地址即可,ip addr add IP dev eth0):

wKiom1VLXYKC-6rLAADiI4mgYgI757.jpg

1

一、编译httpd-2.4.10和二进制通用格式安装mariaDB-5.5.43的方法同上一篇博客的内容相同,不在重复,只不过是在两台服务器上面单独安装。

二、编译PHP-5.4.40

1)安装依赖包(devel子包主要是包含一些include文件)

yum install libxml2-devel libmcrypt-devel bzip2-devel �Cy

2)编译

./configure--prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --enable-fpm --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-zlib --with-libxml-dir=/usr --enable-xml--enable-sockets --with-mcrypt --with-bz2 --with-config-file-path=/etc/php/--with-config-file-scan-dir=/etc/php.d/

(./configure --help中对与―with-mysql=dir中是这样描述的Include MySQL support.  DIR is the MySQL base directory,if no DIR is passed or the value is                          mysqlnd the MySQLnative driver will be used,大致的意思应该是―with-mysql应该是提供读mysql的支持,dir就是mysql的目录,但是如果没有,mysqlnd也是可以提供驱动的)

make && make install

3) 配置php-fpm

php-fpm提供SysV init脚本,并将其添加至服务列表

进入源码包

cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm  //php-fpm这个文件里面记录pid存放目录
chmod +x/etc/rc.d/init.d/php-fpm
chkconfig --addphp-fpm
chkconfigphp-fpm on

4)为FPM组件提供配置文件

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

编辑fcgi的配置文件

vim /usr/local/php/etc/php-fpm.conf

配置fpm的相关选项

pid =/user/local/php/var/run/php-fpm.pid
error_log =/var/log/php-fpm.log
listen =172.16.149.3:9000
pm.max_children= 5
pm.start_servers= 2
pm.min_spare_servers= 1
pm.max_spare_servers= 3

启动php-fpm,看9000端口是否启动

/etc/init.d/php-fpm start

三、配置httpd-2.4.10

1)配置主配置文件(配置的是中心主机)

vim /etc/httpd1/httpd.conf

添加以下四行

ProxyRequestsOff //关闭正向代理
ProxyPassMatch^/(.*\.php)$ fcgi://172.16.149.3:9000/usr/local/apache/htdocs/$1 //把所有.php的请求统统通过fcgi发送到172.16.149.3这个php服务器来运行
AddTypeapplication/x-httpd-php  .php  //让apache支持php的页面
AddTypeapplication/x-httpd-php-source  .phps

修改三行

DirectoryIndex  index.php index.html

mod_proxy_fcgi.somod_proxy.so的扩充,所以都需要加载

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

2)配置主配置文件(配置的是虚拟机)

添加以下两行

AddTypeapplication/x-httpd-php  .php  //让apache支持php的页面
AddTypeapplication/x-httpd-php-source  .phps

修改三行

DirectoryIndex  index.php index.html
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include/etc/httpd1/extra/httpd-vhosts.conf

编辑虚拟机的配置文件

vim /etc/httpd1/extra/httpd-vhosts.conf

增加以下两行

AddTypeapplication/x-httpd-php  .php  //让apache支持php的页面
AddTypeapplication/x-httpd-php-source  .phps

四、测试(配置中心主机)

确保php服务器的php-fpmapache服务器的httpd服务开启,且两台服务器能够互相访问。

php服务器上面创建php文件

mkdir -vp /usr/local/apache/htdocs
vim /usr/local/apache/htdocs/index.php
<?php
 phpinfo();
?>

通过浏览器进行查看,如图2

wKioL1VLYJOBCuF0AASyLziRiSw816.jpg

2

php服务器运行状态,如图3

wKioL1VLYOfjyPgaAAMklMDVS2A789.jpg

3

httpd服务器运行状态,如图

wKiom1VLX5uz7jRYAAR1auDXT1Q755.jpg

4

五、检验数据库的连接

1)mysql配置说明

CREATE USER 'wlw'@'172.16.%.%' IDENTIFIED BY 'wlw1';

2)编辑index.php

<?php
      $link =mysql_connect('172.16.249.36','wlw','wlw1');
         if ($link)
            echo "Success...";
         else
            echo "Failure...";
 
                                                                                                                                                  mysql_close();
?>

3)测试截图



                                        图5


你可能感兴趣的:(组件,lamp,fpm,三台服务器)