CentOS+Apache+Mysql+Php安裝及優化配置小記

餘二五發表於2017-11-16
     本文軟體的下載地址就不列出,主要是記錄安裝時的步驟及相關問題的處理方法;基於安裝方法目前有兩種,一種是利用RPM包安裝,一種原始碼編譯安裝;以下主要是以原始碼編譯安裝;因為原始碼安裝軟體的相互依賴性小,安裝方式用各種unix/linux系統,維護方便。如果想去除相關服務時,直接rm –rf目錄 即可;建議採用原始碼方式安裝; 

系統環境和需要的軟體: 
1、CentOS 

2、httpd-xxx.tar.gz 

3、php5-xxx.tar.gz 

4、mysql-xxx.tar.gz 

5、所有軟體安裝目錄/usr/local/ 

伺服器軟體安裝順序:Apache(httpd) –> Mysql –> PHP

Apache編譯安裝
[root@server src]# tar -zxvf /home/soft/httpd-2.0.63.tar.gz

[root@server src]# cd httpd-2.0.63/

[root@server httpd-2.0.63]#./configure –prefix=/usr/local/apache –enable-so 

[root@server httpd-2.0.63]# make clean; make 

[root@server httpd-2.0.63]## make install 

執行完以上命令後,執行 /usr/local/apache/bin/httpd -l檢查mod_so模組是否已編譯,如下圖:




Mysql編譯安裝

[root@server src]# tar -zxvf /home/soft/mysql-5.0.56.tar.gz

[root@server src]# cd mysql-5.0.56/

[root@server mysql-5.0.56]# ./configure –prefix=/usr/local/mysql

[root@server mysql-5.0.56]#make clean; make

[root@server mysql-5.0.56]#make install

[root@server mysql-5.0.56]#useradd mysql

[root@server mysql-5.0.56]#cp support-files/my-medium.cnf  /etc/my.cnf

[root@server mysql-5.0.56]#cd /usr/local/mysql

[root@server mysql]#./bin/mysql_install_db  –user=mysql //初始化資料庫

[root@server mysql]#chown -R root .

[root@server mysql]#chown -R mysql var

[root@server mysql]#chgrp -R mysql .

[root@server mysql]# ./bin/mysqld_safe –user=mysql &   啟動mysql

[root@server mysql]# ./bin/mysql –u root -p密碼為空,直接回車

PHP編繹安裝

[root@server src]# tar -zxvf /home/soft/soft/php-5.2.6.tar.gz

[root@server src]# cd php-5.2.6/

[root@server php-5.2.6]# ./configure –prefix=/usr/local/php 

-with-apxs2=/usr/local/apache/bin/apxs -with-mysql=/usr/local/mysql  //如果不先安裝mysql,這一步將會出錯

[root@server php-5.2.6]#make clean; make

[root@server php-5.2.6]#make install

[root@server php-5.2.6]#cp php.ini-dist /usr/local/php/lib/php.ini

在配置過程中,除了指定安裝目錄外,還有-with-apxs2和-with-mysql這兩個選項。-with-apxs2的作用是與 apache的工具apxs配合,產生模組檔案到目錄/usr/local/apache/modules/,同時也會自動在apache的配置檔案中寫入一行”LoadModule php5_module        modules/libphp5.so”;

接著需要把php與apache整合在一起,這個過程很簡單,由於在安裝php時已經完成了模組的載入,接下來只要在apache的配置檔案 httpd.conf加上”AddType application/x-httpd-php .php”一行就行了(注:.php前面有空格)。然後在目錄/usr/local/apache/htdocs下建立一個最簡單的php測試檔案,如下圖:


儲存退出後檢查一下apache配置檔案是否正確並啟動apache服務,如下:

[root@server ~]# /usr/local/apache/bin/httpd -t

Syntax OK

[root@server ~]# /usr/local/apache/bin/apachectl start

利用WINXP客戶端在瀏覽器輸入剛配置的這個伺服器的url,正常的話,將得到類似下圖的頁面,由於之前配置過DNS,因此這裡直接輸域名,並測試DNS是否正常工作;



測試PHP:


以上所有測試完成!

關於優化Apache的效能,需要對worker.c這個模組進行配置。不同配置、不同流量的伺服器需要有不同的設定方式,以達到效能最優化!這裡只是做簡單介紹:

/usr/local/apache/conf/httpd.conf


<IfModule worker.c>

ServerLimit 20

#伺服器允許配置的程式數上限。這個指令和ThreadLimit結合使用設定了MaxClients最大允許配置的數值。任何在重啟期間對這個指令的改變都將被忽略,但對MaxClients的修改卻會生效。

ThreadLimit 200

#每個子程式可配置的執行緒數上限。這個指令設定了每個子程式可配置的執行緒數ThreadsPerChild上限。任何在重啟期間對這個指令的改變都將被忽略,但對ThreadsPerChild的修改卻會生效。預設值是”64″.

StartServers 5

#伺服器啟動時建立的子程式數,預設值是”3″。

MinSpareThreads 50

#最小空閒執行緒數,預設值是”75″。這個MPM將基於整個伺服器監視空閒執行緒數。如果伺服器中總的空閒執行緒數太少,子程式將產生新的空閒執行緒。

MaxSpareThreads 250

# 設定最大空閒執行緒數。預設值是”250″。這個MPM將基於整個伺服器監視空閒執行緒數。如果伺服器中總的空閒執行緒數太多,子程式將殺死多餘的空閒執行緒。 MaxSpareThreads的取值範圍是有限制的。Apache將按照如下限制自動修正你設定的值:worker要求其大於等於 MinSpareThreads加上ThreadsPerChild的和

MaxClients 2000

# 允許同時伺服的最大接入請求數量(最大執行緒數量)。任何超過MaxClients限制的請求都將進入等候佇列。預設值是”400″,16 (ServerLimit)乘以25(ThreadsPerChild)的結果。因此要增加MaxClients的時候,你必須同時增加 ServerLimit的值。

ThreadsPerChild 100

#每個子程式建立的常駐的執行執行緒數。預設值是25。子程式在啟動時建立這些執行緒後就不再建立新的執行緒了。

MaxRequestsPerChild 10000

#設定每個子程式在其生存期內允許伺服的最大請求數量。到達MaxRequestsPerChild的限制後,子程式將會結束。如果MaxRequestsPerChild為”0″,子程式將永遠不會結束。

#將MaxRequestsPerChild設定成非零值有兩個好處:

#1.可以防止(偶然的)記憶體洩漏無限進行,從而耗盡記憶體。

#2.給程式一個有限壽命,從而有助於當伺服器負載減輕的時候減少活動程式的數量。

以上學習小記,如有不足之處,請博友們指教,THX。。。。。。

本文轉自 liang831002 51CTO部落格,原文連結:http://blog.51cto.com/leo0216/88422,如需轉載請自行聯絡原作者


相關文章