在虚拟机中分别使用yum及源码包编译搭建lamp环境,并做测试
方案
CentOS 7, lamp+xcache, rpm包, php以module方式安装
a) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress
b) 为phpMyAdmim提供https服务CentOS 7, lamp + xcache, rpm包,php-fpm
a) httpd, php, mariadb分别部署在一个单独的主机上
b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress
c) 为phpMyAdmim提供https服务CentOS 7, lamp + xcache,编译安装,php-fpm
a) httpd, php, mariadb分别部署在一个单独的主机上,以及都在同一主机
b) 一个虚拟主机提供phpMyAdmin,另一个虚拟主机提供wordpress
c) 为phpMyAdmim提供https服务
环境准备
- 系统:CentOS7.x86_64 (192.168.1.71~74)
- 配置好yum源并安装开发包组 “Development Tools”及“Server Platform Development”
- 为方便测试关闭防火墙iptables及SELinux,相关知识后期讨论
- 下载相应源码包:
- apr-1.5.2.tar.bz2
- apr-util-1.5.4.tar.bz2
- httpd-2.4.23.tar.bz2
- mariadb-5.5.50-linux-x86_64.tar.gz
- php-5.5.37.tar.xz
- xcache-3.2.0.tar.bz2
- wordpress-4.5.3-zh_CN.tar.gz
- phpMyAdmin-4.6.3-all-languages.zip
一、yum快速安装1,php以模块方式安装
1. 环境:静态IP(192.168.1.71)
2. 安装
1 | yum -y install httpd php php-mysql mariadb-server php-xcache |
3. httpd-2.4
- 配置文件:/etc/httpd/conf/httpd.conf, /etc/httpd/conf.d/*.conf
- 启动服务:
systemctl start httpd
ss -tunl sport = :80
ps aux | grep httpd
- 测试:
echo "<h2>hello world</h2>" > /var/www/html/index.html
curl 192.168.1.71
4. php-5.4
- 配置文件:/etc/php.ini, /etc/php.d/*.ini
5. mariadb-5.5
配置文件:/etc/my.cnf,/etc/my.cnf.d/*.cnf
在主配置文件/etc/my.cnf中[mysqld]下添加:
innodb_file_per_table = On
skip_name_resolve = On
启动服务:
systemctl start mariadb
ss -tunl sport = :3306
ps aux | grep mysql
注:如果启动不了,尝试修改权限:chown -R mysql.mysql /var/lib/mysql
初始化数据库及安全设置:默认只允许root用户本地登录,且空密码
mysql_install_db
mysql_secure_installation
# 添加root密码,移除匿名用户…登录并授权:
mysql -uroot -p123
GRANT ALL ON *.* TO test@'localhost' identified by '123'
GRANT ALL ON *.* TO test@'127.0.0.1' identified by '123'
使用测试用户登录:
mysql -utest -p123
6. php-xcache
- 配置文件:/etc/php.d/xcache.ini
7. 测试连接
1 | vim /var/www/html/index.php # 编辑默认主页内容如下 |
1 |
|
8. 虚拟主机配置及wordpress安装
1 | mkdir /web |
修改hosts文件添加: 192.168.1.71 wp.liu2lin.com,访问wp.liu2lin.com初始化wordpress站点
二、yum快速安装2,FastCGI方式(php-fpm)
说明:mariadb及httpd安装如上不再缀述
httpd-2.2:默认不支持fcgi模块,需要自行编译扩展
php-5.3.3:不支持fpm机制,需要自行打补丁编译安装
1. 安装
1 | yum -y install httpd php-fpm php-mysql mariadb-server php-xcache |
2. php-fpm
- 配置文件:
服务进程配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf
解释器配置文件:/etc/php.ini, /etc/php.d/*.ini
- 服务进程配置文件说明:
1 | [global] # 全局配置 |
- 配置虚拟主机
1 | vim /etc/httpd/conf.d/vhost.conf # 添加虚拟主机配置 |
- 启动服务:
1 | systemctl start php-fpm # 启动php-fpm服务 |
三、编译安装(在同一主机部署)
httpd:httpd-2.4, 需要apr-1.4+及apr-util-1.4+以上依赖
mariadb:mariadb-5.5, 二进制包安装
php:php-5.5
开发包组及依赖包安装
1 | yum groupinstall 'Development Tools' 'Server Platform Development' |
httpd-2.4 编译
1. apr及apr-util编译安装
1 | tar xf apr-1.5.2.tar.bz2 |
2. httpd编译安装
1 | tar xf httpd-2.4.23.tar.bz2 |
3. 配置
1 | LoadModule proxy_module modules/mod_proxy.so |
4. PATH,MAN, 头文件
1 | echo 'export PATH=$PATH:/usr/local/apache2/bin' > /etc/profile.d/httpd.sh |
5. 启动
1 | /usr/local/apache2/bin/apachectl start |
mariadb-5.5进制包安装
1. 创建mysql用户
1 | groupadd -r mysql |
2. 安装
1 | tar xf mariadb-5.5.50-linux-x86_64.tar.gz -C /usr/local |
3. 配置
1 | cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf |
4. PATH路径,MAN文档,头文件
1 | echo 'export PATH=$PATH:/usr/local/mysql/bin' > /etc/profile.d/mysql.sh # PATH环境变量 |
5. 启动服务
1 | service mysqld start |
php-5.5 编译安装
1. 安装(php-fpm)
1 | tar xf php-5.5.37.tar.bz2 |
2. 配置
1 | cp ./php.ini-production /etc/php5.ini # 源码目录下 |
3. 服务脚本并启动
1 | vim /etc/systemd/system/php-fpm.service |
4. httpd设置代理
1 | vim /etc/httpd/httpd.conf |
5. 安装xcache加速
1 | tar |
测试
1 | echo '<?php phpinfo();?>' > /usr/local/apache2/htdocs/index.php |
虚拟主机设置同上,此略
四. 基于FastCGI不同主机分别编译安装
1. 环境准备
- httpd-2.4:192.168.1.73
- php-5.5:192.168.1.74
- mariadb-5.5:192.168.1.75
httpd和mariadb编译方式同上,则处编译php
2. php安装
1 | yum install libxml2-devel gd-devel freetype-devel libmcrypt-devel openssl-devel bzip2-devel |
3. 配置
- php配置
1 | cp ./php.ini-production /etc/php5.ini # 源码目录下 |
- httpd配置:/etc/httpd2/httpd.conf
1 | # 开启如下模块 |
- httpd虚拟机配置:/etc/httpd2.d/vhost.conf (手动建立)
1 | <VirtualHost 192.168.1.73:80> |
- 测试mysql连接性
在php-fpm(192.168.1.74)上新建测试页/web/index.php,mysql先授权,参考上,然后浏览器访问192.168.1.73查看结果
1 |
|
- 虚拟主机搭建phpMyAdmin
1 | # php-fpm服务器上 |
1 | # httpd服务器上虚拟主机设置 |
注:php-fpm服务器只负责解析php文件,html,图片等静态资源仍需由httpd来解析,如下
为方便起见直接将phpMyAdmin目录复制到/web/下并,图片可正常解析
压测结果
….