搭建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)服务器环境
Ubuntu 14.04 配置 LAMP+phpMyAdmin PHP(5.5.9)开发环境
Windows 7下硬盘安装Ubuntu 14.10图文教程
Ubuntu 14.04 LTS 如何升级到 Ubuntu 14.10
------------------------------------分割线------------------------------------
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)]>