1、架構說明
php
當客戶端訪問Web服務器時,Web服務器根據客戶端訪問的資源進行判斷,若是是靜態的頁面Web服務器就直接返回給給客戶端,若是是動態的頁面,Web服務器就請求PHP服務器進行解析,在解析過程有須要MySQL數據的PHP服務器就請求MySQL服務器,PHP服務器解析完後封裝發送給Web服務器,Webt器在封裝發送給客戶端。html
3、架構規劃(全爲CentOS 7環境)node
說明:WEB開戶httpd服務,PHP只開php-fpm服務便可(可停用機機的httpd服務),若是添加防火牆麻煩就直接關掉mysql
4、Web服務器上安裝httpd服務程序(最好用yum安裝,自動解決依賴)web
1)安裝httpd程序依賴apr程序包sql
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程序包apache
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 installvim
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
5、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
5、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';-------這裏測試爲*.*,生產環境直接指定到庫,
6、最後配置
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
7、測試效果
1)、在Windows客戶端測試
數據庫管理測試
8、功能擴展
(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目錄下面沒有仔細去找有沒有靜態頁面)