LAMMP架构的企业级应用(4)

1)解决Apache与FastCGI的协同工作
  a)Apache服务器的操作

[root@jie1 ~]# vim /usr/local/apache/conf/httpd.conf
###########vim /usr/local/apache/conf/httpd.conf ###########
#DocumentRoot "/usr/local/apache/htdocs"  #注释这行
LoadModule proxy_module modules/mod_proxy.so  #开启代理的模块
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so#开启连接fastcgi的模块
Include conf/extra/httpd-vhosts.conf #开启让主配置文件载入虚拟主机的配置文件
############################################################
[root@jie1 ~]# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
#####vim  /usr/local/apache/conf/extra/httpd-vhosts.conf############
#开启一个虚拟主机即可
<VirtualHost *:80>
    DocumentRoot "/web/htdocs/"  #Apache服务器存放网页的目录
    ServerName
  <Directory "/web/htdocs">
      AllowOverride None
      Options None
    Require all granted
  </Directory>
    ProxyRequests Off  #关闭代理请求
    ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.22.2:9000/website/$1
  #把接收客户端来着php的请求,转到FastCGI服务器上面去执行,website是指
#FastCGI服务存放php网页的目录
</VirtualHost>
#####################################################################
[root@jie1 ~]# mkdir -pv /web/htdocs
mkdir: created directory `/web'
mkdir: created directory `/web/htdocs'
[root@jie1 ~]# vim /web/htdocs/test.php
####vim /web/htdocs/test.php####
#测试php网页的页面
<?php
    phpinfo();
?>
#####################################
[root@jie1 htdocs]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@jie1 htdocs]#

b)FastCGI服务器的操作

[root@jie2 ~]# mkdir /website  #建立存放网页的目录
[root@jie2 website]# scp 172.16.22.1:/web/htdocs/test.php  ./  #把Apache服务器上面的网页文件copy到FastCGI服务器上面,且存放在website目录下
[root@jie2 website]# service php-fpm restart  #重启FastCGI服务器
Gracefully shutting down php-fpm . done
Starting php-fpm  done

c)测试结果

LAMMP架构的企业级应用

2、解决PHP-FPM(FastCGI)怎么连接Memcached
因为我们之前已经在FastCGI安装了连接memcached的软件包memcache且把memcache.so模块装载到php的配置文件中了,这样就实现了PH-FPM(FastCGI)连接Memcached。
a)在Apache服务器上网页存放路径下新建mem.php的测试页面

[root@jie1 htdocs]# cat /web/htdocs/mem.php
  <?php
  $mem = new Memcache;
  $mem->connect("172.16.22.3", 11211);
  $mem->set('key','test info');
  print_r($mem->get('key'));
  print_r($mem->getstats());
  ?>
b)在FastCGI服务器上面copy mem.php的测试页面
[root@jie2 website]# scp 172.16.22.1:/web/htdocs/mem.php  ./

c)测试结果

LAMMP架构的企业级应用

在生产环境中是否要用memcached服务器缓存数据,取决于客户请求的php程序,当用户请求的php程序中,开发人员将此程序开发需要请求memcached服务器则会用到memcached服务器来缓存客户的数据。在此仅供测试FastCGI服务器是否能连接memcached服务器。


3、解决PHP-FPM(FastCGI)怎么连接MySQL

PHP-FPM连接mysql,在编译的时候可以加这三个参数,然后PHP-FPM服务器上也可以不用安装mysql也可以连接mysqld服务器。
--with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd
a)在Apache服务器上网页存放路径下新建testdb.php的测试页面
      [root@jie1 htdocs]# cat testdb.php
      <?php
      $link=mysql_connect('172.16.22.4','root','mypass');
      if($link) echo "mysql test success!!";
      else echo "mysql test failed!!!";
      mysql_close();
      ?>

b)在FastCGI服务器上面copy testdb.php的测试页面
    [root@jie2 website]# scp 172.16.22.1:/web/htdocs/testdb.php  ./
c)测试结果

LAMMP架构的企业级应用


    自此,已经解决WEB怎么连接PHP-FPM(FastCGI),解决PHP-FPM(FastCGI)怎么连接Memcached,解决PHP-FPM(FastCGI)怎么连接Mysql,LAMMP分别搭建在不同的服务器上且可以协同工作已经完成。

三、LAMMP适用的生产环境
    由于memcached只是把数据缓存到内存中,当memcached服务器宕机之后,memcached保存的数据就丢失了,所以在电商站点对session的数据要求严格是memcached服务器不能适用于此生成环境,如果不是电商站点,只是想加快客户访问自己的网站的速度,那memcached所能提供的速度还是很大的,因为数据时直接缓存在内存中了,那速度就可以而知,“尽情期待能保存电商站点的session回话中的数据之Redis架构的搭建”。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5b56dd784238041c3539058f675c727c.html