新聞中心
我們提供的服務有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、淶源ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的淶源網(wǎng)站制作公司
實驗環(huán)境 CentOS 7, lamp (php-fpm)
要求:(1) 三者分離于三臺主機;
(2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
(3) xcache
規(guī)劃 172.18.105.110 上運行http服務器
172.18.250.157 運行數(shù)據(jù)庫
172.18.253.26 運行php-fpm程序
我提前做好了DNS 兩臺A記錄172.18.105.110 對應的FQDN 為www1.stu05.com www2.stu05.com
也提前做好了一個CA服務器
centos7搭建http默認就是2.4
1.在172.18.105.110上yum install httpd -y 注:此時php是作為程序獨立程序運行
在172.18.250.157 yum install mariadb.server -y 安裝數(shù)據(jù)庫
在172.18.253.26 yum install php-fpm php-MySQL php-mbstring -y
systemctl start httpd
擴展:2.4的http支持fastcgi,如果要使用把php替換成php-fpm
2.在172.18.105.110上 關閉中心主機的vim /etc/httpd/conf/httpd.conf #DocumentRoot "/var/www/html"
3.在172.18.105.110上和172.18.253.26配置http端虛擬主機站點目錄,和后端php動態(tài)數(shù)據(jù)站點目錄,以便轉(zhuǎn)發(fā)請求
mkdir -pv /web/vhosts/www1
mkdir -pv /web/vhosts/www2
4.在172.18.105.110上配置基于FQDN的虛擬主機 vim /etc/httpd/conf.d/vhosts
DirectoryIndex index.php--------------定義php運行的默認主頁面
http2.4基于FQND的虛擬主機省了NameVirtualHost命令
ServerName www1.stu05.com
DocumentRoot "/web/vhosts/www1"
ProxyRequests Off 關閉正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.253.26:9000/web/vhosts/www1/$1 注:http服務器通過方向代理把cgi的請求轉(zhuǎn)發(fā)給 172.18.253.26的PHP程序
AllowOverride None
Options None
Require all granted
ServerName www2.stu05.com
DocumentRoot "/web/vhosts/www2" ------因為wordpress程序會自動從www2里找到index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.105.110:9000/web/vhosts/www2/wordpress/$1
AllowOverride None
Options None
5.在172.18.253.26上 vim /etc/php-fpm.d/www.conf
listen = 172.18.253.26:9000 php服務程序需要監(jiān)聽在能夠被外部訪問的sokcet
listen.allowed_clients = 172.18.105.110 允許哪個前端http訪問
6. 在172.18.253.26上 創(chuàng)建session目錄,并確保運行php-fpm進程的用戶對此目錄有讀寫權限;
# mkdir /var/lib/php/session
# chown apache.apache /var/lib/php/session
7.測試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的連接是否正常
172.18.250.157上 以管理員登錄mysql,并授權遠程登錄用戶
CREATE DATABASE wpdb; 創(chuàng)建數(shù)據(jù)庫
(1) GRANT ALL ON testdb.* TO testuser@'172.18.%.%' IDENTIFIED BY 'testpass';
注:GRANT授權 在172.16.0.0/16網(wǎng)段的主機通過testuser遠程訪問testdb的所有表
(2) FLUSH PRIVILEGES 刷新立即生效
可查看用戶:SELECT USER();
(3)關閉mysql登錄時候用戶名的反解
vim /etc/my.cnf 配置文件中[mysqld]后面加入skip_name_resolve = ON
然后重載service mysqld reload
172.18.105.110中vim /web/vhosts/www1 和 /web/vhosts/www1
放在index.php中后,運行 http://172.18.105.110
$conn = mysql_connect('172.16.100.67','testuser','testpass');
if ($conn)
echo "OK";
else
echo "Failure";
?>
lamp環(huán)境就成功了。
總結:
任何開源程序需要連接到數(shù)據(jù)庫的,在測試lamp連接數(shù)據(jù)庫ok的情況下,如果是遠程連接,則需要創(chuàng)建一個得到授權的遠程連接的用戶,而workdpress不僅需要創(chuàng)建一個數(shù)據(jù)庫,還需要一個得到授權的遠程連接的用戶。
遠程主機登錄數(shù)據(jù)庫 define('DB_HOST', '172.18.250.157'); 本地主機登錄數(shù)據(jù)庫define('DB_HOST', '127.0.0.1');
本地數(shù)據(jù)庫root登錄如果有密碼 mysql -uroot -pxwj4611
如果本地數(shù)據(jù)庫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、執(zhí)行mysql或者如果本地root已經(jīng)設定密碼mysql -uroot -pxwj4611 ------CREATE DATABASE wpdb;創(chuàng)建數(shù)據(jù)庫 大多數(shù)開源的程序會自動創(chuàng)建數(shù)據(jù)庫
3、GRANT ALL ON wpdb.* TO wpuser@'172.18.%.%' IDENTIFIED BY 'wppress'
注:給這個軟件授權一個用戶可以遠程連接數(shù)據(jù)庫,如果是本地連接127.0.0.1
4、vim vp-config.php 編輯配置文件
/** WordPress數(shù)據(jù)庫的名稱 */
define('DB_NAME', 'wpdb');
/** MySQL數(shù)據(jù)庫用戶名 */
define('DB_USER', 'wpuser');
/** MySQL數(shù)據(jù)庫密碼 */
define('DB_PASSWORD', 'wppasswd');
/** MySQL主機 */
define('DB_HOST', '172.18.105.110'); 如果是本地連接loaclhost 或者127.0.0.1
測試:www1.stu05.com/wordpress 壓力測試 ab -n 1000 -c 100 http://www2.stu05.com/wordpress/index.php -c模擬的并發(fā)數(shù) -n模擬的總請求數(shù)
本地測試的沒有考慮帶寬,服務器可能沒有跑滿帶寬跑滿了。Requests per second: 8.85 [#/sec] (mean) 每秒鐘處理的請求數(shù)
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 注:方便回滾
我需要事先為其連接到數(shù)據(jù)庫后準備一個授權的遠程鏈接的用戶:以遍可以登錄
(1)、執(zhí)行mysql或者如果本地root已經(jīng)設定密碼mysql -uroot -pxwj4611
(2)、GRANT ALL ON wpdb.* TO myuser@'172.18.%.%' IDENTIFIED BY 'myuser'
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! */ -------隨機數(shù)貼里面
$cfg['Servers'][$i]['host'] = '172.18.250.157'; 遠程連接指向數(shù)據(jù)庫的主機
測試:www1.stu05.com/pma
壓力測試 ab -n 1000 -c 100 http://www1.stu05.com/pma/index.php -c模擬的并發(fā)數(shù) -n模擬的總請求數(shù)
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虛擬主機;
DirectoryIndex index.php
ServerName www1.stu05.com
DocumentRoot "/web/vhosts/www1/myadmin"
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://172.18.105.110:9000/web/vhosts/www1/myadmin/$1
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/httpd.crt--------------指向證書的位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key------------指向公鑰的位置
AllowOverride None
Options FollowSymLinks-----------------------------允許訪問鏈接文件的源文件
Require all granted
網(wǎng)站標題:CentOS7 基于fastcgi的lamp
URL標題:http://www.ef60e0e.cn/article/pojdoc.html