一、架构说明
当客户端访问Web服务器时,Web服务器根据客户端访问的资源进行判断,如果是静态的页面Web服务器就直接返回给给客户端,如果是动态的页面,Web服务器就请求PHP服务器进行解析,在解析过程有需要MySQL数据的PHP服务器就请求MySQL服务器,PHP服务器解析完后封装发送给Web服务器,Webt器在封装发送给客户端。
三、架构规划(全为CentOS 7环境)
说明:WEB开户httpd服务,PHP只开php-fpm服务即可(可停用机机的httpd服务),如果添加防火墙麻烦就直接关掉
四、Web服务器上安装httpd服务程序(最好用yum安装,自动解决依赖)
1)安装httpd程序依赖apr程序包
tar xf apr-1.5.0.tar.bz2
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install
2)安装httpd程序依赖apr-util程序包
tar xf apr-util-1.5.3.tar.bz2
cdapr-util-1.5.3
./configure
--prefix=/usr/local/apr-util--with-apr=/usr/local/apr/
make&& make install
3)安装http程序包(下面安装路径不需要从新命名,因为原来没安httpd)
[root@abc httpd-2.4.10]#useradd -r apache
[root@node-2 httpd-2.4.10]# ./configure--prefix=/usr/local/apache
\
--sysconfdir=/etc/apache --with-apr=/usr/local/apr
\
--with-apr-util=/usr/local/apr-util/ --enable-so--enable-ssl
\
--enable-cgi --enable-rewrite --with-zlib --with-pcre--enable-modules=most
\
--enable-mpms-shared=all --with-mpm=prefork
[root@abc httpd-2.4.10]# make -j 4 &&make install
注:上面配置时可能会出现openssl old,直接安装openssl-devel就行了
4)启用http的相关php-fpm模块/etc/httpd/conf/httpd.conf 操作如下:
Include /etc/httpd/conf/httpd-vhosts.conf # 添加虚拟主机配置路径
ServerName abc.gayj.com:80 # 配置服务器名
DirectoryIndex index.html index.php # 配置默认主页
++++++++++++添加下面二行+++++++++++++++++++++++++++++++
AddType application/x-httpdp-php .php
AddType application/x-httpdp-php-source .phps
5)添加虚拟主机配置文件以及动态主机指向 vim /etc/httpd/conf/httpd-vhosts.conf
DirectoryIndex index.php
<VirtualHost *:80 >
DocumentRoot "/var/www/html/wordpress"
ServerName lgq.php.com
ServerAlias php.com
Errorlog "logs/php.com-error_log"
CustomLog "logs/php.com-access_log" combined
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/wordpress/$1
<Directory "/var/www/html/wordpress">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80 >
DocumentRoot "/var/www/html/pma"
ServerName sql.mysql.com
ServerAlias mysql.com
Errorlog "logs/mysql.com-error_log"
CustomLog "logs/mysql.com-access_log" combined
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/pma/$1
<Directory "/var/www/html/pma">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
##############################################################################################
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName abc.gayj.com
ServerAlias gayj.com
<Directory "/var/www/html">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/wordpress"
ServerName lgq.php.com
ServerAlias lgq.com
<Directory "/var/www/html/wordpress">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/www/html/pma"
ServerName sql.mysql.com
ServerAlias mysql.com
<Directory "/var/www/html/pma">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
6)启动httpd服务查看状态:
systemctl start httpd.service
systemctl status httpd.service
五、PHP服务器上安装PHP程序
创建php的运行用户apache:useradd -r apache
1)编译安装php
tar xf php-5.6.4.tar.xz
cd php-5.6.4
./configure--prefix=/usr/local/php5.6.4 --with-openssl \
--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/php
\
--with-config-file-scan-dir=/etc/php/php.d --with-bz2 --user=bbs
make -j 4 && make install
2)为/usr/local/php-5.6.4创建软链接
[root@lgq php-5.6.4]# ln -s/usr/local/php5.6.4/ /usr/local/php
[root@lgq php-5.6.4]# ll
/usr/local/php
lrwxrwxrwx 1 root root 20 May 3 18:42
/usr/local/php ->/usr/local/php5.6.4/
3)为PHP提供配置文件
[root@lgq php-5.6.4]#
mkdir -p /etc/php/php.d/
[root@lgq php-5.6.4]# cp php.ini-development /etc/php/php.ini
4)配置php-fpm
systemctl enable php-fpm # 设置开机启动
systemctl is-enabled php-fpm # 查看设置结果
5)编辑php-fpm配置文件 /etc/php-fpm.d/www.conf
listen = 192.168.1.4:9000 # 设置成本机IP,如果不对外就设置成127.0.0.1
listen.allowed_clients = 192.168.1.3 #允许客户端连接(这里设置成WEB服务器IP----因为WEB要请求动态页面)
pm.max_children = 60
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8
6)启动php-fpm
[root@lgq ]# systemctl start php-fpm
五、MySQL数据库服务器安装
1)、安装数据库,mariadb-server
[root@sql ]# yum install mariadb-server
2)、启动并查看数据库
[root@sql ]# systemctl start mariadb.service
3)、设置开机启动
[root@sql ]# systemctl enable mariadb.service
4)、数据服务安全加固
安装完mysql-server 会提示可以运行mysql_secure_installation。运行mysql_secure_installation会执行几个设置:
a)为root用户设置密码
b)删除匿名账号
c)取消root用户远程登录
d)删除test库和对test库的访问权限
e)刷新授权表使修改生效
通过这几项的设置能够提高mysql库的安全[root@www ~]# mysql_secure_installation
5)、授权给PHP服务器账号,密码(这里偷懒了,到phpMyAdmin中去创建wordpress数据库)
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘192.168.1.4‘ IDENTIFIED BY ‘123456‘;-------这里测试为*.*,生产环境直接指定到库,
六、最后配置
1)、解压wordpress和phpMyAdmin到以下两个目录(httpd服务器和PHP服务器各一份)
PHP服务器:/var/www/html/目录下(如下)
/var/www/html/wordpress
/var/www/html/pma #这里是把phpMyAdmin….. ln----->pma
Httpd服务器:/var/www/html/目录下
/var/www/html/wordpress
/var/www/html/pma #这里是把phpMyAdmin….. ln----->pma
2)、配置PHP服务器连接数据库
[root@lgq ~]# cd /var/www/html/pma/
[root@lgq pma]# cp config.sample.inc.php config.inc.php
[root@lgq pma]# vim config.inc.php
$cfg[‘Servers‘][$i][‘host‘] = ‘192.168.1.5‘; # 这里改成数据库的IP地址,刚才在数据库中已经授权
3)、测试客户端,添加hosts文件 /etc/hosts
192.168.1.3 abc.gayj.com
192.168.1.3 lgq.php.com
192.168.1.3 sql.mysql.com
七、测试效果
1)、在Windows客户端测试
数据库管理测试
八、功能扩展
(1)、Rsyslog日志数据库服务器
1)、安装日志数据库驱动程序,rsyslog-mysql----------------(Mysql服务器)
[root@sql ~]# yum install rsyslog-mysql
2)、授权服务器账号,密码
GRANT ALL PRIVILEGES ON Syslog.* TO ‘Syslog‘@‘localhost‘ IDENTIFIED BY ‘Syslogpass‘;
3)、导入安装rsyslog-mysql 时所生成的 mysql-createDB.sql脚本
查看脚本位置:[root@sql ~]# rpm -ql rsyslog-mysql
/usr/lib64/rsyslog/ommysql.so
/usr/share/doc/rsyslog-7.4.7/mysql-createDB.sql
4)、导入脚本:(两种方式,用其中一种):
1)、登陆mysql>source /usr/share/doc/rsyslog-mysql-7.4.7/createDB.sql
2)、#:]mysql -uUSER -hHOST -pPASSWORD < /usr/share/doc/rsyslog-mysql-7.4.7/createDB.sql
5)、配置服务端:
使用ommysql模块,在/etc/rsyslog.conf文件中配置(服务端不用开514,只加载模块就行了)
加载模块,开放端口
$ModLoad imudp
$UDPServerRun 514
$ModLoad ommysql
启用本地mysql数据库存Syslog,以Syslog用户,Syslogpass密码存储日志数据
*.* :ommysql:192.168.1.5,Syslog,Syslog,Syslogpass
重启服务
systemctl restart rsyslog.service
6)、配置客户端(web服务器和PHP服务器)
web 服务器:[root@abc ~]# vim /etc/rsyslog.conf
*.* @192.168.1.5
重启服务
systemctl restart rsyslog.service
PHP 服务器:[root@lgq ~]# vim /etc/rsyslog.conf
*.* @192.168.1.5
重启服务
systemctl restart rsyslog.service
7)、架设loganalyzer网页日志管理系统--------192.168.1.4 主机:lgq.php.com
a、安装loganalyzer
[root@lgq ~]# tar xf loganalyzer-3.6.5.tar.gz
[root@lgq ~]# mv loganalyzer-3.6.5 syslog
[root@lgq ~]# cd syslog/contrib
[root@lgq ~]# chmod +x *.sh
[root@lgq ~]# ./configure.sh
[root@lgq ~]# ./securch
[root@lgq ~]# chmod 666 config.php
[root@lgq ~]# systemctl restart rsyslog.service
把所有文件复制到网站的/var/www/html/syslog目录下
b、在web服务器中加入虚拟主机配置 /etc/httpd/conf/httpd-vhosts.conf
注意:同样把PHP服务器上的syslog目录复制一份到WEB的网站目录下
<VirtualHost *:80 >
DocumentRoot "/var/www/html/syslog"
ServerName syslog.php.com
Errorlog "logs/syslog.php.com-error_log"
CustomLog "logs/syslog.php-access_log" combined
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.1.4:9000/var/www/html/syslog.php/$1
<Directory "/var/www/html/syslog.php">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
c、配置syslog中的数据库路径
配置/var/www/html/syslog/config.php
$CFG[‘Sources‘][‘Source1‘][‘DBServer‘] = ‘192.168.1.5‘; # 数据库的IP地址
在数据库服务,授权:
GRANT ALL ON Syslog.* TO ‘Syslog‘@‘192.168.1.4‘ IDENTIFIED BY ‘Syslogpass‘;
FLUSH PRIVILEGES;
d、在测试客户端的hosts文件中在添加一行解析
192.168.1.3 abc.gayj.com
192.168.1.3 lgq.php.com
192.168.1.3 sql.mysql.com
192.168.1.3 syslog.php.com
8)、安装并测试
#打开浏览器运行下面的http://syslog.php.com/syslog/src/install.php(下面是以前抓的图,步骤是一样的)
点here开始安装
关闭SELINUX
关了就OK
以下配置说明:
如果上面两个网站有静态页面,就直接走本机静态在本机192.168.1.3的wordpress目录下建立了abc.html,测试时,
把php动态主机192.168.1.4 中的php-fpm服务停用,同样可以通过下面的lgq.php.com/abc.html访问,可以充分实现把一个网站的静态页面放
#在本机上机,动态放在php动态主机上,是可行的。本试验中:php动态主机是192.168.1.4 安装php服务,数据库192.168.1.5安装php-mysql,
安装静态主机是本机192.168.1.3(为什么这么证明呢,是因为wordpress目录下面没有仔细去找有没有静态页面)
原文地址:http://liguoqing.blog.51cto.com/327222/1739586