http://os.51cto.com 2008-02-25 14:56 crccw
Linux公社 我要評論(0) ·
摘要:Linux安裝我就不多說了,N早前就裝好了的,最近開始學(xué)習(xí)php,,自然要有個本地測試環(huán)境,,但安裝AMP的過程還是感覺比較艱難的,,特地些出來,,與大家分享。 ·
Oracle幫您準(zhǔn)確洞察各個物流環(huán)節(jié) Linux安裝我就不多說了,,N早前就裝好了的,,最近開始學(xué)習(xí)php,自然要有個本地測試環(huán)境,,但安裝AMP的過程還是感覺比較艱難的,,特地些出來,與大家分享,。 編者注:LAMP就是Linux+apache+mysql+php的縮寫,。 先在apache的官方站上下載httpd-2.2.6,解壓后開始編譯,,注意要使用dso ./configure --enable-so 第一次安裝的時候我就忘了make install,老是不成功,,安裝以后可以使用以下命令啟動和停止apache /usr/local/apache2/bin/apachectl start /usr/local/apache2/bin/apachectl stop 正常的話訪問127.0.0.1會出現(xiàn)It works的字樣,,不同系統(tǒng)可能會有差別,。停掉apache,開始安裝mysql,,因為php編譯中需要指定mysql路徑,,所以先裝這個。先要建立賬號: useradd mysql groupadd -g mysql mysql 編譯過程大同小異 ./configure 然后進(jìn)行設(shè)置 /usr/local/mysql/scripts/mysql_install_db
--user=mysql chown -R root /usr/local/mysql 然后就可以啟動數(shù)據(jù)庫了 /usr/local/mysql/bin/mysqld_safe --user=mysql 再運行mysql時可能會提示出錯 ERROR 2002 (HY000): Can't connect to local
MySQL server through socket '/tmp/mysql.sock' 這種情況,,有可能是selinux造成的,,也有可能是mysql.sock在別處,搜索以后在/tmp下做個連接就可以了 ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs \ --with-mysql=/usr/local/mysql make 如果你要裝zlib之類的自己在編譯選項中加入就可以了. 安裝完后啟動apache,,不料提示出錯 Document root must be a directory 上gg搜索了半天,,得知這個是selinux造成的。 檢查 avc message,,查看 /var/log/messages文件,,發(fā)現(xiàn)有類似以下內(nèi)容的這樣一段: hostname kernel: audit(1098222899.827:0):
avc: \ 果然是SELinux的新特性搞的鬼。我把目錄或文件設(shè)成了user_home_t類型,,因此apache的進(jìn)程沒有權(quán)限,,無法訪問。針對 Apache的進(jìn)程所使用的SELinux target policy規(guī)定了apache的進(jìn)程只能訪問httpd_sys_content_t類型的目錄或文件,。 解決辦法: 很簡單,,把目錄或文件的策略類型改成 httpd_sys_content_t 就可以了 使用root用戶 # chcon -t httpd_sys_content_t 目錄名或文件名 然后可以用 ls -laZ 命令查看文件目錄的策略類型。然后配置httpd.conf,,這方面的內(nèi)容網(wǎng)上也比較多,,我也懶得打了,就此完工,,mysql以后在解決吧 |
|