首页 > 其他 > 详细

编译安装实现LAMP组合

时间:2015-10-24 06:44:05      阅读:349      评论:0      收藏:0      [点我收藏+]

----------------------------------------------------------------------------------------------------

LAMP组合(场景一):配置PHPHTTPD的模块工作

CentOS-6.7 + httpd-2.4.17 + mariadb-5.5.46 + php-5.5.30

----------------------------------------------------------------------------------------------------


技术分享




编译安装httpd-2.4.17

----------------------------------------------------------------------------------------------------

编译安装步骤:


前提:安装开发环境,安装pcre-devel、zlib-devel

# yum groupinstall "Development Tools" "Server Platform Development" -y

# yum install pcre-devel zlib-devel -y


创建apache用户和组

# groupadd -r apache

# useradd -r -g apache -s /sbin/nologin -M apache


httpd依赖于更高版本(1.4以上)的apr和apr-util


(1) 编译安装apr-1.5.2

# tar xf apr-1.5.2.tar.bz2

# cd apr-1.5.2

# ./configure --prefix=/usr/local/apr

# make && make install


(2) 编译安装apr-util-1.5.4

# tar xf apr-util-1.5.4.tar.bz2

# cd apr-util-1.5.4

# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

# make && make install


编译安装apr-util时需指明apr的安装路径


(3) 编译安装httpd-2.4.17

# tar xf httpd-2.4.17.tar.bz2

# cd httpd-2.4.17


编译参数:

# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --enable-deflate --enable-expires --enable-headers --enable-modules=most --enable-mpms-shared=all --with-mpm=event

# make && make install



关于MPM模块的构建:

(1)构建MPM为静态模块

在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。


(2)构建 MPM 为动态模块

在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。



后续的配置:

1) 导出头文件

[root@httpd-server local]# ln -sv /usr/local/apache/include//usr/include/httpd

`/usr/include/httpd‘ -> `/usr/local/apache/include/‘

 

2) 导出库文件

# ldconfig -v

# ldconfig -p 显示当前系统已经缓存的所有库文件列表

# 如果有库文件,编辑 /etc/ld.so.conf.d/httpd.conf 把库文件目录路径写在里面

 

3) 导出帮助手册

# vim /etc/man.config

添加一条路径:

MANPATH /usr/local/apache/man

 

如果没有导出帮助手册,可直接指定路径查找:

man -M /usr/local/apache/man httpd

 

4) 输出二进制程序

# vim /etc/profile.d/httpd.sh

添加一行:

export PATH=/usr/local/apache/bin:$PATH

 

 

启动服务:

apachectl start

ps aux | grep httpd

ss -tnl 查看是否监听80端口

 

如果启动服务时出现以下错误提示,是因为找不到FQDN导致的

AH00557: httpd: apr_sockaddr_info_get() failedfor SERVER_NAME

AH00558: httpd: Could not reliably determinethe server‘s fully qualified domain name

 

解决方法:

编辑主配置文件 /etc/httpd2.4/httpd.conf

修改 ServerName www.example.com:80为 ServerName 127.0.0.1:80

 

 

此时网站已能够正常访问:如果不能访问,请检查iptables 和 Selinux 是否未关闭

 

技术分享





安装mariadb-5.5.45(通用二进制格式)

----------------------------------------------------------------------------------------------------

把安装包解压至/usr/local/目录下,再创建个软链接名为mysql

# tar xf mariadb-5.5.45-linux-x86_64.tar.gz -C /usr/local/

# cd /usr/local/

# ln -sv mariadb-5.5.45-linux-x86_64/ mysql

`mysql‘ -> `mariadb-5.5.45-linux-x86_64/‘

 

 

配置MariaDB:

创建mysql用户和组

# groupadd -r mysql

# useradd -r -s /sbin/nologin -M -g mysql mysql

#

# grep mysql /etc/passwd /etc/group

/etc/passwd:mysql:x:498:499::/home/mysql:/sbin/nologin

/etc/group:mysql:x:499:

 

 

修改/usr/local/mysql/目录下所有文件属主为root、属组为mysql

# chown -R root.mysql /usr/local/mysql/*

# ll mysql/

total 220

drwxr-xr-x.  2 rootmysql   4096 Oct 22 13:15 bin

-rw-r--r--.  1 rootmysql  17987 Aug  5 05:54 COPYING

-rw-r--r--.  1 rootmysql  26545 Aug  5 05:54 COPYING.LESSER

drwxr-xr-x.  3 rootmysql   4096 Oct 22 13:15 data

-rw-r--r--.  1 rootmysql   8245 Aug  5 05:54 EXCEPTIONS-CLIENT

drwxr-xr-x.  3 rootmysql   4096 Oct 22 13:15 include

-rw-r--r--.  1 rootmysql   8694 Aug  5 05:54 INSTALL-BINARY

drwxr-xr-x.  3 rootmysql   4096 Oct 22 13:15 lib

drwxr-xr-x.  4 rootmysql   4096 Oct 22 13:15 man

drwxr-xr-x. 11 root mysql  4096 Oct 22 13:15 mysql-test

-rw-r--r--.  1 rootmysql 108813 Aug  5 05:54 README

drwxr-xr-x.  2 rootmysql   4096 Oct 22 13:15 scripts

drwxr-xr-x. 27 root mysql  4096 Oct 22 13:15 share

drwxr-xr-x.  4 rootmysql   4096 Oct 22 13:15 sql-bench

drwxr-xr-x.  3 rootmysql   4096 Oct 22 13:15 support-files

 

 

创建用于存放数据库文件的目录,/data/mydata,并把该目录属主、属组为mysql

# mkdir -pv /data/mydata

mkdir: created directory `/data‘

mkdir: created directory `/data/mydata‘

#

# chown -R mysql.mysql /data/mydata/

#

# ll -d /data/mydata/

drwxr-xr-x. 2 mysql mysql 4096 Oct 22 13:37 /data/mydata/

 

 

输出二进制程序

# vim /etc/profile.d/mysqld.sh

添加一行:

export PATH=/usr/local/mysql/bin:$PATH

 

 

导出帮助手册

# 编辑/etc/man.config 添加一条路径 MANPATH /usr/local/mysql/man

 

如果没有导出帮助手册,可直接指定路径查找:

man -M /usr/local/mysql/man mysql

 

 

初始化MySQL

# cd /usr/local/mysql/scripts/

# ./mysql_install_db --user=mysql --datadir=/data/mydata/

 

 

获取MariaDB配置文件:

默认提供了几个配置文件(根据服务器硬件配置选择)

/usr/local/mysql/support-files/my-medium.cnf

/usr/local/mysql/support-files/my-small.cnf

/usr/local/mysql/support-files/my-large.cnf    ###应用于512M内存

/usr/local/mysql/support-files/my-huge.cnf

/usr/local/mysql/support-files/my-innodb-heavy-4G.cnf

 

# mkdir /etc/mysql

# cp my-huge.cnf /etc/mysql/my.cnf

 

MariaDB的配置文件查找顺序:/etc/my.cnf--> /etc/mysql/my.cnf --> ~/.my.cnf

 

 

配置MariaDB数据库文件存放目录,及相关参数:

# vim /etc/mysql/my.cnf

找到 [mysqld] 修改下列几行:

datadir = /data/mydata   ###数据库文件存放路径

thread_concurrency = 8   ###表示线程并发数(cpu核心数*2)

innodb_file_per_table = on   ###用于innodb高级特性

skip_name_resolve = on    ###关闭IP地址反向解析

 

查看是否关闭:SHOWGLOBAL VARIABLES LIKE ‘%skip‘;

 

 

启动MySQL数据库

方法1:

# cd /usr/local/mysql/

# cp ./support-files/mysql.server /etc/init.d/mysqld

#

# chmod +x /etc/init.d/mysqld

# /etc/init.d/mysqld start

Starting MySQL... SUCCESS!

 

方法2:

/usr/local/mysql/bin/mysqld_safe &

停止mysql服务: mysqladmin shutdown

 

技术分享

 

 

为数据库管理员设置密码:

# mysqladmin -u root password ‘magelinux‘

 

 

MariaDB默认不允许用户远程登录,因此要对用户和主机进行授权:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TOroot@"%" IDENTIFIED BY ‘magelinux‘ WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

 

 

 

编译安装php:(php编译为httpd的模块)

----------------------------------------------------------------------------------------------------

检查安装环境:

 

rpm -qa zlib* libpng* libjpeg* bzip2* libxml* libxslt*freetype* gd-devel* curl* openssl* libcurl-dev* libiconv* libmcrypt*

 

zlib-1.2.3-29.el6.x86_64

zlib-devel-1.2.3-29.el6.x86_64

libxml2-2.7.6-20.el6.x86_64

libxml2-devel-2.7.6-20.el6.x86_64

freetype-2.3.11-15.el6_6.1.x86_64

freetype-devel-2.3.11-15.el6_6.1.x86_64

libxslt-1.1.26-2.el6_3.1.x86_64

libxslt-devel-1.1.26-2.el6_3.1.x86_64

gd-devel-2.0.35-11.el6.x86_64

curl-7.19.7-46.el6.x86_64

openssl-1.0.1e-42.el6.x86_64

openssl-devel-1.0.1e-42.el6.x86_64

libpng-1.2.49-1.el6_2.x86_64

libpng-devel-1.2.49-1.el6_2.x86_64

bzip2-1.0.5-7.el6_0.x86_64

bzip2-devel-1.0.5-7.el6_0.x86_64

libjpeg-turbo-1.2.1-3.el6_5.x86_64

libjpeg-turbo-devel-1.2.1-3.el6_5.x86_64

libcurl-devel.x86_64

libmcrypt-2.5.8-9.el6.x86_64

libmcrypt-devel-2.5.8-9.el6.x86_64

 

 

yum install zib zlib-devel libxml2 libxml2-devel freetypefreetype-devel libxslt libxslt-devel gd-devel curl openssl libpng libpng-develbzip2 bzip2-devel libjpeg-turbo libjpeg-turbo-devel libcurl-devel -y

 

 

libiconv 需要额外编译安装

http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

./configure --prefix=/usr/local/libiconv

make && make install

 

libmcrypt-devel 需要额外安装,在Fredora-EPEL源中寻找

http://mirrors.sohu.com/fedora-epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm

http://mirrors.sohu.com/fedora-epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

 

 

编译安装PHP

# tar xfphp-5.5.30.tar.bz2

# cd php-5.5.30/

 

编译参数:

# ./configure --prefix=/usr/local/php--with-config-file-path=/etc/php/php.ini--with-apxs2=/usr/local/apache/bin/apxs --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml--with-mcrypt --with-bz2 --with-config-file-scan-dir=/etc/php.d/ --with-openssl--with-curl --with-xsl --with-iconv=/usr/local/libiconv --enable-sockets --enable-short-tags--enable-static --enable-gd-native-ttf --enable-ftp --enable-maintainer-zts

 

# make && make install

 

 

为了支持apache的worker或event这两个MPM,编译时使用--enable-maintainer-zts 选项

 

如果php与mysql同在一台机,那么编译安装的时候要指定mysql的路径:

--with-mysql=/usr/local/mysql/

--with-mysqli=/usr/local/mysql/bin/mysql_config

 

如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。

# ./configure --with-mysql=mysqlnd--with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

 

如果PHP不是以编译安装方式安装的,那么可能需要安装php-mysql客户端

php-mysql.x86_64

 

 

提供php的配置文件:

# mkdir /etc/php/

# cp /tmp/php-5.5.30/php.ini-production /etc/php/php.ini

 

# vim /ect/php/php.ini

修改时区:

data.timezone = “Asia/Shanghai”

 

 

配置apache支持php

 

编辑apache主配置文件httpd.conf

 

检查配置文件内有无包含php模块的行

LoadModule php5_module       modules/libphp5.so

 

增加如下内容:

AddType application/x-httpd-php .php .phtml

AddType application/x-httpd-php-source .phps

 

添加index.php 为默认搜索主页

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

 

 

测试apache能否支持php

在网站根目录下创建一个index.php的主页文件

# vim /usr/local/apache/htdocs/index.php

 

主页内容:

 

<?php

phpinfo();

?>

 

技术分享

 

 

测试php能否连接mysql

# vim /usr/local/apache/htdocs/index.php

#

 

<?php

$link = mysql_connect(‘172.16.2.6‘,‘root‘,‘magelinux‘);

if($link){

echo "mysql connection successfully!";

}else{

echo "mysql connection Failed.";

}

mysql_close();

?>

 


 技术分享

 

 

使用phpMyAdmin数据库图形化管理界面

把phpMyAdmin解压至/data/web/

# mkdir -pv /data/web/

# unzip phpMyAdmin-4.0.5-all-languages.zip -d /data/web/

#

# cd /data/web/

# mv phpMyAdmin-4.0.5-all-languages/ pmadmin

 

 

 

配置虚拟主机用于访问phpMyAdmin管理界面

(1)、编辑httpd主配置文件,开启虚拟主机开关

# vim /etc/httpd/httpd.conf

# Virtual hosts

Include /etc/httpd/extra/httpd-vhosts.conf

 

(2)、编辑虚拟主机配置文件,添加一个FQDN的虚拟主机

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

<VirtualHost *:80>

ServerAdmin admin@magelinux.com

DocumentRoot "/data/web/pmadmin"

ServerName pmadin.magelinux.com

ServerAlias magelinux.com

ErrorLog "/usr/local/apache/logs/pmadmin-error_log"

CustomLog"/usr/local/apache/logs/pmadmin-access_log" common

</VirtualHost>

 

<Directory "/data/web/pmadmin">

AllowOverride None

Options None

Require all granted

</Directory>

 

(3)、重启服务测试访问

 

技术分享

 

技术分享

 

使用xcache扩展模块提升php网站性能

 

使用ab命令对php页面进行压力测试:

# ab -n 1000 -c 50 http://pmadmin.magelinux.com/index.php

共发起1000个请求,并发访问50个

 

Server Software:       Apache/2.4.17

Server Hostname:       pmadmin.magelinux.com

Server Port:           80

 

Document Path:         /index.php

Document Length:        8146 bytes    ###页面文件大小

 

Concurrency Level:     50

Time taken for tests:  31.035 seconds

Complete requests:     1000

Failed requests:       0

Total transferred:     9439584 bytes

HTML transferred:      8146000 bytes

Requests per second:    32.22 [#/sec] (mean)    ###服务器每秒响应个数

Time per request:      1551.746 [ms] (mean)

Time per request:      31.035 [ms] (mean, across all concurrent requests)

Transfer rate:         297.03 [Kbytes/sec] received

 

 

由于服务器接收到客户端对动态页面的请求,要交给应用程序服务处理后再把结果返回给客户端,可见,速度相当慢。

 

1、安装xcache-3.2.0

 

xcache的编译过程比较独特,因为它是php的扩展模块,所以没有自己的configure脚本文件,

因此它要生成configure脚本需要依赖当前的php环境,进到该软件解压的目录下执行phpize

phpize是php提供用来专门准备一个模块可以编译php额外扩展的功能

# tar xf xcache-3.2.0.tar.bz2

# cd xcache-3.2.0

#

# /usr/local/php/bin/phpize

Configuring for:

PHP Api Version:        20121113

Zend Module Api No:     20121212

Zend Extension Api No:  220121212

#

# ./configure --enable-xcache--with-php-config=/usr/local/php/bin/php-config

# make && make install

 

编译安装完成后它会安装一个php扩展模块,并提示一个路径:

/usr/local/php/lib/php/extensions/no-debug-zts-20121212/

 

2、编辑php.ini,整合php和xcache:

# cp xcache.ini /etc/php.d

 

编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

extension =/usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so

   

3、重启httpd服务生效

 

打开phpinfo页,可看到php已加载该模块

    

    技术分享

技术分享

 

此时,再使用ab命令对php页面进行压力测试:

# ab -n 1000 -c 50 http://pmadmin.magelinux.com/index.php

同样发起1000个请求,并发访问50个

 

Server Software:       Apache/2.4.17

Server Hostname:       pmadmin.magelinux.com

Server Port:           80

 

Document Path:         /index.php

Document Length:       8146 bytes

 

Concurrency Level:     50

Time taken for tests:  4.338 seconds

Complete requests:     1000

Failed requests:       0

Total transferred:     9439598 bytes

HTML transferred:      8146000 bytes

Requests per second:    230.54 [#/sec] (mean)

Time per request:      216.884 [ms] (mean)

Time per request:      4.338 [ms] (mean, across all concurrent requests)

Transfer rate:         2125.19 [Kbytes/sec] received

 

可见,该扩展模块对服务器响应速度已有非常显著的提升!

 

 

 

 

----------------------------------------------------------------------------------------------------

LAMP组合(场景二):PHPFPM模式工作

CentOS-6.7 + httpd-2.4.17 + mariadb-5.5.46 + php-5.5.30

----------------------------------------------------------------------------------------------------

 

技术分享

 

 

 

fastcgi:php-5.3.3 之后的版本自带了fpm组件,

fpm组件能把PHP解释器工作为守护进程,并提供类似prefork模式的应用,它能够接收来自前端httpd,http-proxy-fcgi反向代理用户对动态内容请求至后端的fastcgi server

 

把php编译为fpm工作模式时需要加一个重要的选项  --enable-fpm

而不再使用 -with-apxs2=/usr/local/apache/bin/apxs

 

 

编译安装PHP:

----------------------------------------------------------------------------------------------------

# tar xf php-5.5.30.tar.bz2

# cd php-5.5.30/

# ./configure --prefix=/usr/local/php--with-config-file-path=/etc/php/php.ini--with-config-file-scan-dir=/etc/php.d/ --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml--with-mcrypt --with-bz2 --with-openssl --with-curl --with-xsl  --with-iconv=/usr/local/libiconv--enable-sockets --enable-short-tags --enable-static --enable-gd-native-ttf--enable-ftp --enable-maintainer-zts --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --enable-fpm

 

# make && make install

 

 

把php编译为fpm工作模式时需要加一个重要的选项 --enable-fpm

而不再使用 -with-apxs2=/usr/local/apache/bin/apxs

 

 

为php提供配置文件

# mkdir /etc/php /etc/php.d

# cp php.ini-production /ect/php/php.ini

 

 

配置php-fpm

 

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

# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

# chmod +x /etc/rc.d/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on

 

检查php-fpm服务是否自启动

# chkconfig | grep php

php-fpm               0:off        1:off        2:on        3:on        4:on        5:on        6:off

 

 

为php-fpm提供配置文件:

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

 

 

编辑php-fpm的配置文件,配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):

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

 

listen = 172.16.2.5:9000

pm.max_children = 50   ###静态方式下开启的php-fpm进程数量

pm.start_servers = 5   ###动态方式下的起始php-fpm进程数量

pm.min_spare_servers = 2   ###动态方式下的最小php-fpm进程数量

pm.max_spare_servers = 8   ###动态方式下的最大php-fpm进程数量

pid = /usr/local/php/var/run/php-fpm.pid    ###PID文件路径

 

 

说明:如果dm设置为static,那么其实只有pm.max_children这个参数生效。系统会开启设置数量的php-fpm进程。

 

如果dm设置为 dynamic,那么pm.max_children参数失效,后面3个参数生效。

系统会在php-fpm运行开始的时候启动pm.start_servers个php-fpm进程,然后根据系统的

需求动态在pm.min_spare_servers 和pm.max_spare_servers之间调整php-fpm进程数。

 

当php-fpm工作为独立守护进程时,默认监听在127.0.0.1:9000 端口上,即默认至允许本机上的

httpd进程访问,当前环境是httpd和php分别在不同服务器安装,因此要修改监听端口,让其他主机

能够访问。

 

各自以fast-cgi方式工作时,前端的Web服务器必须以fcgi模块跟后端主机进行通信。

 

 

接下来就可以启动php-fpm了

# service php-fpm start

 

 

使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):

# ps aux | grep php

root       4351  0.0 0.5 112472  5588 ?        Ss  18:49   0:00 php-fpm: masterprocess (/usr/local/php/etc/php-fpm.conf)                                                                   

nobody     4352  0.0 0.4 112472  4804 ?        S   18:49   0:00 php-fpm: poolwww                                                                                                           

nobody     4353  0.0 0.4 112472  4804 ?        S   18:49   0:00 php-fpm: poolwww                                                                                                           

nobody     4354  0.0 0.4 112472  4804 ?        S   18:49   0:00 php-fpm: poolwww                                                                                                           

nobody     4355  0.0 0.4 112472  4804 ?        S   18:49   0:00 php-fpm: poolwww                                                                                                           

nobody     4356  0.0 0.4 112472  4804 ?        S   18:49   0:00 php-fpm: pool www

 

 

验正其是否已经监听在相应的套接字,此时已监听在172.16.2.5:9000 这个套接字上了

# netstat -tnlp | grep php-fpm

tcp        0      0 172.16.2.5:9000             0.0.0.0:*                   LISTEN      4351/php-fpm       

 

 

 

在httpd服务器上设置:

----------------------------------------------------------------------------------------------------

配置httpd

 

1、启用httpd的相关模块

 

在Apache httpd2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,

它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

 

开启虚拟主机开关

Include /etc/httpd/extra/httpd-vhosts.conf

 

 

2、配置虚拟主机支持使用fcgi

 

在相应的虚拟主机中添加类似如下两行:

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1

 

ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI

所以这里直接在fcgi://127.0.0.1:9000 后指明了这两个参数

其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

 

 

需要注意的问题:

动态资源需要放在PHP服务器上,当httpd服务器接收到客户端浏览器请求的是动态页面内容时,

会把请求发往指定的PHP服务器上处理,但是静态页面例如:html、jpg等还是会在httpd服务器上

处理,不然图片等信息可能就无法显示,因此在部署网站时,需要把网站的资源分别放在两边。

分别在HTTPD服务器和PHP服务器上各自创建同样路径的目录,不然启动httpd服务时会报错。

 

 

编辑虚拟主机配置文件:

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

 

<VirtualHost *:80>

ServerAdmin admin@magelinux.com

DocumentRoot "/data/web/www/"

ServerName phpinfo.magelinux.com

ServerAlias magelinux.com

ProxyRequests Off

ProxyPassMatch ^/(.*\.php)$fcgi://172.16.2.5:9000/data/web/www/$1

ErrorLog "/usr/local/apache/logs/phpinfo-error_log"

CustomLog"/usr/local/apache/logs/phpinfo-access_log" common

</VirtualHost>

 

 

<Directory "/data/web/www/">

AllowOverride None

Options None

Require all granted

</Directory>

 

 

<IfModule dir_module>

DirectoryIndex index.php index.html

</IfModule>

 

 

创建虚拟主机主页(在PHP Server上),测试httpd能否支持php

# vim /data/web/www/index.php

编辑如下内容:

 

<?php

phpinfo();

?>

 

客户端浏览器上测试:

此时,Server API 工作模式为:FPM/FastCGI

 

技术分享

 


编译安装实现LAMP组合

原文:http://yao3800.blog.51cto.com/1522113/1705701

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!