天天看點

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。。。。。。

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