本文軟體的下載下傳位址就不列出,主要是記錄安裝時的步驟及相關問題的處理方法;基于安裝方法目前有兩種,一種是利用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,如需轉載請自行聯系原作者