您好,登錄后才能下訂單哦!
LAMP:
php和mysql建立關聯:
php-mysql
#yum install php-mysql yum安裝的時候才用,編譯安裝不需要
php連接mysql測試腳本:
#vim index.php
<?php
$conn = mysql_connect("HOST","USERNAME","PASSWORD") or die("connect err: ".mysql_error());
echo "MySQL conn OK!";
?>
httpd+php
CGI
Modules
FastCGI/fpm
測試LAMP:
1.測試php
#cd /usr/local/httpd/htdocs
#vim index.html
<?php
phpinfo()
?>
#mv index.html index.php
編輯完成后打開網頁,若能看到php相關信息則說明成功。
2.測試php和mysql
#vim index.php
<?php
$conn = mysql_connect("HOST","USERNAME","PASSWORD") or die("connect err: ".mysql_error());
echo "MySQL conn OK!";
?>
編輯完成后若顯示conn ok則表示數據路連接正常。
3.啟用虛擬主機
#vim /etc/httpd/httpd.conf
#DocumentRoot /usr/local/httpd/htdocs 注釋中心主機配置
Include /etc/httpd/extra/httpd-vhost.conf 取消注釋,啟動虛擬主機的配置文件。
LoadModule log_config_modules/mod_log_config.so 啟動日志配置模塊。
#vim /etc/httpd/extra/httpd-vhost.conf
<VirtualHost 192.168.123.10:80>
ServerName www.test.com
DocumentRoot "/www/test.com"
ErrorLog "/var/log/httpd/test.com_error_log"
CustomLog "/var/log/httpd/test.com_access_log"
combined
<Directory "/www/test.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirualHost>
<VirtualHost 192.168.123.10:80>
ServerName www.apk.org
DocumentRoot "/www/apk.org"
ErrorLog "/var/log/httpd/apk.org_error_log"
CustomLog "/var/log/httpd/apk.org_access_log" common
<Directory "/www/apk.org">
Options none
AllowOverride none
Require all granted
</Directory>
</VirualHost>
#mkdir /www/{test.com,apk.org}
#mkdir /var/log/httpd/{test.com,apk.org}
#chmod 755 -R /www
3.讓httpd支持https,可以對單獨的虛擬主機進行設置。
注意:一個ip地址上只能建立1個支持ssl的主機。
#vim /etc/httpd/httpd.conf
LoadModule ssl_module modules/mod_ssl.so
Include /etc/httpd/extra/httpd-ssl.conf
#vim /etc/httpd/extra/httpd-ssl.conf
<VirtualHost * :443>
ServerName www.apk.org
DocumentRoot "/www/apk.org"
ErrorLog "/var/log/httpd/apk.org_error_log"
TransferLog "/var/log/httpd/apk.org_access_log" common
<Directory "/www/apk.org">
Options none
AllowOverride none
Require all granted
</Directory>
</VirualHost>
證書服務器上:
1.生成私鑰:
#cd /etc/pki/CA
#(umask 077;openssl genrsa -out private/cakey.pem 2048)
2.編輯openssl配置文件:
#vim ../tls/openssl.cnf
dir=/etc/pki/CA 修改CA默認目錄。
[ req_distinguished_name ]
修改國家、份等等信息,后續再次申請就無需輸入。
#mkdir certs crl newcerts 根據配置文件的內容創建相關的文件夾和文件
#touch index.txt
#echo 00 > serial
3.生成自簽證書:
#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
Common Name: ca.test.com 這里填CA的主機名。
6.簽署證書:
#openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -dyas 3650
httpd服務器上:
4.生成證書請求:
#cd /etc/httpd/
#mkdir ssl
#cd ssl
#(umask 077;openssl genrsa 2048 > httpd.key ) 生成私鑰。
#openssl req -new -key httpd.key -out httpd.csr 生成證書簽署請求。
Common Name: 虛擬主機的名稱。
5.將生成的證書請求文件復制到證書服務器:
#scp httpd.scr root@192.168.100.4:/tmp
7.將頒發的證書復制到本機:
#scp 192.168.100.4:/tmp/httpd.crt ./
#ll
httpd.crt
httpd.csr
httpd.key
4.若php以fpm模式安裝,則還需要對httpd進行如下配置:
啟用模塊支持:
#vim /etc/httpd/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
配置虛擬主機支持fpm:
#vim /etc/httpd/extra/httpd-vhost.conf
在每個虛擬主機內添加如下內容
ProxyRequests Off
關閉httpd的正向代理功能。
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/DIR/DOCUMENT_ROOT/$1
類似于ProxyPass URI,將請求的地址轉換到另外一臺主機上的地址。此行為被稱為反向代理。
此參數支持正則表達式,把以.php結尾的文件請求發送到php-fpm進程,php-fpm至少需要知道運行的目錄和URI,所以這里直接在fcgi://127.0.0.1:9000后指明了這兩個參數,其它的參數的傳遞已經被mod_proxy_fcgi.so進行了封裝,不需要手動指定。
例如:
<VirtualHost *:80>
DocumentRoot "/www/test.com"
ServerName test.com
ServerAlias www.test.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/www/test.com/$1
<Directory "/www/test.com">
Options none
AllowOverride none
Require all granted
</Directory>
</VirtualHost>
壓力測試:
ab(apache benchmark)
工具位置:
httpd安裝目錄下的bin文件夾下。
usr/local/httpd/bin/ab
#ab [OPTION] HOSTNAME|IP:PORT/FILE
[OPTION]
-c NUM 指定并發數,單次發起的請求個數。
-n NUM 請求的總個數。
-r 忽略錯誤信息
例如:
#ab -c 10 -n 100 http://www.test.com/index.php
注意:
測試所用的客戶端會有系統限制,默認linux允許單個進程同時訪問1000個文件。使用以下命令調整
#ulimit -n NUM
http_load
webbench
siege
LAMP優化:
通過vmstat命令觀察系統狀況,主要注意bi bo in cs
#vmstat 1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。