博客作業:
(1) CentOS 7, apm+xcache, rpm包, php module;
a) 一個虛擬主機提供phpMyAdmin,另一個虛擬主機提供wordpress;
b) 爲phpMyAdmim提供https服務;
(2) CentOS 7, amp + xcache, rpm包,php-fpm;
a) httpd, php, mariadb分別部署在一個單獨的主機上;
b) 一個虛擬主機提供phpMyAdmin,另一個虛擬主機提供wordpress;
c) 爲phpMyAdmim提供https服務;
(3) CentOS 7, amp + xcache,編譯安裝,php-fpm;
a) 分別深度:httpd, php, mariadb分別部署在一個單獨的主機上,以及都在同一主機;
b) 一個虛擬主機提供phpMyAdmin,另一個虛擬主機提供wordpress;
c) 爲phpMyAdmim提供https服務;
(4) 對以上所有部署做壓力測試,並對比測試結果,寫出測試報告;
搭建CA服務器,爲web服務器派發證書 此ip爲172.16.1.3
生成私鑰CA服務器自己的私鑰,準備給自己做個根證書
[root@haizei ~]# cd /etc/pki/CA [root@haizei CA]# (umask 077;openssl genrsa 2048 > private/cakey.pem) cakey.pem爲CA服務的自己的私鑰 |
##因爲這裏是建立私有CA,同一個機構,國家,省,組織
,所以爲了後續給自己簽證方便,這裏需要修改
[root@haizei CA]# vim /etc/pki/tls/openssl.cnf country Name_default = CN StateOrprovinceName_default = Beijing LocatityName_default = Shangdi 0.organizationName_default = M19 organizationUnitName = Jishu |
生成自簽證書(根CA)
[root@haizei CA]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 3650 -out /etc/pki/CA/cacert.pem
Common Name (eg, your name or your server's hostname) []:haizei.zou.com 這裏需要自己定義自己的主機名,最好與主機名或者可以解析的域名一致 |
準備好做CA服務器的數據庫等文件
[root@haizei CA]# mkdir -p /etc/pki/CA/{certs,crl,newcerts} [root@haizei CA]# touch /etc/pki/CA/{serial,index.txt} [root@haizei CA]# echo 01 > /etc/pki/CA/serial |
(1)
安裝lamp以及支持https的模塊,xcache的軟件
~】# yum -y install httpd mariadb-server php php-mysql mod_ssl httpd php-gd php-mbstring php-xml
~】# yum install php-xcache 這個在epel源裏面
查看我們正在使用的httpd模型,prefork
[root@localhost phpMyAdmin]# cat /etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
修改數據庫的配置文檔,準備開啓服務
~】# vim /etc/my.cnf
innodb_file_per_table=ON
skip_name_resolve=ON
開啓服務
~】# systemctl start httpd.service mariadb.service
~】# systemctl enable httpd.service mariadb.service
提過數據庫的安全性
~】# mysql_secure_installation 爲數據庫root用戶建立密碼,刪除空密碼等
測試mysql數據庫以及httpd服務已經開啓
~】# ps aux | grep 'httpd '
~】# ss -ntlp 查看3306和80端口
~】# mysql -uroot -p 查看可以登錄mysql服務端
測試php和httpd,mysql是否已經連接
<?php $conn=mysql_connect('192.168.10.3','zou','123.comer'); if($conn) echo ok; else echo fault; mysql_close(); phpinfo(); ?> |
安裝phpmyadmin軟件包,其實在epel源裏面
~】# yum install phpmyadmin
~】# vim /etc/httpd/conf.d/phpMyAdmin.conf
<Directory /usr/share/phpMyAdmin/setup/> <IfModule mod_authz_core.c> 這個文檔保持默認即可,只要修改兩個地方,讓客戶端可以連接即可 # Apache 2.4 當然我們也看的出,這個網頁的存放路徑實在/usr/share/phpMyAdmin目錄下面 <RequireAny> Require all granted </RequireAny> </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8
<IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> Require ip 172.16 </RequireAny> </IfModule> </Directory> 。。。。。。。 |
準備對phpMyadmin網頁這是https
~】# mkdir /etc/httpd/conf/.ssh;cd /etc/httpd/conf/.ssh
~】# (umask 077;openssl genrsa 4096 > http.key)
~】# openssl req -new -key http.key -out httpd.csr
Common Name (eg, your name or your server's hostname) []:www1.zou.com
~】# scp httpd.csr [email protected]:/tmp
在CA認證服務器上,簽證並派給web端
~】# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt
~】# scp /etc/pki/CA/certs/httpd.crt [email protected]:/etc/httpd/conf/.ssh/
設置https
~】# vim /etc/httpd/conf.d/ssl.conf
修改裏面的部分內容 <VirtualHost _default_:443> DocumentRoot "/usr/share/phpMyAdmin" ServerName www1.zou.com SSLCertificateFile /etc/httpd/conf/.ssh/httpd.crt SSLCertificateKeyFile /etc/httpd/conf/.ssh/http.key <Directory /usr/share/phpMyAdmin> <RequireALL> require all granted </RequireALL> </Directory> ...... |
檢查配置文檔並重新加載服務
~】# httpd -t
~】# systemctl reload httpd
準備安裝wordpress
首先建立好數據庫和對應的用戶主機和密碼
~】# mysql -uroot -p
mariadb> create database wordpress;
mairadb> grant all on wordpress.* to 'wpuser'@'localhost' identified by 'wppasswd';
mairadb> flush privileges;
建立網頁
~】# mkdir /data/vhosts/www2;cd /data/vhosts/www2
~】# unzip /usr/local/src/wordpress-4.3.1-zh_CN.zip -c /data/vhosts/www2
~】# vim wordpress/wp-config-sample.php 把剛建立的數據庫名,密碼等都對應好寫進去
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppasswd');
define('DB_HOST', 'localhost');
配置網頁
~】# vim /etc/httpd/conf.d/vhost2.conf
<VirtualHost 172.16.1.1:80> ServerName www2.zou.com:80 DirectoryIndex index.php DocumentRoot "/data/vhosts/www2" ErrorLog logs/vhost_www2-error.log LogLevel warn <Directory /data/vhosts/www2> <RequireALL> require all granted </RequireALL> </Directory> </VirtualHost> |
~】# httpd -t
~】# systemctl reload httpd.service
在上面的圖中,我們要按照它的提示,把框中的文件內容保存到wp-config.php程序文件中,後續我們使用
http://www2.com/wordpress 就可以正常訪問了
(2)
實驗準備 :
httpd 172.16.1.1 模擬外網卡, 192.168.10.1 模擬內網卡 (開啓路由轉發)
php-fpm 192.168.10.2 (指向192.168.10.1)
mariadb 192.168.10.3 (執向192.168.10.1)
首先在httpd服務器上面開啓路由轉發
~】#echo "1" > /proc/sys/net/ipv4/ip_forward
安裝httpd服務
~】#yum install httpd
~】#ps aux | grep httpd 做測試查看時候啓動httpd服務
配置兩個虛擬機
~】#vim /etc/httpd/conf.d/vhost1.conf
DirectoryIndex index.php <VirtualHost 172.16.1.1:80> ServerName www1.zou.com DocumentRoot /data/vhosts/www1 ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/www1/$1 <Directory "/data/vhosts/www1"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> |
~】# vim /etc/httpd/conf.d/vhost2.conf
DirectoryIndex index.php <VirtualHost 172.16.1.1:80> ServerName www2.zou.com DocumentRoot /data/vhosts/www2 ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/www2/$1 <Directory "/data/vhosts/www2"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> |
~】# mkdir -pv /data/vhosts/www{1,2}
在php服務器上面,安裝php服務,已經其響應的插件
~】# yum -y install mariadb php php-mysql php-gd php-mbstring php-xml
~】# yum install php-xcache 這個在epel源裏面
設置監聽的端口爲192.168.10.2
~】# vim /etc/php-fpm.d/www.conf
listen = 192.168.10.2:9000
listen.allowed_clients = 192.168.10.1
user = apache
group = apache
~】# ss -ntlp 檢查一下
數據服務器上面
修改數據庫的配置文檔,準備開啓服務
~】# vim /etc/my.cnf
innodb_file_per_table=ON
skip_name_resolve=ON
開啓服務
~】# systemctl start mariadb.service
數據庫的安全性
~】# mysql_secure_installation 爲數據庫root用戶建立密碼,刪除空密碼等
測試mysql數據庫以及httpd服務已經開啓
~】# ps aux | grep 'httpd '
~】# ss -ntlp 查看3306和80端口
~】# mysql -uroot -p 查看可以登錄mysql服務端
在php服務器上面做3者連接測試
~】# mkdir /data/vhosts/www1
~】# vim /data/vhosts/www1/index.php
<?php $conn=mysql_connect('192.168.10.3','zou','123.comer'); if($conn) echo ok; else echo fault; mysql_close(); phpinfo(); ?> |
準備phpmyadmin網頁部署,下載phpMyAdmin-4.0.5-all-languages.zip 壓縮包,並解壓縮,這裏要說明一下:
因爲服務器http和php分離,也就是說靜態和動態分離,phpmyadmin在這靜態和動態資源兩者都有,爲了能夠更好的部署phpmyadmin,加壓後的phpmyadmin包也要在httpd端設置一份(方便起見,合理的是把該httpd直接響應的放到httpd裏面,這裏爲了試驗方便就直接全部拷貝了),同時數據庫指向也要做修改
在httpd服務器端:
在/data/vhosts/www1裏面要有phpmyadmin目錄裏面放着解壓好的程序以及資源
在php-fpm服務器端:
在/data/vhosts/www1裏面要有phpmyadmin目錄裏面放着解壓好的程序以及資源
配置數據庫執向:
~】 vim vim /data/vhosts/www1/phpmyadmin/libraries/config.default.php
$cfg['Servers'][$i]['host'] = '192.168.10.3';
$cfg['Servers'][$i]['controluser'] = 'zou';
$cfg['Servers'][$i]['password'] = '123.comer';
mariadb服務端:
mysql -uroot -p
mariadb> grant alll on *.* to 'zou'@192.168.10.2' identified by '123.comer'; 允許192.168.10.2訪問
mariadb> flush privileges;
測試在瀏覽器器輸入http://172.16.1.1/phpmyadmin/index.php 之後輸入用戶zou密碼123.comer
同理,wordpress也是大致這樣的思路操作
在httpd 和 php服務其上面各有/data/vhosts/www2/wordpress
在php服務端
~】# vim/data/vhosts/www2/wordpress/wp-config-sample.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppasswd');
define('DB_HOST', '192.168.10.3');
~】# mv wp-config-sample.php wp-config.php
在mariadb服務端
~】# mysql -uroot -p
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'192.168.10.2' identified by 'wppasswd';
MariaDB [(none)]> flush privileges;
在瀏覽器上輸入 http://www2.zou.com/wordpress/wp-config.php
http://172.16.1.1/wordpress/wp-admin/index.php
這個時候可以給httpd,也就是phpmyadmin哪個網頁設置https了
httpd服務器上:
準備號申請的證書
~】# mkdir /etc/httpd/conf/.ssh;cd /etc/httpd/conf/.ssh
~】# (umask 077;openssl genrsa 4096 > http.key)
~】# openssl req -new -key http.key -out httpd.csr
Common Name (eg, your name or your server's hostname) []:www1.zou.com
~】# scp httpd.csr [email protected]:/tmp
在CA認證服務器上,簽證並派給web端(172.16.1.3)
~】# openssl ca -in /tmp/httpd.csr -out /etc/pki/CA/certs/httpd.crt
~】# scp /etc/pki/CA/certs/httpd.crt [email protected]:/etc/httpd/conf/.ssh/
http服務器上
安裝mod_ssl 支持http over ssl傳輸的模塊
~】#yum installmod_ssl
設置https
~】# vim /etc/httpd/conf.d/ssl.conf
修改裏面的部分內容 <VirtualHost _default_:443> DocumentRoot "/data/vhosts/www1/phpmyadmin" ServerName www1.zou.com:443 SSLCertificateFile /etc/httpd/conf/.ssh/httpd.crt SSLCertificateKeyFile /etc/httpd/conf/.ssh/http.key 加入下面內容: DirectoryIndex index.php ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/phpmyadmin/www1/$1 <Directory "/data/vhosts/www1"> Options None AllowOverride None Require all granted </Directory>
...... |
檢查配置文檔並重新加載服務
~】# mv vhost1.conf vhost1.conf.bak 這個配置文件已經沒有用了
~】# httpd -t
~】# systemctl reload httpd
(3)編譯安裝整體 lamp (在Centos6.7上進行相關操作)
[root@zou src]# ls 準備好安裝包
apr-1.5.0.tar.bz2 mariadb-5.5.46.tar.gz wordpress-4.3.1-zh_CN.zip
apr-util-1.5.3.tar.bz2 php-5.4.40.tar.bz2 xcache-3.2.0.tar.bz2
httpd-2.4.10.tar.bz2 phpMyAdmin-4.4.14.1-all-languages.zip
準備號可編譯環境以及相應軟件包
[root@zou apr-1.5.0]# yum groupinstall "Development Tools" -y
httpd用到的軟件包
[root@zou ~]# yum install pcre-devel openssl-devel libevent-devel
編譯安裝apr
[root@zou src]# tar xf apr-1.5.0.tar.bz2
[root@zou src]# cd apr-1.5.0
[root@zou apr-1.5.0]# ./configure --prefix=/usr/local/apr
[root@zou apr-1.5.0]# make -j 4
[root@zou apr-1.5.0]# make install
編譯安裝apr-utils
[root@zou src]# tar xf apr-util-1.5.3.tar.bz2
[root@zou src]# cd apr-util-1.5.3
[root@zou apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@zou apr-util-1.5.3]# make -j 4
[root@zou apr-util-1.5.3]# make install
編譯安裝httpd
[root@zou httpd-2.4.10]# ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
[root@zou httpd-2.4.10]# make -j 4
[root@zou httpd-2.4.10]# make install
導出頭文件
[root@zou httpd-2.4.10]# ln -sv /usr/local/apache24/include/ /usr/include/httpd
導出二進制文件 (操作此步驟要卸載原主機上的默認安裝httpd)
[root@zou httpd-2.4.10]# vim /etc/profile.d/httpd24
export PATH=$PATH:/usr/local/apache24/bin/
[root@zou httpd-2.4.10]# chmod +x /etc/profile.d/httpd24
[root@zou httpd-2.4.10]# source /etc/profile.d/httpd24
啓動httpd做測試
[root@zou httpd-2.4.10]# httpd -t
[root@zou httpd-2.4.10]# apachectl
安裝二進制格式的mysql
[root@zou src]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz
[root@zou src]# mv mariadb-5.5.46-linux-x86_64 /usr/local/mysql
[root@localhost local]# useradd -r mysql
[root@localhost local]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R root:mysql ./*
[root@localhostmysql]# ll
[root@localhost mysql]# mkdir -p /data/mariadb
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@zou mysql]# chkconfig mysqld on
[root@localhost mysql]# cpsupport-files/my-large.cnf /etc/my.cnf
[root@localhost ~]# vim /etc/my.cnf
添加三個選項:
datadir = /data/mariadb
innodb_file_per_table = ON
skip_name_resolve = ON
[root@localhost ~]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@localhost ~]# ss -ntlp 查看3306端口
[root@localhost ~]# /usr/local/mysql/bin/mysql 可以登錄即可
MariaDB [(none)]> grant all on *.* to 'zou'@'172.16.1.2' identified by '123.comer';
MariaDB [(none)]> create datebase wordpress;
MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'172.16.1.2' identified by 'wppasswd';
MariaDB [(none)]> flush privileges;
安裝php
[root@zou php-5.4.40]# yum install libxml2-devel gd-devel freetype-devel libmcrypt-deve libjpeg-devel
[root@zou php-5.4.40]# ./configure --prefix=/usr/local/php54 --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt --enable-fpm --with-config-file-path=/etc/php54.ini --with-config-file-scan-dir=/etc/php54.d
[root@zou php-5.4.40]# make -j 4
[root@zou php-5.4.40]# make install
[root@zou php54]# cp etc/php-fpm.conf.default etc/php-fpm.conf
[root@zou php54]# sbin/php-fpm
[root@zou php54]# ss -ntlp
[root@zou system]# cd /etc/httpd24/
設置主配置文件開啓cgi轉發
[root@zou httpd24]# vim httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/httpd24/vhost1.conf
Include /etc/httpd24/vhost2.conf
設置虛擬主機1
[root@zou ~]# vim /etc/htpd24/vhost1.conf
DirectoryIndex index.php
<VirtualHost 172.16.1.2:80>
ServerName www1.zou.com
DocumentRoot /data/vhosts/www1
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/vhosts/www1/$1
#ProxyRequests off
<Directory "/data/vhosts/www1">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
設置虛擬主機2
[root@zou ~]# vim /etc/htpd24/vhost2.conf
DirectoryIndex index.php
<VirtualHost 172.16.1.2:80>
ServerName www2.zou.com
DocumentRoot /data/vhosts/www2
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/vhosts/www2/$1
#ProxyRequests off
<Directory "/data/vhosts/www2">
Options None
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
查看配置文件格式時候有誤,並重新啓動系統(這裏編譯安裝沒有重新加載,需要額外單獨配置)
[root@zou htpd24]# /usr/local/httpd24/bin/httpd -t
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl stop
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl start
在 /data/vhosts/www1和www2目錄裏面準備好測試頁
<?php $conn=mysql_connect('localhost','zou','123.comer'); if($conn) echo "web1 is ok"; else echo fault; mysql_close(); phpinfo(); ?> |
[root@zou src]# mv phpMyAdmin-4.4.14.1-all-languages /data/vhosts/www1/phpmyadmin
[root@zou src]# mv wordpress /data/vhosts/www2/
[root@zou www1]# vim phpmyadmin/libraries/config.default.php
$cfg['Servers'][$i]['host'] = '172.16.1.2';
[root@zou www2]# cp wordpress/wp-config-sample.php wordpress/wp-config.php
[root@zou www2]# vim wordpress/wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppasswd');
define('DB_HOST', '172.16.1.2');
編譯安裝xcache緩存
[root@zou src]# cd xcache-3.2.0
[root@zou xcache-3.2.0]# /usr/local/php54/bin/phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
[root@zou xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php54/bin/php-config
[root@zou xcache-3.2.0]# make -j 4
[root@zou xcache-3.2.0]# make install
Installing shared extensions: /usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/
[root@zou xcache-3.2.0]# mkdir /etc/php54.d
[root@zou xcache-3.2.0]# cp xcache.ini /etc/php54.d/
[root@zou etc]# vim /etc/php54.d/xcache.ini
extension = /usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
重新啓動或者重新加載php-fpm,
[root@zou etc]# killall php-fpm
[root@zou etc]# /usr/local/php54/sbin/php-fpm
爲phpmyadmin搭建https
[root@zou etc]# cd /etc/httpd24/
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include /etc/httpd24/extra/httpd-ssl.conf
[root@zou httpd24]# vim extra/httpd-ssl.conf
<VirtualHost _default_:443> ServerName www1.zou.com DocumentRoot /data/vhosts/www1 ProxyRequests off DirectoryIndex index.php ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/data/vhosts/www1/$1 ErrorLog "/usr/local/apache24/logs/ssl_error_log" TransferLog "/usr/local/apache24/logs/ssl_access_log" SSLCertificateFile "/etc/httpd24/.ssh/httpd.crt" SSLCertificateKeyFile "/etc/httpd24/.ssh/http.key" <Directory "/data/vhosts/www1"> Options none AllowOverride None Require all granted </Directory> .....省略,基本保持文件內容不再動 |
[root@zou httpd24]# mkdir .ssh
[root@zou httpd24]# cp httpd.crt httpd.csr http.key .ssh
[root@zou httpd24]# /usr/local/apache24/bin/httpd -t
[root@zou httpd24]# /usr/local/apache24/bin/apachectl stop
[root@zou httpd24]# /usr/local/apache24/bin/apachectl start
************************************************************
========================================
*****************************************************************
(3)--2--編譯安裝LAMP 分離 (在centos7上操作)
三臺服務器爲了編譯安裝要安裝開發包組:Development Tools
httpd服務端安裝httpd服務
[root@localhost src]# yum install apr-devel apr-util-devel
[root@localhost src]# yum install pcre-devel openssl-devel libevent-devel -y
[root@localhost src]# tar xf httpd-2.4.10.tar.bz2
[root@localhost src]# cd httpd-2.4.10/
[root@localhost httpd-2.4.10]# ./configure --prefix=/usr/local/httpd24 --sysconfdir=/etc/htpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib --with-apr=/usr --with-apr-util=/usr
[root@localhost httpd-2.4.10]# make -j 4
[root@localhost httpd-2.4.10]# make install
[root@localhost httpd24]# /usr/local/httpd24/bin/apachectl start
[root@localhost httpd24]# ps aux | grep httpd 測試
mariadb客戶端編譯安裝服務
(這裏實際上並算不上是編譯安裝,mariadb壓縮包解壓完之後就可以安裝,二進制格式安裝)
[root@zou src]# tar xf mariadb-5.5.46-linux-x86_64.tar.gz
[root@zou src]# mv mariadb-5.5.46-linux-x86_64 /usr/local/mysql
[root@localhost local]# useradd -r mysql
[root@localhost local]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R root:mysql ./*
[root@localhostmysql]# ll
[root@localhost mysql]# mkdir -p /data/mariadb
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --datadir=/data/mariadb
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# support-files/my-large.cnf /etc/my.cnf
[root@localhost ~]# vim /etc/my.cnf
添加三個選項:
datadir = /data/mariadb
innodb_file_per_table = ON
skip_name_resolve = ON
[root@localhost ~]# /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!
[root@localhost ~]# ss -ntlp 查看3306端口
[root@localhost ~]# /usr/local/mysql/bin/mysql 可以登錄即可
MariaDB [(none)]> grant all on *.* to 'zou'@'192.168.10.%' identified by '123.comer';
MariaDB [(none)]> flush privileges;
在其他192.168.10網段的主機上測試看時候可以成功連接,連接完成則繼續後續操作
[root@haizei src]# mysql -uzou -h192.168.10.3 -p
在單獨一臺服務器上最後編譯安裝php
[root@haizei src]# yum install mariadb mariadb-devel httpd-devel
[root@haizei src]# yum install libxml2-devel gd-devel freetype-devel libmcrypt-devel
[root@haizei php-5.4.40]# mkdir /usr/lib/mysql
[root@haizei php-5.4.40]# cp /usr/lib64/mysql/* /usr/lib/mysql/
[root@haizei php54]# ./configure --prefix=/usr/local/php54 --with-mysql=/usr --with-openssl --with-mysqli=/usr/bin/mysql_config --enable-mbstring --enable-xml --enable-sockets --with-freetype-dir --with-gd --with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt --enable-fpm --with-config-file-path=/etc/php54/php.ini --with-config-file-scan-dir=/etc/php54/php.d
[root@haizei php-5.4.40]# make -j 2
[root@haizei php-5.4.40]# make install
[root@haizei php54]# cd /usr/local/php54
[root@haizei php54]# cp etc/php-fpm.conf.default etc/php-fpm.conf
[root@haizei php54]# vim etc/php-fpm.conf
listen = 192.168.10.2:9000
[root@haizei php54]# sbin/php-fpm 啓動服務
[root@haizei php54]# ss -ntlp 查看監聽的服務
httpd服務器上
[root@zou system]# cd /etc/htpd24/
設置主配置文件開啓cgi轉發
[root@zou htpd24]# vim httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
Include /etc/htpd24/vhost1.conf
Include /etc/htpd24/vhost2.conf
設置虛擬主機1
[root@zou ~]# vim /etc/htpd24/vhost1.conf
DirectoryIndex index.php <VirtualHost 172.16.1.1:80> ServerName www1.zou.com DocumentRoot /data/vhosts/www1 #ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/www1/$1 <Directory "/data/vhosts/www1"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> |
設置虛擬主機2
[root@zou ~]# vim /etc/htpd24/vhost2.conf DirectoryIndex index.php <VirtualHost 172.16.1.1:80> ServerName www2.zou.com DocumentRoot /data/vhosts/www2 #ProxyRequests off ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/www2/$1 <Directory "/data/vhosts/www2"> Options None AllowOverride None Require all granted </Directory> </VirtualHost> |
查看配置文件格式時候有誤,並重新啓動系統(這裏編譯安裝沒有重新加載,需要額外單獨配置)
[root@zou htpd24]# /usr/local/httpd24/bin/httpd -t
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl stop
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl start
準備部署phpmyadmin和wordpress;同樣因爲是動靜資源分離,這個時候,還是要httpd端和php端都要有相應資源,這裏爲了方便就把整個程序包給拷貝了
httpd端服務器
[root@zou phpmyadmin]# pwd
/data/vhosts/www1/phpmyadmin 保障程序包到位了
php服務端
[root@haizei phpmyadmin]# pwd
/data/vhosts/www1/phpmyadmin
[root@haizei phpmyadmin]# vim libraries/config.default.php
$cfg['Servers'][$i]['host'] = '192.168.10.3';
$cfg['Servers'][$i]['user'] = 'zou';
$cfg['Servers'][$i]['password'] = '123.comer';
http服務端準備wordpress
[root@zou wordpress]# pwd
/data/vhosts/www2/wordpress
php服務端準備wordpress
[root@haizei wordpress]# pwd
/data/vhosts/www2/wordpress
[root@haizei wordpress]# cp wp-config-sample.php wp-config.php
[root@haizei wordpress]# vim wp-config.php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppasswd');
define('DB_HOST', '192.168.10.3');
mysql服務端創建數據庫以及授權
[root@localhost ~]# /usr/local/mysql/bin/mysql
MariaDB [(none)]> create database wordpress;
MariaDB [(none)]> grant all on wordpress.* to 'wpuser'@'192.168.10.%' identified by 'wppasswd';
MariaDB [(none)]> flush privileges;
爲phpmyadmin設置https
httpd服務端
[root@zou htpd24]# vim httpd.conf
LoadModule ssl_module modules/mod_ssl.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
Include /etc/htpd24/extra/httpd-ssl.conf
#Include /etc/htpd24/vhost1.conf
[root@zou htpd24]# vim extra/httpd-ssl.conf
<VirtualHost _default_:443>
DocumentRoot "/data/vhosts/www1/phpmyadmin"
ServerName www1.zou.com:443
#ServerAdmin [email protected]
ErrorLog "/usr/local/httpd24/logs/vhost_ssl_error_log"
TransferLog "/usr/local/httpd24/logs/vhost_ssl_access_log"
LogLevel warn
SSLEngine on
SSLCertificateFile "/etc/htpd24/.ssh/httpd.crt"
SSLCertificateKeyFile "/etc/htpd24/.ssh/http.key"
DirectoryIndex index.php
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.10.2:9000/data/vhosts/www1/phpmyadmin/$1
<Directory "/data/vhosts/www1">
Options None
AllowOverride None
Require all granted
</Directory>
[root@zou htpd24]# mv vhost1.conf vhost1.bak
[root@zou htpd24]# /usr/local/httpd24/bin/httpd -t
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl stop
[root@zou htpd24]# /usr/local/httpd24/bin/apachectl start
準備設置xcache
lftp 172.16.0.1:/pub/Sources/sources/php> mget xcache-3.2.0.tar.bz2
[root@zou src]# tar xf xcache-3.2.0.tar.bz2
[root@haizei src]# cd xcache-3.2.0/
這個時候在裏面是沒有相應的configure執行文件的,需要先phpsize把其鉤住
[root@haizei xcache-3.2.0]# /usr/local/php54/bin/phpize
之後你會發現這個裏面出現了很多文件configure也有了
[root@haizei xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php54/bin/php-config
[root@haizei xcache-3.2.0]# make -j 4
[root@haizei xcache-3.2.0]# make install
Installing shared extensions: /usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/
配置xcache
[root@haizei xcache-3.2.0]# mkdir /etc/php54/php.d -p
[root@haizei xcache-3.2.0]# cp xcache.ini /etc/php54/php.d
[root@haizei xcache-3.2.0]# vim /etc/php54/php.d/xcache.ini
extension = /usr/local/php54/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
重啓php服務
(4)ab測試不同網站分析
對於相同網頁,在3.5G內存,4核的環境下,ab的壓力測試結果爲每秒響應量
下面的圖爲在相同環境下,測試http與https和有無緩存的傳輸速率(內網測試,非生產環境,僅供參考)
下圖是在不同的情況下安裝的,用ab壓力測試工具測試得出的大致結果,因爲在搭建的時候用到的不同服務器之間會有些差距所以,在結果上可能不盡如人意,測試也僅供參考(本圖測試的網頁爲https://172.16.1.2/phpmyadmin/index.php)
下圖爲相同環境下,請求index.php資源,併發量一定的情況下,隨着請求量的變化而出現的大致情況
下圖爲相同請求數量下的不同併發量的反映情況,測試內容爲index.php網頁測試文件