2014-12-02 73 views
0

我正在運行MacPro G5 w/10.5.8。我跑了: sudo port selfupdate然後運行: sudo端口升級過時 當它完成後,我重新啓動並且apache2壞了,不再提供PHP文件。如果我替換httpd.conf文件,它將提供html文件。 我終於放棄了,並恢復了備份,並且機器再次運行。問題是我有第二臺機器,我做了同樣的事情,不想經過相同的過程。我已經閱讀了幾篇關於從Kirk Roybal How to do a clean reinstall with macports?中卸載/重新安裝Macports的文章,但並未說明這個過程是否會破壞或重置/ opt/local /目錄的內容。尤其是MySQL數據庫和htdocs內容。有誰知道這個過程是連接還是破壞性的?當然,在嘗試任何事情之前,我會做好所有事情的備份。重新安裝Macports是否刪除/銷燬/ opt/local /目錄結構的內容?

解決方案: 我通過使php53安裝工作,而不是倒退來得到它的工作。下面是我所做的:

sudo的端口選擇--set PHP php53 (設置MacPorts的使用php53而不是PHP5)

sudo的港口安裝(檢查,以確保安裝php53-apache2handler)

sudo的港口安裝php53-apache2handler (這是不是和你的可能不是要麼)

一旦這樣做斯塔灌裝

PHP -v (檢查正在運行的PHP版本)

CD /選擇/本地/ Apache2的/模塊

須藤的/ opt /本地/ Apache2的/ bin中/ APXS -a -e -n PHP mod_php53.so (激活阿帕奇內PHP)

這應該追加

個的LoadModule php5_module模塊/ mod_php53.so

您/opt/local/apache2/conf/httpd.conf文件(現在檢查)

也將有這樣

的LoadModule php5_module模塊/ mod_php5.so

註釋出來或將其刪除所以不與新的干涉安裝

還應移動mod_php53.so的副本

/選擇/本地/ Apache2的/模塊

如果沒有的話,請參閱php53-apache2handler上面安裝。

檢查是否存在錯誤 httpd.conf文件

/選擇/本地/ Apache2的/斌/的httpd -S

最後,創建/編輯php.ini文件,告訴的Apache2如何連接到MySQL數據庫

CD /選擇/本地/ etc/php53

須藤CP的php.ini-生產的php.ini (用於生產機器使用的開發開發機)

須藤CP的php.ini php.ini.bak

添加默認路徑插座了php.ini

pdo_mysql.default_socket = /選擇/ local/var/run/mysql5/mysqld.sock (可能因MySQL版本而異。檢查到/ opt /本地的/ var /運行目錄,如果不知道)

mysql.default_socket = /選擇/本地的/ var /運行/ MYSQL5/mysqld.sock

mysqli.default_socket = /選擇/本地/var/run/mysql5/mysqld.sock

如果您在連接到MySQL時遇到問題,請檢查上述路徑中的拼寫錯誤。相信我,它會爲你節省大量的時間! 如果一切都按計劃進行,您應該能夠重新啓動機器,進行測試以確保所有端口自動啓動並且應該正常工作。

+0

您可能已經安裝了php5,但它已被棄用,並且最近自動遷移到php53。但是,如果您希望繼續工作,則需要調整Apache配置文件。或者,您也可以在其他php5x端口中獲得較新的PHP版本。對於mod_php,你需要php5x-apache2handler。 – neverpanic 2014-12-03 09:43:58

+0

原來我問的是錯誤的問題。 @關於php5被棄用的洞察力使我意識到我不需要重新安裝舊的,但想出如何使php53安裝工作。 – 2014-12-09 15:44:51

回答

0

您添加的文件(例如:MySQL數據庫)不會被更新銷燬。如果您修改由MacPorts管理的文件(例如:它們在「端口內容」中列出),那麼這些修改將被更新破壞。

一些項目安裝配置文件作爲示例,並讓用戶製作真實的配置文件,以便在更新時不會對其進行破壞。它看起來像apache2端口遵循這種模式。它會安裝/opt/local/apache2/conf/original/httpd.conf,然後在激活時將其複製到/opt/local/apache2/conf/httpd.conf的實際位置,但前提是該文件不存在。