共计 22188 个字符,预计需要花费 56 分钟才能阅读完成。
实验需求
- 搭建 LAMP 平台,要求 apache、php、MariaDB 分别在不同服务器实现动静分离,不需要考虑动态服务器和静态服务器数据同步问题;
- 在 LAMP 平台之上,搭建博客和论坛,博客和论坛分别位于不同主机;
- 公网用户除了可以访问 httpd 之外不能访问内网任何一台服务器;
- 部署完成使用 ab 命令进行压力测试,并且部署 Xcache 为 php 提供加速功能。
环境拓扑如下所示:
部署思路
网络环境:
Apache 服务器使用双网卡,一块网卡监听外网用户请求,一块网卡和内网服务区进行通信,apache 的内网网卡和其他服务器使用交换机进行连接。
Apache 和 php 交互:
Apache 和 php 交互有三种方式,cgi,模块方式,fcgi;但是 cgi 和 fcgi 跨主机访问 php 服务器,所以 apache 和 php 服务器只能使用 fcgi 方式进行交互。
php 和 MariaDB 交互:
安装 bbs 和 blog 时,会要求提供 MariaDB 数据库和用户密码等信息,所以只需要在 MariaDB 数据创建好相关的数据库和用户,然后在保证 php 服务器可以访问即可。
bbs 和 blog 安装问题:
-
安装的程序包需要在 apache 和 php 服务器都存在一份,apache 提供静态页面访问,php 提供动态页面访问;不考虑同步问题
-
如果出现要求对程序有写入权限,静态服务器设置 apache 的服务用户 daemon 对文件可写,动态服务器设置 php-fpm 的服务用户 nobody 对文件可写。
实验环境
系统版本 |
主机名 |
ip 地址 |
|
Apache |
CentOS 6.6 64 位 |
web-01 |
外网:eth0: 1.1.1.1 内网:eth1:172.16.4.100 |
论坛 |
Centos 6.6 64 位 |
bbs-01 |
内网: eth0:172.16.4.101 |
博客 |
Centos 6.6 64 位 |
blog-01 |
内网: eth0:172.16.4.102 |
数据库 |
Centos 6.6 64 位 |
MariaDB-01 |
内网:eth0:172.16.4.136 |
使用软件
apr-1.5.0.tar.bz2 | |
apr-util-1.5.3.tar.bz2 | |
httpd-2.4.10.tar.bz2 | |
mariadb-5.5.43-linux-x86_64.tar.gz | |
php-5.4.40.tar.bz2 | |
wordpress-3.3.1-zh_CN.zip | |
xcache-3.2.0.tar.bz2 | |
Discuz_7.2_FULL_SC_UTF8.zip |
———————————— 分割线 ————————————
CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm
Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境 http://www.linuxidc.com/Linux/2014-10/107924.htm
Windows 7 下硬盘安装 Ubuntu 14.10 图文教程 http://www.linuxidc.com/Linux/2014-10/108430.htm
U 盘安装 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108402.htm
Ubuntu 14.10 正式发布下载 http://www.linuxidc.com/Linux/2014-10/108363.htm
Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108381.htm
Ubuntu 14.10 下安装 LAMP 服务图文详解 http://www.linuxidc.com/Linux/2014-12/110082.htm
———————————— 分割线 ————————————
Apache 配置
解决依赖关系
yum -y groupinstall "Development tools""Desktop Platform Development" | |
yum -y install pcre-devel openssl-devel | |
tar xf apr-1.5.0.tar.bz2 | |
cd apr-1.5.0 | |
./configure --prefix=/usr/local/apr | |
make && make install | |
cd .. | |
tar xf apr-util-1.5.3.tar.bz2 | |
cd apr-util-1.5.3 | |
./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr | |
make && make install | |
cd .. |
编译安装 httpd
tar xf httpd-2.4.10.tar.bz2 | |
cd httpd-2.4.10 | |
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event | |
make && make install |
修改 PATH 变量,让系统可以直接找到 http 的命令路径
[root@web-01 httpd-2.4.10]# vim/etc/profile.d/httpd.sh | |
export PATH=/usr/local/acaphe/bin:$PATH | |
[root@web-01 httpd-2.4.10]# ./etc/profile.d/httpd.sh | |
[root@web-01 httpd-2.4.10]# which httpd | |
/usr/local/apache/bin/httpd |
设置启动脚本
[root@web-01 httpd-2.4.10]# cp/usr/local/apache/bin/apachectl /etc/init.d/httpd24 | |
[root@web-01 httpd-2.4.10]# vim /etc/init.d/httpd24 | |
#!/bin/sh | |
# chkconfig: 35 85 15 #设置服务识别参数,3、5 级别启动,启动顺序 85,关闭顺序 15 | |
# description: Apache #服务描述信息 | |
[root@web-01 ~]# chkconfig --add httpd24 | |
[root@web-01 ~]# chkconfig --level 35 httpd24 on | |
[root@web-01 ~]# chkconfig --list httpd24 | |
httpd24 0:off 1:off 2:off 3:on 4:off 5:on 6:off |
修改 httpd 配置文件设置监听的端口
[root@web01 ~]# vim /etc/httpd24/httpd.conf | |
Listen 1.1.1.1:80 | |
Listen 172.16.4.100:80 |
启动服务并访问验证
[root@web01 ~]# service httpd24 start | |
[root@web01 ~]# netstat -lnt | grep 80 | |
tcp 0 0 172.16.4.100:80 0.0.0.0:* LISTEN | |
tcp 0 0 1.1.1.1:80 0.0.0.0:* LISTE |
虚拟主机配置
编辑主配置文件,注释中心主机,启用虚拟主机选项
[root@web01 ~]# vim /etc/httpd24/httpd.conf | |
#DocumentRoot "/usr/local/apache/htdocs" | |
Include /etc/httpd24/extra/httpd-vhosts.conf |
设置虚拟主机
[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf | |
<VirtualHost *:80> | |
ServerName bbs.discuz.com | |
DocumentRoot "/www/bbs" | |
<Directory "/www/bbs"> | |
Options none | |
AllowOverride none | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/bbs-error-log" | |
CustomLog"/var/log/httpd/bbs-access-log" common | |
</VirtualHost> | |
<VirtualHost *:80> | |
ServerName blog.wordpress.com | |
DocumentRoot "/www/blog" | |
<Directory "/www/blog"> | |
Options none | |
AllowOverride none | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/blog-error-log" | |
CustomLog"/var/log/httpd/blog-access-log" common | |
</VirtualHost> |
设置虚拟主机目录
[root@web01 ~]# mkdir -p /www/{bbs,blog} | |
[root@web01 ~]# echo bbs > /www/bbs/index.html | |
[root@web01 ~]# echo blog > /www/blog/index.html |
访问测试虚拟主机
MariaDB 配置
配置 /dev/sda3 为 lvm 分区
[root@MariaDB-01 ~]# fdisk -l /dev/sda | |
Disk /dev/sda: 128.8 GB, 128849018880 bytes | |
255 heads, 63 sectors/track, 15665 cylinders | |
Units = cylinders of 16065 * 512 = 8225280 bytes | |
Sector size (logical/physical): 512 bytes / 512bytes | |
I/O size (minimum/optimal): 512 bytes / 512 bytes | |
Disk identifier: 0x000471dd | |
DeviceBoot Start End Blocks Id System | |
/dev/sda1 * 1 26 204800 83 Linux | |
Partition 1 does not end on cylinder boundary. | |
/dev/sda2 26 7859 62914560 8e Linux LVM | |
/dev/sda3 7859 11775 31462303+ 8e Linux LVM |
创建逻辑卷
[root@MariaDB-01 ~]# lvcreate /dev/sda3 | |
[root@MariaDB-01 ~]# vgcreate myvg /dev/sda3 | |
[root@MariaDB-01 ~]# lvcreate -L 15G -n mydata myvg | |
[root@MariaDB-01 ~]# lvs | |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |
mydata myvg-wi-a----- 15.00g | |
root vg0 -wi-ao---- 20.00g | |
swap vg0 -wi-ao---- 2.00g | |
usr vg0 -wi-ao---- 10.00g | |
var vg0 -wi-ao---- 20.00g |
格式化并挂载
[root@MariaDB-01 ~]# mkfs.ext4 /dev/myvg/mydata | |
[root@MariaDB-01 ~]# vim /etc/fstab | |
/dev/myvg/mydata /mydata ext4 defaults 0 0 | |
[root@MariaDB-01 ~]# mkdir /mydata | |
[root@MariaDB-01 ~]# mount -a |
创建 MariaDB 服务用户,并且设置数据目录的属主属组为服务用户
[root@MariaDB-01 ~]# groupadd -r mysql | |
[root@MariaDB-01 ~]# useradd -g mysql -r -s/sbin/nologin -M mysql | |
[root@MariaDB-01 ~]# mkdir /mydata/data | |
[root@MariaDB-01 ~]# chown -R mysql:mysql/mydata/data/ |
安装 MariaDB 并初始化
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ | |
cd /usr/local/ | |
ln -sv mariadb-5.5.43-linux-x86_64/ mysql | |
cd mysql/ | |
chown -R mysql:mysql . | |
scripts/mysql_install_db --user=mysql--datadir=/mydata/data/ |
为 MariaDB 提供主配置文件
[root@MariaDB-01 mysql]# cpsupport-files/my-large.cnf /etc/my.cnf | |
[root@MariaDB-01 mysql]# vim /etc/my.cnf | |
thread_concurrency = 2 # 设置 CPU 核心数量乘以 2 | |
datadir = /mydata/data # 设置数据文件目录 | |
innodb_file_per_table = 1 # 使用 inoodb 引擎,每表一个表文件 |
为 MariaDB 提供启动脚本
[root@MariaDB-01 mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld | |
[root@MariaDB-01 mysql]# chkconfig --add mysqld | |
[root@MariaDB-01 mysql]# chkconfig mysqld on | |
[root@MariaDB-01 mysql]# chkconfig --list mysqld | |
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
修改 PATH 环境变量,让系统直接使用 MariaDB 相关命令
[root@MariaDB-01 ~]# vim /etc/profile.d/mysql.sh | |
export PATH=/usr/local/mysql/bin:$PATH | |
[root@MariaDB-01 ~]# . /etc/profile.d/mysql.sh |
启动测试
[root@MariaDB-01 ~]# service mysqld start | |
Starting MySQL... [OK ] | |
[root@MariaDB-01 ~]# mysql | |
Welcome to the MariaDB monitor. Commands end with ; or \g. | |
Your MariaDB connection id is 2 | |
Server version: 5.5.43-MariaDB-log MariaDB Server | |
Copyright (c) 2000, 2015, Oracle, MariaDBCorporation Ab and others. | |
Type 'help;' or '\h' for help. Type '\c' to clearthe current input statement. | |
MariaDB [(none)]> |
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-06/118834p2.htm
动态服务器 blog 配置
Php-fpm 配置
编译安装 php 依赖于 MariaDB 的文件,但是不需要对 MariaDB 进行任何配置,只需要解压到指定目录即可。
解压 MariaDB 到指定位置
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ | |
cd /usr/local/ | |
ln -sv mariadb-5.5.43-linux-x86_64/ MySQL |
安装 php 依赖软件包
yum -y install libmcrypt libmcrypt-devel mhashmhash-devel openssl-devel bzip2-devel
编译安装 php
tar xf php-5.4.40.tar.bz2 | |
cd php-5.4.40 | |
./configure --prefix=/usr/local/php5--with-mysql=/usr/local/mysql --with-openssl--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr--enable-xml --enable-sockets--enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d--with-bz2 | |
make && make install |
为 php 提供配置文件
[root@blog-01 php-5.4.40]# cp php.ini-production/etc/php.ini
为 php-fpm 提供配置文件
[root@blog-01 php-5.4.40]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
为 php-fpm 提供启动脚本
[root@blog-01 php-5.4.40]# cpsapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm | |
[root@blog-01 php-5.4.40]# chmod +x/etc/rc.d/init.d/php-fpm | |
[root@blog-01 php-5.4.40]# chkconfig --add php-fpm | |
[root@blog-01 php-5.4.40]# chkconfig php-fpm on |
修改 php-fpm 设置
[root@blog-01 php-5.4.40]# vim/usr/local/php/etc/php-fpm.conf | |
pm.max_children = 50 # 每个进程的子进程数据 | |
pm.start_servers = 5 # 启动时开启的进程数 | |
pm.min_spare_servers = 2 # 最少空闲机舱内 | |
pm.max_spare_servers = 8 # 最多空闲进程 | |
pid = /usr/local/php/var/run/php-fpm.pid | |
listen = 172.16.4.102:9000 # 设置监听的地址,需要保证 web 服务器可以访问此地址。 |
启动并验证
[root@blog-01 php-5.4.40]# service php-fpm start | |
[root@blog-01 php-5.4.40]# netstat -lnt | grepphp-fpm | |
[root@blog-01 php-5.4.40]# netstat -lnt | grep:9000 | |
tcp 0 0 172.16.4.102:9000 0.0.0.0:* LISTEN |
查看启动的进程
[root@blog-01 ~]# ps aux | grep php-fpm | |
root 12569 0.0 0.0 103252 832 pts/0 S+ 06:48 0:00 grep php-fpm | |
root 97811 0.0 0.4 155924 4084 ? Ss 04:05 0:01 php-fpm: master process (/usr/local/php5/etc/php-fpm.conf) | |
nobody 97812 0.0 2.5 175708 26068 ? S 04:05 0:03 php-fpm: poolwww | |
nobody 97813 0.0 2.5 175936 25992 ? S 04:05 0:04 php-fpm: poolwww | |
nobody 97814 0.0 2.1 170612 21372 ? S 04:05 0:02 php-fpm: poolwww | |
nobody 97815 0.0 2.0 170584 20980 ? S 04:05 0:03 php-fpm: poolwww | |
nobody 97816 0.0 2.0 168996 21084 ? S 04:05 0:03 php-fpm: poolwww |
apache 的 blog 虚拟主机设置连接 php
配置 httpd 支持 fcgi,修改主配置文件取消注释即可
LoadModule proxy_module modules/mod_proxy.so | |
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so |
修改虚拟主机配置,使所有 php 结尾的文件通通转发到后端的 blog 服务器
[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf | |
<VirtualHost *:80> | |
ServerName blog.wordpress.com | |
DocumentRoot "/www/blog" | |
<Directory "/www/blog"> | |
Options none | |
AllowOverridenone | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/blog-error-log" | |
CustomLog"/var/log/httpd/blog-access-log" common | |
ProxyRequests Off #关闭正向代理 | |
ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.4.102:9000/www/blog/$1 #访问 php 结尾的所有文件,转发给后端的 php 服务器 | |
</VirtualHost> |
设置完成重启 httpd 服务
blog 服务器准备目录
[root@blog-01 php-5.4.40]# mkdir -p /www/blog
放入测试页测试
[root@blog-01 ~]# vim /www/blog/index.php | |
phpinfo(); | |
访问 web 服务器,web 服务器看到访问的文件是 php 结尾,就将请求转发给了后端的 blog 服务器
Blog 服务器和 MariaDB 数据库连接
MariaDB 数据库创建 blog 的库和用户,并且授权用户对库有所有权限
MariaDB [mysql]> create database wordpress; | |
MariaDB [mysql]> GRANT all ON wordpress.* TO'wordpress'@'172.16.4.102' IDENTIFIED BY 'blogpasswd'; |
测试 php 和 MariaDB 的连接
测试页如下:
[root@blog-01 ~]# vim /www/blog/index.php | |
$conn=mysql_connect('172.16.4.136','wordpress','blogpasswd'); | |
if ($conn) | |
echo"连接数据库成功"; | |
else | |
echo"连接数据库失败" | |
实验需求
- 搭建 LAMP 平台,要求 apache、php、MariaDB 分别在不同服务器实现动静分离,不需要考虑动态服务器和静态服务器数据同步问题;
- 在 LAMP 平台之上,搭建博客和论坛,博客和论坛分别位于不同主机;
- 公网用户除了可以访问 httpd 之外不能访问内网任何一台服务器;
- 部署完成使用 ab 命令进行压力测试,并且部署 Xcache 为 php 提供加速功能。
环境拓扑如下所示:
部署思路
网络环境:
Apache 服务器使用双网卡,一块网卡监听外网用户请求,一块网卡和内网服务区进行通信,apache 的内网网卡和其他服务器使用交换机进行连接。
Apache 和 php 交互:
Apache 和 php 交互有三种方式,cgi,模块方式,fcgi;但是 cgi 和 fcgi 跨主机访问 php 服务器,所以 apache 和 php 服务器只能使用 fcgi 方式进行交互。
php 和 MariaDB 交互:
安装 bbs 和 blog 时,会要求提供 MariaDB 数据库和用户密码等信息,所以只需要在 MariaDB 数据创建好相关的数据库和用户,然后在保证 php 服务器可以访问即可。
bbs 和 blog 安装问题:
-
安装的程序包需要在 apache 和 php 服务器都存在一份,apache 提供静态页面访问,php 提供动态页面访问;不考虑同步问题
-
如果出现要求对程序有写入权限,静态服务器设置 apache 的服务用户 daemon 对文件可写,动态服务器设置 php-fpm 的服务用户 nobody 对文件可写。
实验环境
系统版本 |
主机名 |
ip 地址 |
|
Apache |
CentOS 6.6 64 位 |
web-01 |
外网:eth0: 1.1.1.1 内网:eth1:172.16.4.100 |
论坛 |
Centos 6.6 64 位 |
bbs-01 |
内网: eth0:172.16.4.101 |
博客 |
Centos 6.6 64 位 |
blog-01 |
内网: eth0:172.16.4.102 |
数据库 |
Centos 6.6 64 位 |
MariaDB-01 |
内网:eth0:172.16.4.136 |
使用软件
apr-1.5.0.tar.bz2 | |
apr-util-1.5.3.tar.bz2 | |
httpd-2.4.10.tar.bz2 | |
mariadb-5.5.43-linux-x86_64.tar.gz | |
php-5.4.40.tar.bz2 | |
wordpress-3.3.1-zh_CN.zip | |
xcache-3.2.0.tar.bz2 | |
Discuz_7.2_FULL_SC_UTF8.zip |
———————————— 分割线 ————————————
CentOS 6.5 系统安装配置 LAMP(Apache+PHP5+MySQL)服务器环境 http://www.linuxidc.com/Linux/2014-12/111030.htm
Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境 http://www.linuxidc.com/Linux/2014-10/107924.htm
Windows 7 下硬盘安装 Ubuntu 14.10 图文教程 http://www.linuxidc.com/Linux/2014-10/108430.htm
U 盘安装 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108402.htm
Ubuntu 14.10 正式发布下载 http://www.linuxidc.com/Linux/2014-10/108363.htm
Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10 http://www.linuxidc.com/Linux/2014-10/108381.htm
Ubuntu 14.10 下安装 LAMP 服务图文详解 http://www.linuxidc.com/Linux/2014-12/110082.htm
———————————— 分割线 ————————————
Apache 配置
解决依赖关系
yum -y groupinstall "Development tools""Desktop Platform Development" | |
yum -y install pcre-devel openssl-devel | |
tar xf apr-1.5.0.tar.bz2 | |
cd apr-1.5.0 | |
./configure --prefix=/usr/local/apr | |
make && make install | |
cd .. | |
tar xf apr-util-1.5.3.tar.bz2 | |
cd apr-util-1.5.3 | |
./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr | |
make && make install | |
cd .. |
编译安装 httpd
tar xf httpd-2.4.10.tar.bz2 | |
cd httpd-2.4.10 | |
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24--enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/--enable-modules=most --enable-mpms-shared=all --with-mpm=event | |
make && make install |
修改 PATH 变量,让系统可以直接找到 http 的命令路径
[root@web-01 httpd-2.4.10]# vim/etc/profile.d/httpd.sh | |
export PATH=/usr/local/acaphe/bin:$PATH | |
[root@web-01 httpd-2.4.10]# ./etc/profile.d/httpd.sh | |
[root@web-01 httpd-2.4.10]# which httpd | |
/usr/local/apache/bin/httpd |
设置启动脚本
[root@web-01 httpd-2.4.10]# cp/usr/local/apache/bin/apachectl /etc/init.d/httpd24 | |
[root@web-01 httpd-2.4.10]# vim /etc/init.d/httpd24 | |
#!/bin/sh | |
# chkconfig: 35 85 15 #设置服务识别参数,3、5 级别启动,启动顺序 85,关闭顺序 15 | |
# description: Apache #服务描述信息 | |
[root@web-01 ~]# chkconfig --add httpd24 | |
[root@web-01 ~]# chkconfig --level 35 httpd24 on | |
[root@web-01 ~]# chkconfig --list httpd24 | |
httpd24 0:off 1:off 2:off 3:on 4:off 5:on 6:off |
修改 httpd 配置文件设置监听的端口
[root@web01 ~]# vim /etc/httpd24/httpd.conf | |
Listen 1.1.1.1:80 | |
Listen 172.16.4.100:80 |
启动服务并访问验证
[root@web01 ~]# service httpd24 start | |
[root@web01 ~]# netstat -lnt | grep 80 | |
tcp 0 0 172.16.4.100:80 0.0.0.0:* LISTEN | |
tcp 0 0 1.1.1.1:80 0.0.0.0:* LISTE |
虚拟主机配置
编辑主配置文件,注释中心主机,启用虚拟主机选项
[root@web01 ~]# vim /etc/httpd24/httpd.conf | |
#DocumentRoot "/usr/local/apache/htdocs" | |
Include /etc/httpd24/extra/httpd-vhosts.conf |
设置虚拟主机
[root@web01 ~]# vim/etc/httpd24/extra/httpd-vhosts.conf | |
<VirtualHost *:80> | |
ServerName bbs.discuz.com | |
DocumentRoot "/www/bbs" | |
<Directory "/www/bbs"> | |
Options none | |
AllowOverride none | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/bbs-error-log" | |
CustomLog"/var/log/httpd/bbs-access-log" common | |
</VirtualHost> | |
<VirtualHost *:80> | |
ServerName blog.wordpress.com | |
DocumentRoot "/www/blog" | |
<Directory "/www/blog"> | |
Options none | |
AllowOverride none | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/blog-error-log" | |
CustomLog"/var/log/httpd/blog-access-log" common | |
</VirtualHost> |
设置虚拟主机目录
[root@web01 ~]# mkdir -p /www/{bbs,blog} | |
[root@web01 ~]# echo bbs > /www/bbs/index.html | |
[root@web01 ~]# echo blog > /www/blog/index.html |
访问测试虚拟主机
MariaDB 配置
配置 /dev/sda3 为 lvm 分区
[root@MariaDB-01 ~]# fdisk -l /dev/sda | |
Disk /dev/sda: 128.8 GB, 128849018880 bytes | |
255 heads, 63 sectors/track, 15665 cylinders | |
Units = cylinders of 16065 * 512 = 8225280 bytes | |
Sector size (logical/physical): 512 bytes / 512bytes | |
I/O size (minimum/optimal): 512 bytes / 512 bytes | |
Disk identifier: 0x000471dd | |
DeviceBoot Start End Blocks Id System | |
/dev/sda1 * 1 26 204800 83 Linux | |
Partition 1 does not end on cylinder boundary. | |
/dev/sda2 26 7859 62914560 8e Linux LVM | |
/dev/sda3 7859 11775 31462303+ 8e Linux LVM |
创建逻辑卷
[root@MariaDB-01 ~]# lvcreate /dev/sda3 | |
[root@MariaDB-01 ~]# vgcreate myvg /dev/sda3 | |
[root@MariaDB-01 ~]# lvcreate -L 15G -n mydata myvg | |
[root@MariaDB-01 ~]# lvs | |
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert | |
mydata myvg-wi-a----- 15.00g | |
root vg0 -wi-ao---- 20.00g | |
swap vg0 -wi-ao---- 2.00g | |
usr vg0 -wi-ao---- 10.00g | |
var vg0 -wi-ao---- 20.00g |
格式化并挂载
[root@MariaDB-01 ~]# mkfs.ext4 /dev/myvg/mydata | |
[root@MariaDB-01 ~]# vim /etc/fstab | |
/dev/myvg/mydata /mydata ext4 defaults 0 0 | |
[root@MariaDB-01 ~]# mkdir /mydata | |
[root@MariaDB-01 ~]# mount -a |
创建 MariaDB 服务用户,并且设置数据目录的属主属组为服务用户
[root@MariaDB-01 ~]# groupadd -r mysql | |
[root@MariaDB-01 ~]# useradd -g mysql -r -s/sbin/nologin -M mysql | |
[root@MariaDB-01 ~]# mkdir /mydata/data | |
[root@MariaDB-01 ~]# chown -R mysql:mysql/mydata/data/ |
安装 MariaDB 并初始化
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ | |
cd /usr/local/ | |
ln -sv mariadb-5.5.43-linux-x86_64/ mysql | |
cd mysql/ | |
chown -R mysql:mysql . | |
scripts/mysql_install_db --user=mysql--datadir=/mydata/data/ |
为 MariaDB 提供主配置文件
[root@MariaDB-01 mysql]# cpsupport-files/my-large.cnf /etc/my.cnf | |
[root@MariaDB-01 mysql]# vim /etc/my.cnf | |
thread_concurrency = 2 # 设置 CPU 核心数量乘以 2 | |
datadir = /mydata/data # 设置数据文件目录 | |
innodb_file_per_table = 1 # 使用 inoodb 引擎,每表一个表文件 |
为 MariaDB 提供启动脚本
[root@MariaDB-01 mysql]# cpsupport-files/mysql.server /etc/rc.d/init.d/mysqld | |
[root@MariaDB-01 mysql]# chkconfig --add mysqld | |
[root@MariaDB-01 mysql]# chkconfig mysqld on | |
[root@MariaDB-01 mysql]# chkconfig --list mysqld | |
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
修改 PATH 环境变量,让系统直接使用 MariaDB 相关命令
[root@MariaDB-01 ~]# vim /etc/profile.d/mysql.sh | |
export PATH=/usr/local/mysql/bin:$PATH | |
[root@MariaDB-01 ~]# . /etc/profile.d/mysql.sh |
启动测试
[root@MariaDB-01 ~]# service mysqld start | |
Starting MySQL... [OK ] | |
[root@MariaDB-01 ~]# mysql | |
Welcome to the MariaDB monitor. Commands end with ; or \g. | |
Your MariaDB connection id is 2 | |
Server version: 5.5.43-MariaDB-log MariaDB Server | |
Copyright (c) 2000, 2015, Oracle, MariaDBCorporation Ab and others. | |
Type 'help;' or '\h' for help. Type '\c' to clearthe current input statement. | |
MariaDB [(none)]> |
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-06/118834p2.htm
安装 blog
[root01 ~]# unzip wordpress-3.3.1-zh_CN.zip | -|
[root01 ~]# mv wordpress/* /www/blog/ | -|
[root@blog-01 ~]# cd /www/blog/ | |
[root@blog-01 blog]# cp wp-config-sample.phpwp-config.php | |
[root@blog-01 blog]# vim wp-config.php | |
/** WordPress 数据库的名称 */ | |
define('DB_NAME', 'wordpress'); | |
/** MySQL 数据库用户名 */ | |
define('DB_USER', 'wordpress'); | |
/** MySQL 数据库密码 */ | |
define('DB_PASSWORD', 'blogpasswd'); | |
/** MySQL 主机 */ | |
define('DB_HOST', '172.16.4.136'); |
web 服务器需要为用户提供 wordpress 的静态文件
[root@web01 ~]# mv wordpress/* /www/blog/ | |
[root@web01 ~]# unzip wordpress-3.3.1-zh_CN.zip |
在 blog 服务器和 web 服务器都准备好静态文件之后,就可以进行安装了,打开浏览器输入,http://blog.wordpress.com/wp-admin/install.php 即可安装。
配置完成之后登录
动态服务器 bbs 配置
Php-fpm 配置
解压 MariaDB 到指定位置
tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C/usr/local/ | |
cd /usr/local/ | |
ln -sv mariadb-5.5.43-linux-x86_64/ mysql |
安装 php 依赖软件包
yum -y install libmcrypt libmcrypt-devel mhashmhash-devel openssl-devel bzip2-devel
编译安装 php
tar xf php-5.4.40.tar.bz2 | |
cd php-5.4.40 | |
./configure --prefix=/usr/local/php5--with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config--enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir--with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d --with-bz2 | |
make && make install |
为 php 提供配置文件
[root@bbs-01 php-5.4.40]# cp php.ini-production/etc/php.ini
为 php-fpm 提供配置文件
[root@bbs-01 php-5.4.40]# cp/usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
为 php-fpm 提供启动脚本
[root@bbs-01 php-5.4.40]# cp sapi/fpm/init.d.php-fpm/etc/rc.d/init.d/php-fpm | |
[root@bbs-01 php-5.4.40]# chmod +x/etc/rc.d/init.d/php-fpm | |
[root@bbs-01 php-5.4.40]# chkconfig --add php-fpm | |
[root@bbs-01 php-5.4.40]# chkconfig php-fpm on |
编辑 php-fpm 的配置文件
[root@bbs-01 php-5.4.40]# vim /usr/local/php/etc/php-fpm.conf | |
pm.max_children = 50 | |
pm.start_servers = 5 | |
pm.min_spare_servers = 2 | |
pm.max_spare_servers = 8 | |
pid = /usr/local/php/var/run/php-fpm.pid | |
listen = 172.16.4.101:9000 # 设置 php-fpm 监听的地址,保证 web 服务器可以访 |
问此地址
启动 php-fpm
[root@bbs-01 php-5.4.40]# service php-fpm start | |
[root@bbs-01 php-5.4.40]# netstat -lnt | grep :9000 | |
tcp 0 0 172.16.4.101:9000 0.0.0.0:* LISTEN |
配置 web 服务器和 bbs 服务器连接
虚拟主机设置,将 php 结尾的文件转发到后端的 bbs 服务器
<VirtualHost *:80> | |
ServerName bbs.discuz.com | |
DocumentRoot "/www/bbs" | |
<Directory "/www/bbs"> | |
Options none | |
AllowOverride none | |
Require all granted | |
</Directory> | |
ErrorLog"/var/log/httpd/bbs-error-log" | |
CustomLog"/var/log/httpd/bbs-access-log" common | |
ProxyRequests Off | |
ProxyPassMatch^/(.*\.php)$ fcgi://172.16.4.101:9000/www/bbs/$1 | |
</VirtualHost> |
验证 apache 和 php 的 cfgi 连接
[root@bbs-01 ~]# vim /www/bbs/index.php | |
phpinfo(); | |
配置 bbs 服务器和 MariaDB 服务器连接
创建数据库和数据库用户,并且授权用户对数据库具有全部权限
MariaDB [MySQL]> create database bbsdb; | |
MariaDB [mysql]> GRANT all ON bbsdb.* TO 'runbbs'@'172.16.4.101' IDENTIFIED BY 'adm123'; |
测试 php 和 mysql 的连接
修改测试页面
[root@bbs-01 ~]# vim /www/bbs/index.php | |
$conn=mysql_connect('172.16.4.136','runbbs','adm123'); | |
if ($conn) | |
echo"连接数据库成功"; | |
else | |
echo"连接数据库失败" | |
phpinfo(); | |
部署论坛
将 Discuz 的程序文件解压,并且将 upload 中所有文件放置到网站目录
[root@bbs-01 ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip-d Discuz | |
[root@bbs-01 ~]# mv Discuz/upload/* /www/bbs/ |
设置 php-fpm 的服务用户为下面文件的属主或者对其设置写权限,否则安装时会报错
[root@bbs-01 ~]# cd /www/bbs/ | |
[root@bbs-01 bbs]# chown -R nobody templates/attachments/ forumdata/ | |
[root@bbs-01 bbs]# chown -R nobodyuc_client/data/cache/ config.inc.php |
web 服务器也需要有静态文件
[root@web01 ~]# mv Discuz/upload/* /www/bbs/ | |
[root@web01 ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip-d Discuz |
设置 httpd 的服务用户对指定文件也需要有写权限
[root@web01 ~]# cd /www/bbs/ | |
[root@web01 bbs]# chown -R daemon templates/attachments/ forumdata/ | |
[root@web01 bbs]# chown -R daemonuc_client/data/cache/ config.inc.php |
设置完成之后,输入 httd://bbs.discuz.com/install 即可安装
只需要根据错误提示进行排除即可
[root@bbs-01 bbs]# vim /etc/php.ini | |
short_open_tag = ON | |
[root@bbs-01 bbs]# service php-fpm restart |
排错之后继续访问安装目录,就可以继续安装了
填写数据库的相关信息,添加数据库服务器的地址和 MariaDB 创建的数据库和用户密码,而后在设置 bbs 的管理员帐号密码就可以继续安装了。
剩下的根据提示安装即可。
出现上面这种情况是由于 php 服务器安装了 discuz 之后导致程序发生变化从而导致动态服务器和静态服务器的程序不一致,只需要手动把 bbs 服务器的文件和 web 服务器进行一次同步即可,如果想实现自动同步,需要使用其他服务,如 initory+rsync、sersync 等工具。
[root@bbs-01 bbs]# scp -r *root@172.16.4.100:/www/bbs/
动态服务器和静态服务器同步文件之后,再次访问 bbs 的网址就正常了。
压力测试
[root@client ~]# ab -n 3000 -c 100 httpd://www.discuz.com/index.php | |
省略部分内容…… | |
Server Software: Apache/2.4.10 | |
Server Hostname: bbs.discuz.com | |
Server Port: 80 | |
Document Path: /index.php | |
Document Length: 7691 bytes | |
Concurrency Level: 100 | |
Time taken for tests: 58.782 seconds | |
Complete requests: 3000 | |
Failed requests: 2137 | |
(Connect:0, Receive: 0, Length: 2137, Exceptions: 0) | |
Write errors: 0 | |
Non-2xx responses: 29 | |
Total transferred: 23679924 bytes | |
HTML transferred: 22723414 bytes | |
Requests per second: 51.04 [#/sec] (mean) #每秒可以处理请求 | |
Time per request: 1959.391 [ms] (mean) | |
Time per request: 19.594 [ms] (mean, across all concurrentrequests) | |
Transfer rate: 393.40 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 2 10.2 0 135 | |
Processing: 142 1926 1621.3 1355 31212 | |
Waiting: 141 1924 1620.6 1354 31212 | |
Total: 195 1928 1620.6 1356 31212 | |
Percentage of the requests served within a certaintime (ms) | |
50% 1356 | |
66% 1717 | |
75% 2312 | |
80% 2482 | |
90% 2945 | |
95% 4149 | |
98% 6231 | |
99% 9875 | |
100% 31212 (longest request) |
部署 xcache 为 php 加速
编译安装 Xcache
tar xf xcache-3.2.0.tar.bz2 | |
cd xcache-3.2.0 | |
/usr/local/php5/bin/phpize | |
./configure --enable-xcache--with-php-config=/usr/local/php5/bin/php-config | |
make && make install |
安装结束会出现如下行
Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/
整合 php 和 xcache,将 XCache 配置文件复制到 php.d 目录下,使 php 可以读取 XCache 配置文件
[root@bbs-01 xcache-3.2.0]# mkdir /etc/php.d | |
[root@bbs-01 xcache-3.2.0]# cp xcache.ini/etc/php.d/ |
接下来编辑 /etc/php.d/xcache.ini,找到 zend_extension 开头的行,修改为如下行
zend_extension =/usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
设置完成之后,重启 php-fpm 服务。
在 bbs 网页目录准备 php 测试页面,访问如果出现 Xcache 的内容说明 Xcache 安装成功
在次进行压力测试
[root@client ~]# ab -n 3000 -c 100http://bbs.discuz.com/index.php | |
省略部分内容………… | |
Server Software: Apache/2.4.10 | |
Server Hostname: bbs.discuz.com | |
Server Port: 80 | |
Document Path: /index.php | |
Document Length: 7687 bytes | |
Concurrency Level: 100 | |
Time taken for tests: 9.983 seconds | |
Complete requests: 3000 | |
Failed requests: 0 | |
Write errors: 0 | |
Total transferred: 24031128 bytes | |
HTML transferred: 23061000 bytes | |
Requests per second: 300.51 [#/sec] (mean) | |
Time per request: 332.762 [ms] (mean) | |
Time per request: 3.328 [ms] (mean, across all concurrentrequests) | |
Transfer rate: 2350.82 [Kbytes/sec] received | |
Connection Times (ms) | |
min mean[+/-sd] median max | |
Connect: 0 1 3.9 0 25 | |
Processing: 31 327 45.2 328 701 | |
Waiting: 31 327 45.2 327 701 | |
Total: 42 328 43.4 328 701 | |
Percentage of the requests served within a certaintime (ms) | |
50% 328 | |
66% 339 | |
75% 346 | |
80% 354 | |
90% 378 | |
95% 391 | |
98% 417 | |
99% 428 | |
100% 701 (longest request) |
通过对比安装 Xcache 前后的压力测试结果,可以看出处理的请求数由每秒处理 50 个请求提升到了 300 个,当然由于是本机进行测试,没有考虑带宽的因素,所以性能稍高。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118834.htm
