LAMP之二(PHP-FPM)

linux+httpd+php-fpm+mysql

rpm包的安装方式

环境:

系统: CentOS Linux release 7.1.1503 (Core)

yum源:epel,cdrom

主机:

httpd 172.16.40.40
php-fpm 172.16.40.41
mysql 172.16.40.42

目的:

1、三台主机实现httpd、php和mysql服务。
2、httpd提供两个虚拟主机,一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress。
3、为php安装xcache。

4、添加status页面(包含php的),并使用用户认证。

目录:

一、httpd

二、php

三、mysql

四、安装phpMyadmin和wordpress

五、添加status页面。



所有主机selinux,iptables关闭状态。

一、httpd.

[[email protected] ~]# yum install httpd -y
[[email protected] ~]# mkdir -pv /web/vhosts/{blog,phpmyadm}
[[email protected] ~]# mkdir -pv /var/log/httpd/{blog,phpmyadm}
[[email protected] ~]# cd /etc/httpd
[[email protected] httpd]# vim conf/httpd.conf 
#DocumentRoot "/var/www/html"                #关闭中心主机
DirectoryIndex index.php index.html          #修改默认文档查找次序

添加虚拟主机:

[[email protected] httpd]# vim conf.d/vhosts.conf

<VirtualHost *:80>
        ServerName www.star.com
        DocumentRoot /web/vhosts/blog
        CustomLog "/var/log/httpd/blog/access_log" combined
        ErrorLog "/var/log/httpd/blog/error_log"
        <Directory "/web/vhosts/blog">
                Options None
                Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
        ServerName myadm.star.com
        DocumentRoot /web/vhosts/phpmyadm
        CustomLog "/var/log/httpd/phpmyadm/access_log" combined
        ErrorLog "/var/log/httpd/phpmyadm/error_log"
        <Directory "/web/vhosts/phpmyadm">
                Options None
                Require all granted
        </Directory>
</VirtualHost>

来两个网页文件测试下:

[[email protected] httpd]# vim /web/vhosts/phpmyadm/index.html
<h1>myadm.star.com</h1>
[[email protected] httpd]# vim /web/vhosts/blog/index.html
<h1>www.star.com</h1>
[[email protected] httpd]# systemctl restart httpd

测试没问题。

指定.php页面的处理方式。

[[email protected] httpd]# vim conf/httpd.conf 
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

修改vhosts.conf文件

ProxyRequests Off  #关闭正向代理

<VirtualHost *:80>
        ServerName www.star.com
        DocumentRoot /web/vhosts/blog
        CustomLog "/var/log/httpd/blog/access_log" combined
        ErrorLog "/var/log/httpd/blog/error_log"
        ProxyPassMatch ^/(.*\.php)$     fcgi://172.16.40.41:9000/web/php/blog/$1  #匹配页面代理至后面。
        <Directory "/web/vhosts/blog">
                Options None
                Require all granted
        </Directory>
</VirtualHost>

<VirtualHost *:80>
        ServerName myadm.star.com
        DocumentRoot /web/vhosts/phpmyadm
        CustomLog "/var/log/httpd/phpmyadm/access_log" combined
        ErrorLog "/var/log/httpd/phpmyadm/error_log"
        ProxyPassMatch ^/(.*\.php)$     fcgi://172.16.40.41:9000/web/php/phpmyadm/$1
        <Directory "/web/vhosts/phpmyadm">
                Options None
                Require all granted
        </Directory>
</VirtualHost>
[[email protected] httpd]# systemctl reload httpd

注意上面传给php的路径不用与本地httpd的路径相同。只要在那个路径可以找到应该找到的php文件即可。

只要是php文件,都会转给php-fpm服务器。而其它静态资源都会由httpd来响应。所以这是两台相互独立的服务器(资源也是独立的)。 不过因为我们这里的应用也没必要再把资源切分开,所以就直接复制到php主机一份了。

只不过在httpd主机上只会拿这个应用中的静态资源。 在php上只会拿php资源。


二、php

[[email protected]lhost ~]# yum install php-fpm php-mysql
[[email protected] ~]# rpm -ql php-fpm
/etc/logrotate.d/php-fpm         #日志滚动配置
/etc/php-fpm.conf                #php-fpm主配置文件
/etc/php-fpm.d                      #
/etc/php-fpm.d/www.conf          #附加配置文件
/etc/sysconfig/php-fpm
/run/php-fpm
/usr/lib/systemd/system/php-fpm.service    #unit文件(启动服务文件)
/usr/lib/tmpfiles.d/php-fpm.conf
/usr/sbin/php-fpm               
.....

/etc/php.ini是由php-common包带的。

php.ini是php解释器环境的配置,一般不用管。

php-fpm配置文件才是来管理php-fpm进程的。

修改/etc/php-fpm.d/www.conf

;listen = 127.0.0.1:9000
listen = 172.16.40.41:9000        #监听端口, 必须修改

;listen.allowed_clients = 127.0.0.1
listen.allowed_clients = 172.16.40.40    #允许172.16.40.40主机fcgi连接。必须修改

user = apache                                           #进程运行用户,默认。
group = apache
pm = dynamic                                           #动态生成子进程方式
pm.max_children = 50                            #最大子进程
pm.start_servers = 5                                #服务刚启动时生成几个子进程
pm.min_spare_servers = 5                      #最少空闲子进程,进程空闲时会慢慢回收,这是最低要保留子进程数。
pm.max_spare_servers = 35                   #最大空闲子进程。上限。
;pm.max_requests = 500                          #每个子进程最多响应多少个请求。超过请求,此子进程回收。

;pm.status_path = /status                         #只要访问指定的路径,就返回状态信息。状态模块

;ping.path = /ping                                      #提供ping模块,用来远程检测php是否在线。访问指定的路径,返回ping.response指定的值。
;ping.response = pong                              #与png.path成对出现。   

php_admin_flag = on                                #php日志中与管理相关的标志是否打开。

php_value[session.save_handler] = files                                    #session存储方式
php_value[session.save_path] = /var/lib/php/session             #session存储路径

上面只有两个地址修改了,其它的都是默认值,看情况修改吧。

创建测试文件:

[[email protected] ~]# mkdir /web/php/{blog,phpmyadm} -pv
[[email protected] ~]# vim /web/php/blog/index.php

<h1>www.star.com</h1>
<?php
        phpinfo();
?>

[[email protected] ~]# vim /web/php/phpmyadm/index.php 

<h1>myadm.star.com</h1>
<?php
        phpinfo();
?>

启动php-fpm.

[[email protected] ~]# systemctl start php-fpm

访问http://myadm.star.com/index.php

另一个也正常。

xcache:

安装环境:

[[email protected] php]# yum install php-devel

xcache目录:

[[email protected] xcache-3.2.0]# phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
[[email protected] xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/bin/php-config
[[email protected] xcache-3.2.0]# make
[[email protected] xcache-3.2.0]# make install
Installing shared extensions:     /usr/lib64/php/modules/
[[email protected] xcache-3.2.0]# cp xcache.ini /etc/php.d/
[[email protected] xcache-3.2.0]# systemctl restart php-fpm

现来查看网页,我这里已现加载xcache了。也可以用php-fpm -m命令来查看php-fpm加载的所有模块。

[[email protected] xcache-3.2.0]# php-fpm -m
.....
XCache
XCache Cacher
xml
zip
zlib

[Zend Modules]
XCache
XCache Cacher

三、MySQL

安装:

[[email protected] ~]# yum install mariadb-server

授权wordpress(phpMyadmin不用授权):

MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.01 sec)

MariaDB [(none)]> GRANT ALL ON wordpress.* TO ‘wpuser‘@‘172.16.40.41‘ IDENTIFIED BY ‘abcdefg‘;
Query OK, 0 rows affected (0.00 sec)

四、安装phpMyAdmin和wordpress.

httpd:

[[email protected] ~]# cp -rf phpMyAdmin-4.4.15.2-all-languages/* /web/vhosts/phpmyadm/
[[email protected] ~]# cp wordpress/* /web/vhosts/blog/ -rf

php-fpm:

[[email protected] ~]# rm -rf /web/php/phpmyadm/*
[[email protected] ~]# rm -rf /web/php/blog/*
[[email protected] ~]# cp -rf phpMyAdmin-4.4.15.2-all-languages/* /web/php/phpmyadm/
[[email protected] ~]# cp -rf wordpress/* /web/php/blog/
[[email protected] blog]# pwd
/web/php/blog
[[email protected] blog]# cp wp-config-sample.php wp-config.php
[[email protected] blog]# vim wp-config.php

phpMyadmin:

[[email protected] blog]# cd ../phpmyadm/
[[email protected] phpmyadm]# cp config.sample.inc.php config.inc.php
[[email protected] phpmyadm]# openssl rand -base64 15     #生成随机码
EumYt+cNhpOquCvJ1mRN 
[[email protected] phpmyadm]# vim config.inc.php

填上随机码,和目标数据库。



访问:www.star.com/



访问:http://myadm.star.com/

php主机安装php-string:

[[email protected] phpmyadm]# yum install php-mbstring

重新加载php配置文件:

[[email protected] phpmyadm]# systemctl reload php-fpm

不能保存session会话。查看一下运行php-fpm的用户。

[[email protected] phpmyadm]# ps aux | grep php-fpm

查看配置文件中所指定的session保存位置,用户是否有写入权限。

php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session

查看一下所指向的文件:

[[email protected] ~]# ll /var/lib/php
total 0

没有session目录,创建目录,并给于运行php-fpm用户写入权限。

[[email protected] ~]# mkdir /var/lib/php/session
[[email protected] ~]# chown -R apache /var/lib/php/session/



对了,我们这里还没有创建用于远程登录的root用户。先试一下用wpuser用户吧。



创建用户要创建基于php主机IP登录的。因为是php程序发起的连接,而不是我们。

五、添加status页面。

1、确认模块是否加载。

[[email protected] httpd]# pwd
/etc/httpd
[[email protected] httpd]# vim conf.modules.d/00-base.conf
LoadModule status_module modules/mod_status.so

status模块,会显示httpd整体的状态,无论是把指令写在虚拟主机里面还是外面,只要触发就会显示整体服务的状态。

所以可以建立个新的配置文件,也可以写到虚拟主机的里面,只是写虚拟主机里面的话只有访问对应的主机名才能返回状态页。

[[email protected] httpd]# vim conf.d/status.conf

<Location ~ "/status">
        SetHandler server-status
        Require all granted
</Location>
[[email protected] httpd]# systemctl reload httpd

我这里用IP地址访问的,用主机名也是一样,它现在是公共配置。

但是现在的配置所有人都可以查看,而且用IP控制也不保险。那么就可以用用户名控制了。

首先创建用户和密码文件。

htpasswd  [options]   /PATH/TO/HTTPD_PASSWD_FILE  username
-c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;
-m:md5格式加密
-s: sha格式加密
-D:删除指定用户

我这里就在/etc/httpd/conf下面创建了。

[[email protected] conf]# htpasswd -c -m .htpasswd star
New password: 
Re-type new password: 
Adding password for user star
[[email protected] conf]# htpasswd -m .htpasswd tom
New password: 
Re-type new password: 
Adding password for user tom

只有第一次创建文件要用到-c。

[[email protected] conf]# cat .htpasswd 
star:$apr1$vq6uL8/A$c7agaUbQOoBd9Lkj8xrCW.
tom:$apr1$Iawy2r6d$wonFrBM4yIEgBPUwY0ktU/
jerry:$apr1$vdpkCLQV$HSJShQU0yvjna75T8hXqK/
[[email protected] conf]#

如果用户有很多还可以有组文件。手动创建就可以。文件中一行一组。

格式:

group: user1 user2

group2: user1 user 2

[[email protected] conf]# vim .htgroup
mygrp: star tom
grp: jerry zhangsan

修改配置文件:conf.d/status.conf

<Location ~ "/status">
        SetHandler server-status
        AuthType Basic
        AuthName "Enter your Access"
        AuthUserFile "conf/.htpasswd"
        AuthGroupFile "conf/.htgroup"
        Require Group mygrp
</Location>

重载服务。 再来看看。这次访问www.star.com

jerry用户在grp组里,不能登录。 只有star和tom可以登录。

如果想再加上IP控制的话,就要用上访问控制的容器了。

只要指令有两条,都要放到容器里(包括两个IP的或一IP一用户的)

这样就只有IP是允许的情况下才可以到用户名的部分,
如果ip是拒绝的,根本就不会到用户名的部分。

这里不管是用户还是IP都是认证。是统一的。所以就算是在上级目录里是IP是拒绝的。
在当前的级别只要用户名可以通过也是可以访问的。
只有真和假的两种情况,不管是哪种认证。
而RequireAll这种容器就是为了把里面的多种或多个认证综合成一个真或假。

注意:一定要加容器,这样它们都会判断,而不会发生IP通过,就不判断用户的情况了。

还是刚才的配置文件。

<Location ~ "/status">                        #不加~只能是根目录/status。加上~会来匹配,路径不是根目录也没关系。
        SetHandler server-status
        <RequireAll>
                AuthType Basic                                            #验证类型,也可以用digest,不过浏览器并不通用。
                AuthName "Enter your Access"                #提示给客户端的信息。
                AuthUserFile "conf/.htpasswd"                 #存储用户名的文件
                AuthGroupFile "conf/.htgroup"                 #存储组的文件
                Require group mygrp                                  #允许的组
                Require ip 172.16.40.2                                #ip控制,只允许172.16.40.2
        </RequireAll>
</Location>

如果不用组的话,可以不写AuthGroupFile,把Requre group 改为Require user即可。Require  valid-user表示文件中的所有用户。

我这开网页的主机IP是172.16.40.1。现在打不开了。

改回只让我这台主机访问:

Require ip 172.16.40.1

现在又出来让输入用户码的窗口了。但是这样我们的密码只是简单的md5加密传输的。

或是用抓包工具都可以抓到。其实这里想告诉大家,在一些没有https的网站的表单中填入的密码其实都是明文传输的,连md5加密都没有。要注意密码安全。如我们上面登录phpMyadmin的时候

我这里用tcpdump抓一下包看看。

[email protected]:~/desktop$ sudo tcpdump -X -nn dst host 172.16.40.40 and port 80 -w /tmp/myadm

用vim打开/tmp/myadm搜索user打一下。

还记得上面我们所输入的数据库的数据吗。如果是root用户,你懂的。所以用https是必须的。

上一篇已经写了,而且基本也都一样。而不在同一台主机的CA也只是远程复制一下文件而已。

php的status

我们现在的httpd只有.php的页面会向后转发,其它页面是不会转发的,所以要把php上面的pm.status_path = /status  改一下。如果改成.php就直接可用了。而且因为我们上面httpd状态页是用~匹配status的,所以也会区配到那个Location里面,也要通过认证。

而sethandler那里,我觉得可能过程是:

1、sethandler指令,开始准备数据,生成html文件。

2、数据接着执行,到达虚拟主机那里,因为是.php的文件,所以转发到php主机上面。

3、php主机生成数据,html文件。 传给httpd。

4、httpd上面原来由sethandler生成的数据就被新的数据所覆盖了。

注意:没有写在虚拟主机里面的是公共部分,在数据到达虚拟主机之前都是会过一遍的。
遇到指令就操作一次。 就好像在有各种机关的房间里面经过一样,最终还要再进入不同的门。

这里再贴一下CA的过程。

私有CA:

ca的配置文件:/etc/pki/tls/openssl.cnf  在lamp1中已经介绍了,这里就不多说了。

当前目录:/etc/pki/CA

[[email protected] CA]# (umask 077;openssl genrsa -out private/cakey.pem 4096)    #生成CA的私钥:
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem    #生成自签证书,也做根证书,证书链
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BEIJING
Locality Name (eg, city) [Default City]:BEIJING
Organization Name (eg, company) [Default Company Ltd]:LinuxOPS
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server‘s hostname) []:ca.star.com
Email Address []:
[[email protected] CA]# 
[[email protected] CA]# touch serial
[[email protected] CA]# echo 00 > serial 
[[email protected] CA]# touch index.txt

HTTPD:

[[email protected] httpd]# pwd
/etc/httpd
[[email protected] httpd]# mkdir ssl
[[email protected] httpd]# (umask 077;openssl genrsa -out ssl/myadm.key 2048)      #生成私钥
Generating RSA private key, 2048 bit long modulus
..........................................................................................+++
............................+++
e is 65537 (0x10001)
[[email protected] httpd]# openssl req -new -key ssl/myadm.key -out /tmp/myadm.csr     #生成证书申请
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BEIJING
Locality Name (eg, city) [Default City]:BEIJING
Organization Name (eg, company) [Default Company Ltd]:LinuxOPS
Organizational Unit Name (eg, section) []:Ops
Common Name (eg, your name or your server‘s hostname) []:myadm.star.com
Email Address []:

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

把证书申请发给CA。

[[email protected] httpd]# scp /tmp/myadm.csr 172.16.40.20:/tmp/
[email protected]‘s password: 
myadm.csr                                                  100% 1009     1.0KB/s   00:00    
[[email protected] httpd]#

如果没有scp命令,要安装openssh-clients包。两边都要有这个命令。

CA:

ca签署:

[[email protected] CA]# openssl ca -in /tmp/myadm.csr -out certs/myadm.crt
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 0 (0x0)
        Validity
            Not Before: Jan 26 09:38:33 2016 GMT
            Not After : Jan 25 09:38:33 2017 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = BEIJING
            organizationName          = LinuxOPS
            organizationalUnitName    = Ops
            commonName                = myadm.star.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                9D:FD:70:BD:97:BB:BB:E4:61:55:7B:6C:BA:B2:FD:B6:93:DC:8E:EC
            X509v3 Authority Key Identifier: 
                keyid:AA:DA:31:1A:3F:5B:F3:D5:D2:0C:93:4E:37:78:9B:38:E6:C8:FB:26

Certificate is to be certified until Jan 25 09:38:33 2017 GMT (365 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
[[email protected] CA]#

把证书传回给HTTPD:

[[email protected] CA]# scp certs/myadm.crt  172.16.40.40:/etc/httpd/ssl/
The authenticity of host ‘172.16.40.40 (172.16.40.40)‘ can‘t be established.
RSA key fingerprint is ec:8e:a7:90:97:03:2c:e4:78:d8:04:98:7d:9a:59:1c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘172.16.40.40‘ (RSA) to the list of known hosts.
[email protected]‘s password: 
myadm.crt                                                  100% 5714     5.6KB/s   00:00    
[[email protected] CA]#


本文出自 “大蕃茄” 博客,请务必保留此出处http://fanqie.blog.51cto.com/9382669/1738710

时间: 2024-10-15 14:12:29

LAMP之二(PHP-FPM)的相关文章

编译安装LAMP之二

在上一篇中,我们已经安装httpd,以及mysql服务.那么接下来,我们将安装php. 我们知道,php工作的模式有三种:cgi, module, fastcgi.通常,apache与php是以模块的方式结合的,鉴于fastcgi的工作模式会有更好的效率,待会儿也会讲解. 一.以模块化的方式编译php, php作为apache的模块被加载 如果我们先前没有安装: libxml2 libxml2-devel bzip2-devel libmcrypt libmcrypt-devel 需要安装这些包

LAMP搭建流程方法二(fpm)

httpd 2.4.9 + mysql-5.5.33 + php-5.4.26编译安装过程: 1.安装httpd 配置好yum源vim /etc/yum.repo/centos.repo,这里的baseurl是根据实际配置的yum仓库设定的 [DVD1] name=centos-DVD1 baseurl=http://172.16.0.1/cobbler/ks_mirror/CentOS-6.6-x86_64/ enabled=1 gpgcheck=0 [DVD2] name=centos-DV

LAMP组合 PHP以FPM模式工作

fastcgi:php-5.3.3 之后的版本自带了fpm组件, fpm组件能把PHP解释器工作为守护进程,并提供类似prefork模式的应用,它能够接收来自前端httpd,http-proxy-fcgi反向代理用户对动态内容请求至后端的fastcgi server 构建分离式LAMP需要注意的地方: 1.动态资源部署在应用程序服务器上(php-fpm),静态资源部署在Web服务器上 2.php以fpm工作方式时,它不会被编译成httpd模块,因此,编译时无须使用--with-apxs2=/PA

编译lamp及xcache,ab,fpm,phpmyadmin,discuz的应用

httpd-2.4.10 + mariadb-5.5.36 + php-5.4.40 编译安装 编译环境 #yum groupinstall "server platform Development" "Development Tools" 一.安装httpd 1.解决依赖关系 httpd-2.4.10需要较新版本的apr和apr-util,因此需要事先对其进行升级.升级方式有两种,一种是通过源代码编译安装,一种是直接升级rpm包.这里选择使用编译源代码的方式进行,

centos7部署LAMP+xcache (php fpm模式)

centos7通过RPM包部署分离式LAMP+xcache (php-fpm) 要求: rpm包部署LAMP,并且需要将LAMP环境进行分离式的部署 (1)一个虚拟主机提供wordpress 一个虚拟主机提供phpMyadmin (2)利用xcache来加速页面速度 环境: 此处用三台主机分别分离提供不同服务: 192.168.1.104------->提供httpd服务 192.168.1.110------->提供mariadb-server服务 192.168.1.113-------&

LAMP部署-- 二.编译安装Mysql

LAMP组件介绍 LAMP是指Linux.Apache,Mysql以及PHP的简称,目前许多生产环境的都是用的LAMP架构,在网络应用和开发环境方面,LAMP组合是非常棒的,它们的结合提供了强大的功能. Linux作为底层的操作系统,提供了灵活且安全的应用平台,为其他的组件稳定运行提供了保障: Apache作为web服务器,提供了功能强大.稳定与支撑能力突出的web平台: Mysql也是一款优秀的数据库软件: PHP是一种开发脚本语言,可以嵌入HTML中,适用于web开发: 准备工作 操作系统:

LAMP 之二 Apache 安编译安装

Apache 安装先去官网上下载安装包/usr/local/src/,版本不要太新,也不要太旧. http://mirrors.cnnic.cn/apache/httpd/ 下载之后解压 [[email protected] src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.bz2 [[email protected] src]# tar jxvf httpd-2.2.31.tar.bz2 进入到解压目录 [[ema

一步一步源码编译最新版LAMP平台(二)

安装完apache之后,下面来安装mysql 解压 mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz 到/usr/local/ tar xf mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz -C /usr/local 链接 mysql-5.6.25-linux-glibc2.5-x86_64 到 mysql ln -sv mysql-5.6.25-linux-glibc2.5-x86_64 mysql cd mysql 添加 

LAMP编译实现

一.简述LAMP:二.HTTP2.4编译安装三.源码安装MySQL5.6四.源码安装php-5.6五.配置http访问PHP六.配置php访问mysql 实验环境为:    php-fpm和msyql编译为同一台主机(CentOS6.9)    httpd单独一台主机(CentOS6.9)一.简述LAMP:client http(请求index.php或者index.html)    --->apache(httpd web服务器响应,如果是静态文件,则直接响应,如果是动态请求则转向下一步)