2013-10-23 30 views
8

我試圖運行passenger-install-apache2-module命令,我不斷收到此錯誤:阿帕奇httpd.h中文件丟失MacOSX上升級(**更新了約塞米蒂**)

ext/apache2/mod_passenger.c:25:10: fatal error: 'httpd.h' file not found

不知道是什麼在我升級到小牛之前,我的本地開發環境一直很好 - 我必須更新XCode並卸載/重新安裝乘客寶石。

我嘗試在/etc/apache2目錄中創建httpd.h,並粘貼this但沒有起作用。

我不知道如何替換此文件

+0

httpd.h應該位於/ usr/include/apache2中。我不確定發生了什麼事情,也許Apple的更新過程破壞了一些東西。需要更多的調查。也許你可以聯繫Apple? – Hongli

+0

完全一樣的情況,完全一樣的問題。 – dangerousdave

+0

你不能隨意複製粘貼一個隨機httpd.h。內容必須與您實際運行的Apache版本完全匹配。 – Hongli

回答

26

我有同樣的錯誤。您需要:

  1. Update/install xcode.
  2. 運行xcode-select --install從命令行重新安裝命令行工具。

它爲我工作,希望你也可以!

更新還註釋掉行:

Include /private/etc/apache2/extra/httpd-vhosts.conf

所以一旦我的註釋去掉,這一切都加載正常。

**更新YOSEMITE **

在你/etc/apache2/httpd.conf文件,你需要改變:

<Directory /> AllowOverride none Require all denied </Directory>

要:

<Directory /> AllowOverride none Require all granted </Directory>

+0

謝謝@Sean,現在下載命令行工具,但這是我在安裝Mavericks後下載更新後在XCode中檢查的第一件事情,將會報告結果。 – martincarlin87

+0

Phusion Passenger的安裝工作,只是將行添加到我的Apache配置中,但我的localhost仍然只是說'它的工作!'所以只需要解決這個問題。謝謝你的幫助。 – martincarlin87

+0

我遇到過這個問題是因爲我使用的是我的httpd.conf註釋掉的虛擬主機文件。我只需要取消註釋。 – Sean

2

在小牛升級幾個配置文件保存爲以前和安裝包括更換:

/etc/apache2/httpd.conf~previous 
/etc/group~previous 
/etc/php.ini.default-5.2-previous 
/etc/sshd_config~previous 
/etc/syslog.conf~previous 
0

另一個相關的問題,是/usr/share/httpd/build/config_vars.mk你可以看到,CC設置不正確的事,和CC應讀取CC =/usr/bin/cc,同樣CPP應讀取CC =/usr/bin/cc -E