LAMP安装日常中十分常见。在CentOS 6中默认的php5.3.0以下的版本不支持fpm fastCGI机制;需要自行打补丁或编译安装;默认安装的httpd 2.2没有对fasCGI的支持模块,所以在CentOS 6 中只能编译安装httpd2.4和php5.3.3+;在CentOS 7中默认安装的httpd 2.4新特性中加入了fastCGI的支持模块,php可以独立安装安装php-fpm包即可。今天就弄下三种模式下的LAMP搭建:

(1)CentOS 7, lamp (module);

       要求: (1) 三者分离于两台主机;httpd(php(module)) +mariadb-server

            (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

            (3) xcache 

            (4) 为phpMyAdmin提供https虚拟主机;


(2)CentOS 7, lamp (php-fpm);

要求:(1) 三者分离于三台主机;phpfpm httpd  mariadb

           (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

           (3) xcache

(3)CentOS 6, lamp (编译安装,模块或php-fpm);

       要求:(1) 三者分离于两台或三台主机;

           (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

           (3) xcache

           (4) 尝试mpm为非prefork机制;

    说明:由于总是需要域名解析,所以将172.18.20.12作为DNS解析服务器;

lamp整合一

一、实验内容

    实验要求: (1)三者分离于两台主机;httpd(php(module)) +mariadb-server

      (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress;

           (3) xcache 

           (4) 为phpMyAdmin提供https虚拟主机;

    试验环境:172.18.20.10:httpd主机(包含php 模块支持php) ;

                          172.18.20.11:mariadb-server

    说明:1.这里由于实在CentOS 7 上完成,httpd模块支持php,没什么费事的,直接安装软件,另一台安装mariadb-server就可以了。

            2.环境中需要私建CA,CA环境搭建于172.18.20.12 主机上。

 二、httpd主机设置

         httpd主机上:yum -y install httpd  

            mkdir  /webs/{admin,wordpress}

            echo  "index page @www.admin10.net" >/webs/admin/index.html

            echo  "index page @www.wordpress10.com" >/webs/wordpress/index.html

            vim /etc/httpd/conf.d/vhost.conf

    <VirtualHost *:80>

        ServerName 

        DocumentRoot "/webs/admin"                

            <Directory "/webs/admin">   

                Options None       

                AllowOverride None     

                Require all granted  

             </Directory>        

    </VirtualHost>

    <VirtualHost *:80> 

        ServerName 

        DocumentRoot "/webs/wordpress"

        <Directory "/webs/wordpress">                        

            Options None                        

                AllowOverride None                        

                Require all granted                

         </Directory>

    </VirtualHost>

    systemctl start httpd

    分别访问http://www.admin10.net和http://www.wordpress10.com 服务器可以了。

三、安装php环境

     yum -y install php php-mbstring php-mysql   

     # rpm -ql php

        /etc/httpd/conf.d/php.conf

        /etc/httpd/conf.modules.d/10-php.conf

        /usr/lib64/httpd/modules/libphp5.so

        /usr/share/httpd/icons/php.gif

        /var/lib/php/session

    可以看到安装php已经把模块放到了httpd的目录中,这个模块是支持prefork并发处理模式的:

做两个域名路径中的index.php试试!

    cat "www.admin10.net  

    <?php            

        phpinfo();        

    ?>" > /webs/admin/index.php

    cat "www.wrodpress10.net  

    <?php        

        phpinfo();        

    ?>" > /webs/wordpress/index.php

    OK了!

    下载phpmyadmin、wordpress安装包;

四、安装phpmyadmin和wordpress

    1.在数据库172.18.29.11上安装对应数据库:

        yum -y install mariadb-server    

            systemctl start mariadb

            mysql -uroot

    2.建立对应数据库和管理员:

        create database pmdb;

        grant all on pmdb.* to 'pmad'@'172.18.%.%' identified by '123456';

        create database wpdb;

        grant all on wpad.* to 'pmad'@'172.18.%.%' identified by '123456';

        flush privileges;

    3.解压phpmyadmin到/webs/admin/pms并修改配置文件。

    vim pms/libraries/config.default.php ,将其中的四个内容替换掉 

    查找$cfg['PmaAbsoluteUri'],将其值设置为http://172.18.20.10/pms      

    查找$cfg['Servers'][$i]['host'],将其值设置为172.18.20.11         

    查找$cfg['Servers'][$i]['user'],将其值设置为pmad      

    查找$cfg['Servers'][$i]['password'],将其值设置为123456

    访问成功!  

    解压wordpress到/webs/admin/wp

    拷贝wp-config-sample.php为wp-config.php,修改其中的数据库配置项。

    访问成功!

    到这里phpmyadmin和wordpress已经搞定了。  

五、编译安装xcache:  

    xcache是php一款加速器,利用进程共享内存空间,并设置缓存空间,默认大小为60M大小。

    提前看看,当前的访问情况,ab测试下:

  看来动态资源和静态资源大约慢了6倍左右。

        下载对应的源码包,yum -y install php-devel

                tar xf xcache-3.2.0.tar.bz2  -C /root

                cd /root/xcache

                ./phpize

                ./configure --enable-xcache --with-php-config=/etc/httpd/conf.d/php.conf

    安装成功!

六、为phpmyadmin提供https虚拟主机

    建立CA主机:


    客户端生成密钥和证书请求:

    # cd /etc/pki/CA/

    # (umask 077;openssl genrsa -out private/cakey.pem 2048 )

    Generating RSA private key, 2048 bit long modulus

    ...................................................................................    ..........+++

    ...........................+++

    e is 65537 (0x10001)

    # openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

    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]:admin10.net

    Organizational Unit Name (eg, section) []:ops

    Common Name (eg, your name or your server's hostname) []:ca.admin10.net

    Email Address []:

    将 admin10.csr发送到CA服务器端签署证书:

        scp admin10.csr 172.18.20.12:/opt

    CA服务器端签署证书:

        # openssl ca -in /opt/admin10.csr -out certs/admin10.cert -days 365

敲两个Y,签署好了,签好的证书发给httpd服务器端:

        # scpo certs/admin10.cert 172.18.20.10:/etc/httpd/ssl

    httpd服务器端修改/etc/httpd/conf.d/ssl.conf 文件主要下面的定义:

    <VirtualHost www.admin10.net:443>

    # General setup for the virtual host, inherited from global configuration

    DocumentRoot "/webs/admin"

    ServerName www.admin10.net

    <Directory "/webs/admin">

            Options None

            AllowOverride None

            Require all granted

    </Directory>

    SSLCertificateFile /etc/httpd/ssl/admin10.cert

    SSLCertificateKeyFile /etc/httpd/ssl/admin10.private

  这样 https://www.admin10.net/pms/就可以用https协议访问了。

 如果其中有问题,请不吝赐教!

 51cto博客写代码嵌入代码语言十分麻烦,可以参考该文自己搭建个LAMP,脱离此地。

 下一篇《lamp整合三连发(2)》演示下一个LAMP环境搭建。