您好,登錄后才能下訂單哦!
CentOS 7, lamp (module)
要求:(1) 三者分離于兩臺主機;
(2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
(3) xcache
(4) 為phpMyAdmin提供https虛擬主機;
規劃: 172.18.105.110 上運行http服務器以及php后端腳本
172.18.17.191 運行數據庫
準備工作
我提前做好了DNS 兩臺A記錄172.18.105.110 對應的FQDN 為www1.stu05.com www2.stu05.com
1.在172.18.105.110上yum install httpd php php-mysql -y 注:此時php是作為httpd的模塊
在172.18.17.191 yum install mariadb.server -y 安裝數據庫
systemctl start httpd
擴展:2.4的http支持fastcgi,如果要使用把php替換成php-fpm
2.關閉中心主機的 #DocumentRoot "/var/www/html"
3.配置虛擬主機的根目錄
mkdir -pv /web/vhosts/www1
mkdir -pv /web/vhosts/www2
4.配置基于FQDN的虛擬主機 vim /etc/httpd/conf.d/vhosts
虛擬主機一
<VirtualHost 172.18.105.110:443>
ServerName www1.stu05.com
DocumentRoot "/web/vhosts/www1"
<Directory "/web/vhosts/www1">
AllowOverride None
Options None
Require all granted
</Directory>
</VirtualHost>
虛擬主機二
<VirtualHost 172.18.105.110:80>
ServerName www2.stu05.com
DocumentRoot "/web/vhosts/www2"
<Directory "/web/vhosts/www2">
AllowOverride None
Options None
</VirtualHost>
檢查語法httpd -t 時中間出現報錯:
httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
原因:httpd:不能可靠地確定服務器的完全限定域名,使用localhost.localdomain。設置' ServerName指令在全球范圍內抑制此消息
解決辦法:vim /etc/httpd/conf/httpd.conf 首先找到ServerName(約213行),將其設置為localhost:80
5.測試http的虛擬站點是否正常
vim /web/vhosts/www1 和 /web/vhosts/www1
vim index.html
www2站點 <b1>www2 ××× </b1> www1站點 <b1>www1 ××× </b1>
在瀏覽器里輸入www1.stu05.com www2.stu05.com ---------------此時本地dns已經指向本地
6.rpm -ql php 檢查 libphp5.so 模塊是否對應著httpd啟用的mpm模塊為prefork
注意:測試前查看php的庫是否和httpd的mpm的多道處理模塊是否匹配
rpm查看庫 rpm -ql php httpd查看啟用模塊 vim /etc/httpd/conf.modules.d/00-mpm.conf
php庫:libphp5.so 模塊:LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
php庫:libphp5-zts.so 模塊:LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule mpm_event_module modules/mod_mpm_event.so
7.測試httpd與php連通是否正常 vim /web/vhosts/www1 和 /web/vhosts/www1
vim index.php
php測試代碼
<?php
phpinfo();
?>
瀏覽器 http://www1.stu05.com http://www2.stu05.com
7.測試php與mysql-server的連接是否正常
以管理員登錄mysql,并授權遠程登錄用戶
CREATE DATABASE wpdb1; 創建數據庫
(1) GRANT ALL ON wpdb1.* TO wpuser1@'172.18.%.%' IDENTIFIED BY 'wpuser1';
注:GRANT授權 在172.16.0.0/16網段的主機通過testuser遠程訪問testdb的所有表
(2) FLUSH PRIVILEGES 刷新立即生效
可查看用戶:SELECT USER();
測試下遠程用戶是否可以登錄數據庫:mysql -uwpuser1 -h272.18.17.191 -pwpuser1
(3)關閉mysql登錄時候用戶名的反解
vim /etc/my.cnf 配置文件中[mysqld]后面加入skip_name_resolve = ON
然后重載service mysqld reload
分別放在index.php中后,運行 http://172.18.105.110
<?php
$conn = mysql_connect('172.16.100.67','testuser','testpass');
if ($conn)
echo "OK";
else
echo "Failure";
?>
lamp環境就成功了。
總結:
任何開源程序需要連接到數據庫的,在測試lamp連接數據庫ok的情況下,如果是遠程連接,則需要創建一個得到授權的遠程連接的用戶,而workdpress不僅需要創建一個數據庫,還需要一個得到授權的遠程連接的用戶。
遠程主機登錄數據庫 define('DB_HOST', '172.18.250.157'); 本地主機登錄數據庫define('DB_HOST', '127.0.0.1');
本地數據庫root登錄如果有密碼 mysql -uroot -pxwj4611
如果本地數據庫root沒有密碼mysql
8.第一個虛擬主機運行wordpress
cp wordpress-4.3.1-zh_CN.zip /web/vhosts/www1/
unzip wordpress-4.3.1-zh_CN.zip
ln -sv wordpress-4.3.1-zh_CN wordpress 然后cd /wordpress
1、cp wp-config-sample.php wp-config.php
2、執行mysql或者如果本地root已經設定密碼mysql -uroot -pxwj4611 ------CREATE DATABASE wpdb;創建數據庫 大多數開源的程序會自動創建數據庫
3、GRANT ALL ON wpdb.* TO wpuser@'172.18.%.%' IDENTIFIED BY 'wppress'
注:給這個軟件授權一個用戶可以遠程連接數據庫,如果是本地連接127.0.0.1
4、vim vp-config.php 編輯配置文件
/** WordPress數據庫的名稱 */
define('DB_NAME', 'wpdb1');
/** MySQL數據庫用戶名 */
define('DB_USER', 'wpuser1');
/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'wpuser1');
/** MySQL主機 */
define('DB_HOST', '172.18.17.191'); 如果是本地連接loaclhost 或者127.0.0.1
測試:www1.stu05.com/wordpress 壓力測試 ab -n 1000 -c 100 http://www2.stu05.com/wordpress/index.php -c模擬的并發數 -n模擬的總請求數
本地測試的沒有考慮帶寬,服務器可能沒有跑滿帶寬跑滿了。Requests per second: 8.85 [#/sec] (mean) 每秒鐘處理的請求數
9.第二個虛擬主機運行phpMyAdmin
準備工作: cp phpMyAdmin-4.4.14.1-all-languages.zip /web/vhosts/www1/
unzip phpMyAdmin-4.4.14.1-all-languages.zip
ln -sv phpMyAdmin-4.4.14.1-all-languages pma 注:方便回滾
我需要事先為其連接到數據庫后準備一個授權的遠程鏈接的用戶:以遍可以登錄
(1)、執行mysql或者如果本地root已經設定密碼mysql -uroot -pxwj4611
(2)、GRANT ALL ON wpdb.* TO myuser@'172.18.%.%' IDENTIFIED BY 'myuser'
為phpMyAdmin能夠連接數據庫修改配置文件
(1)cp config.sample.inc.php config.inc.php
(2)openssl ran -base64 15
(3)vim config.inc.php
$cfg['blowfish_secret'] = '46aJFLiLxmqO0qrdGqwx'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ -------隨機數貼里面
$cfg['Servers'][$i]['host'] = '172.18.17.191'; 遠程連接指向數據庫的主機
測試:www1.stu05.com/pma
壓力測試 ab -n 1000 -c 100 http://www1.stu05.com/pma/index.php -c模擬的并發數 -n模擬的總請求數
10、編譯安裝xcache
# yum install php-devel
# cd xcache-3.2.0
# phpize
# ./configure --enable-xcache --with-php-config=/usr/bin/php-config
# make && make install
# cp xcache.ini /etc/php.d/
重新啟動systemctl restart php-fpm
11、 為phpMyAdmin提供https虛擬主機;
<VirtualHost 172.18.105.110:443>
ServerName www1.stu05.com
DocumentRoot "/web/vhosts/www1/myadmin"
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/httpd.crt--------------指向證書的位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key------------指向公鑰的位置
<Directory "/web/vhosts/www1/myadmin">
AllowOverride None
Options FollowSymLinks-----------------------------允許訪問鏈接文件的源文件
Require all granted
</Directory>
</VirtualHost>
測試:本地主機指向dns
瀏覽器 https://www1.stu05.com http://www2.stu05.com/wordpress
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。