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

     本文軟件的下載地址就不列出,主要是記錄安裝時的步驟及相關問題的處理方法;基於安裝方法目前有兩種,一種是利用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。。。。。。


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