什么是LAMP:

目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境

构成组件:

Linux、Apache、MySQL、PHP/Perl/Python

LAMP的优势:

成本低廉、可定制、易于开发、方便易用、安全和稳定


实验环境:

服务端: CentOS 7.2x86_64          IP:172.16.251.138

客户端:CentOS 6.7x86_64           IP:172.16.251.164


准备工作:

[root@station138 ~]# iptables –F                     //关闭防火墙

[root@station138 ~]#setenforce 0                   //关闭SeLinux


安装所需软件:

[root@station138 ~]#yum -y install httpd mariadb-server php php-mysql


检查是否成功安装:

[root@station138 ~]#rpm -qa httpd php php-mysql mysql-server


启动服务:

[root@station138 ~]#systemctl start httpd.service mariadb.service


创建虚拟主机:

[root@station138 conf.d]# vim/etc/httpd/conf.d/v1.conf

<VirtualHost 172.16.251.138:80>

         ServerNamewww1.b.com

         DocumentRoot/var/www/virt1

         <Directory"/var/www/viet1">       

         OptionsNone 

         AllowOverrideNone

         Requireall granted

         </Directory>

</VirtualHost>

[root@station138 conf.d]# vim/etc/httpd/conf.d/v2.conf

<VirtualHost 172.16.251.138:80>

         ServerNamewww2.b.com

         DocumentRoot/var/www/virt2

         <Directory"/var/www/viet2">       

         OptionsNone 

         AllowOverrideNone

         Requireall granted

         </Directory>

</VirtualHost>


部署应用:

1.部署wordpress:

[root@station138 conf.d]# mkdir -pv/var/www/virt{1,2}

[root@station138 ]# unzipwordpress-4.3.1-zh_CN.zip

[root@station138 wordpress]# vim/var/www/virt1/wordpress/wp-config.php

/** WordPress数据库的名称 */

define('DB_NAME', 'wpdb');

/** MySQL数据库用户名 */

define('DB_USER', 'wp');

/** MySQL数据库密码 */

define('DB_PASSWORD', 'wp123');

/** MySQL主机 */

define('DB_HOST', '172.16.251.138');

/** 创建数据表时默认的文字编码 */

define('DB_CHARSET', 'utf8');


2.创建数据库授权用户:

[root@station138 ~]# vim /etc/my.cnf

innodb_file_per_table = ON

skip_name_resolve = ON

[root@station138 ~]# mysql_secure_installation

[root@station138 ~]# mysql -uroot -p

MariaDB [(none)]> GRANT ALL ON wpdb.* TO 'wp'@'172.16.%.%' IDENTIFIED BY 'wp123';

MariaDB [(none)]> FLUSH PRIVILEGES;

MariaDB [(none)]> CREATE DATABASE wpdb;


3.部署phpMyAdmin:

[root@station138 ]#unzip phpMyAdmin-4.4.14.1-all-languages.zip

[root@station138 virt2]# ln -sv phpMyAdmin-4.4.14.1-all-languages/ phpMyAdmin

[root@station138 phpMyAdmin]#cp config.sample.inc.php config.inc.php

[root@station138 phpMyAdmin]# openssl rand -base64 10

DOIVpcsRTTUqsg==                     //生成随机数

[root@station138 phpMyAdmin]# vim config.inc.php

$cfg['blowfish_secret'] = 'DOIVpcsRTTUqsg'

[root@station138 ]# yum install php-mbstring           //扩展模块

[root@station138 ]# httpd -t


4.为phpMyAdmim提供https服务:

建立私有CA:

a.生成私钥:

[root@station138 CA]#(umask 077; openssl genrsa -out private/cakey.pem 2048)

b.生成自签证书:

[root@station138 CA]#openssl req -new -x509 -key private/cakey.pem -out cacert.pem

c.提供辅助文件

[root@station138 CA]#touch index.txt

[root@station138 CA]#echo 01 > serial

d.生成私钥:

[root@station138 CA]#mkdir -pv /etc/httpd/ssl

[root@station138 CA]# (umask 077; openssl genrsa -out httpd.key 1024)

e.生成证书请求

[root@station138 ssl]# openssl req -new -key httpd.key -out httpd.csr

f.CA签发证书

[root@station138 ssl]# cp httpd.csr /tmp/

[root@station138 ssl]# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt

[root@station138 ssl]# cp /etc/pki/CA/certs/httpd.crt /etc/httpd/ssl/

g.安装mod_ssl模块,及使用的证书

[root@station138 ~]# httpd -M | grep ssl

[root@station138 ~]# yum -y install mod_ssl

[root@station138 ~]# rpm -ql mod_ssl

[root@station138 ~]#vim/etc/httpd/conf.d/ssl.conf

<VirtualHost _default_:443>    
    DocumentRoot "/var/www/virt2"
    ServerName www2.b.com:443
    SSLCertificateFile /etc/httpd/ssl/httpd.crt
    SSLCertificateKeyFile /etc/httpd/ssl/httpd.key
    <Directory "/var/www/virt2">
        SSLOptions +StdEnvVars
       
AllowOverride None
        Require all granted
    </Directory>
</VirtualHost>

[root@station138 ~]# systemctl restart httpd

[root@station138 ~]# ss -tnl

LISTEN    0      128                          :::443


为php安装xcache加速器:

[root@station138 ~]# yum install php-xcache


客户端测试:

[root@localhost ~]# cat /etc/hosts

172.16.251.138        www1.b.com   www2.b.com

1.测试php:

[root@station138 virt1]# cat index.php

<?php
    phpinfo();
?>

LAMP平台部署及应用一_企业网站


2.测试php是否连接mariadb:

<?php
                        $conn = mysql_connect('172.16.251.138','testuser','testpass');
                        if($conn)
                            echo "OK";
                        else
                            echo "Failure";

?>  

LAMP平台部署及应用一_客户端_02


3.测试wordpress:

LAMP平台部署及应用一_企业网站_03

LAMP平台部署及应用一_服务端_04


4.测试phpMyAdmin:

LAMP平台部署及应用一_企业网站_05

5.测试https:

https://www2.b.com/phpMyAdmin


6.压力测试:

 [root@station138 ~]# ab -c 100 -n 1000 www1.b.com/wordpress/index.php

Concurrency Level:      10
Time taken for tests:   69.750 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Non-2xx responses:      1000
Total transferred:      339000 bytes
HTML transferred:       0 bytes
Requests per second:    14.34 [#/sec] (mean)
Time per request:       697.503 [ms] (mean)
Time per request:       69.750 [ms] (mean, across all concurrent requests)
Transfer rate:          4.75 [Kbytes/sec] received