lamp配置

博客作業:

(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服務器派發證書 ip172.16.1.3

生成私鑰CA服務器自己的私鑰,準備給自己做個根證書

[root@haizei ~]# cd /etc/pki/CA

[root@haizei CA]# (umask 077;openssl genrsa 2048 > private/cakey.pem)

cakey.pemCA服務的自己的私鑰

##因爲這裏是建立私有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   查看330680端口

~#  mysql -uroot -p  查看可以登錄mysql服務端

測試phphttpdmysql是否已經連接

<?php

   $conn=mysql_connect('192.168.10.3','zou','123.comer');

   if($conn)

echo ok;

   else

echo fault;

   mysql_close();

   phpinfo();

?>

wKiom1eQfOKjfW6ZAABB3fAbAWw351.png

安裝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

wKioL1eQfYDjeuInAAB-2_GQbHg785.png

準備安裝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 

wKioL1eQfmiw2kOIAABPtoNoY8I919.png


在上面的圖中,我們要按照它的提示,把框中的文件內容保存到wp-config.php程序文件中,後續我們使用

http://www2.com/wordpress 就可以正常訪問了

wKiom1eQfmiRIO-TAABCQjA_sH8382.png

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    查看330680端口

~#  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();

?>

wKioL1eQgGHizWFKAABcmLmZoJI091.png

wKioL1eQgGHwLjELAAALiUeT6lM645.png

準備phpmyadmin網頁部署,下載phpMyAdmin-4.0.5-all-languages.zip 壓縮包,並解壓縮,這裏要說明一下:

因爲服務器httpphp分離,也就是說靜態和動態分離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

wKiom1eQgGHh6pcrAAFVRm1X7DU956.png

 

同理,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


wKiom1eQgGLBK9FgAAByVfJwk7M206.png

http://172.16.1.1/wordpress/wp-admin/index.php

wKiom1eQgGPyLY42AAC2rYOdjcM932.png

這個時候可以給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

wKioL1eQgGLh-u-mAAB3EnJp2_w467.png

wKiom1eQgGLT2F2hAAFxgyfS05I214.png


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 

wKioL1eQgkqQI967AAAjqRSU-kE521.png

安裝二進制格式的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/www1www2目錄裏面準備好測試頁

<?php

   $conn=mysql_connect('localhost','zou','123.comer');

   if($conn)

echo "web1 is ok";

   else

echo fault;

   mysql_close();

   phpinfo();

?>


wKioL1eQgkqA0-ThAABP1DIV8V4825.png

[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';

wKioL1eQgkqC4dNqAABvO0rn2fM974.png

[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');

wKiom1eQgkrTpYfGAABvaaby47s897.png

wKiom1eQgkqzMpnfAACaZKg4zlU850.png

編譯安裝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

wKioL1eQgkqimcKKAAAVLdqb0Lw065.png

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

wKioL1eQgkvRejdsAACRYkQGi_k042.png

wKiom1eQgkugsGVSAAJm218f20k981.png

************************************************************

========================================

*****************************************************************

 

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

wKiom1eQhDqBz-HbAAB1xP9dl1U433.png

準備部署phpmyadminwordpress;同樣因爲是動靜資源分離,這個時候,還是要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';

wKioL1eQhDqyP9NOAABoQsFVydA126.png

wKiom1eQhDvxrpKwAADdDE5bj74797.png

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;

wKioL1eQhDuRAmV2AABvmd6kb0g553.png

wKiom1eQhDuigmFaAAA4bLoHbeo955.png

wKioL1eQhDuiyhMEAAB3YzoJXII059.png

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

wKioL1eQhDvwz1tSAABnm83XhDI792.png

wKiom1eQhDuySBW_AAFva7pcyH8305.png

準備設置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服務

wKiom1eQhDzBBrYJAAARkEgI0lA428.png


4ab測試不同網站分析

對於相同網頁,在3.5G內存,4核的環境下,ab的壓力測試結果爲每秒響應量

wKiom1eQhdzRar9hAACYLrggxaE011.png

下面的圖爲在相同環境下,測試httphttps和有無緩存的傳輸速率(內網測試,非生產環境,僅供參考)

wKiom1eQhdzxIBO2AABeSm1NQlQ411.png

下圖是在不同的情況下安裝的,用ab壓力測試工具測試得出的大致結果,因爲在搭建的時候用到的不同服務器之間會有些差距所以,在結果上可能不盡如人意,測試也僅供參考(本圖測試的網頁爲https://172.16.1.2/phpmyadmin/index.php)

wKioL1eQhdzDRa18AABNNMTdpGg013.png

下圖爲相同環境下,請求index.php資源,併發量一定的情況下,隨着請求量的變化而出現的大致情況

wKioL1eQhd3SiMNmAACvt1wMeCY374.png

下圖爲相同請求數量下的不同併發量的反映情況,測試內容爲index.php網頁測試文件

wKiom1eQhd3Al6PsAABCiKyzzaQ449.png





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章