2016-08-18 26 views
1

我遇到了Apache 2.4.18的問題(在OS X El Capitan 10.11.6上),我無法確定原因是什麼。我已經花了4天的時間來解決這個問題(包括在這裏搜索),但是我在扔毛巾,只是問。Apache配置,無法連接到本地主機

我在這裏沒有什麼經驗。在上個週末的一些指南之後,我試圖建立自己的系統,讓我在開發學習HTML/Javascript/PHP的過程中開發一個站點。遵循一些指南,我安裝了dnsmasq並嘗試配置httpd.conf和httpd-vhosts.conf。最初,localhost將我指向「It Works」頁面,我的虛擬主機home.dev和sites.dev也是如此。無論我做了什麼,我都無法將任何* .dev網站指向我的virtualdocumentroot中的實際index.html文件。

我已經試過

  • 添加home.dev/etc/hosts
  • 開啓了網絡共享
  • 經過防火牆 - 80端口是開放的
  • 更改的DocumentRoot在httpd.conf根在虛擬主機使用的文件
  • 嘗試了許多不同的httpd-vhosts.conf配置。
  • 在我的目錄經過報價 - 最初使用文本編輯他們是不同的,在崇高2.
  • 運行apachectl configtest改變 - 語法是好的

現在問題越來越嚴重。在處理配置文件試圖解決這個問題時,我打破了一些東西,我不知道是什麼。意外覆蓋原件文件夾中的httpd.conf文件。試圖使用httpd.conf文件,我發現搜索默認,不起作用。在這一點上,我很高興剛纔看到「它工作的」再......

  • 本地主機,127.0.0.1 home.dev等都開設「不可用」或拒絕連接頁面。
  • 正在運行sudo netstat -an | grep ':80'什麼也沒有返回,所以從我瞭解的情況來看,雖然在httpd.conf中有一個明確的語句listen 80,但看起來apache並沒有在80上進行監聽。
  • 運行apachectl configtest - 語法還行
  • 運行sudo apachectl restart - 似乎開始
  • 讀的地方,有人提到的/ var /日誌/ Apache2的可能缺失而引起的錯誤,它的存在。錯誤日誌沒有任何東西

不知道我是否應該在這裏發佈我的.conf,有什麼建議嗎?

謝謝!

更新8/20:

至今還沒有找到一個解決方案,但覺得我在進步:

  • ping localhost是成功的(從127.0.0 64個字節。1)
  • curl -v http://localhost/在所有嘗試(:: 1,fe80 :: 1,127.0.0.1等)上返回'連接被拒絕'。

某處,看起來Apache正在運行(對嗎??),我只是不明白在哪裏或如何弄清楚。

  • sudo lsof -i -P | grep -i "listen"不會返回在*:80上監聽的任何內容。也看不到任何聽起來像apache的進程(只有launchd,dnsmasq,mysqld,kdc和Skype)。

  • 我的hosts文件設置爲這樣:

    127.0.0.1本地主機
    255.255.255.255 broadcasthost
    :: 1本地主機
    FE80 :: 1%lo0的本地主機

  • 的httpd.conf (先前聽80,這個改變沒有解決任何問題)

    Listen 0.0.0.0:80

  • 在錯誤日誌中沒有錯誤,因爲3天前,當我不小心刪除了服務器名httpd.conf中(加回):)

是否有一個的netstat/lsof的命令,我可以進入並找出端口apache正在監聽?也許這會讓我在這裏開始正確的方向。

+0

我會嘗試「ps auxw | grep httpd」其中httpd是二進制文件,看看它是否真的開始。如果不試圖找出爲什麼它還沒有開始,那麼Mac OS X中的「strace」或其他類似工具可能會有所幫助。 –

+0

'ps auxw | grep httpd'返回PID 4488,狀態U +。似乎正在運行。 – Severniy

+0

然後運行'lsof -p 4488'它應該說明它正在使用哪個端口。也很高興知道您用來運行服務器的命令的確切程度。 –

回答

3

更新:

對於別人誰遇到這種情形,希望我能我花了試圖解決這一問題的一週拯救你。

經過控制檯找出httpd的「ReportCrashes」(即使sudo apachectl start似乎工作,運行命令時再次我會得到一個service already loaded消息。)在搜索我碰到https://discussions.apple.com/thread/6602475?tstart=0來到屑。

聽起來很簡單,註釋掉httpd.conf中加載的PHP模塊LoadModule php5_module libexec/apache2/libphp5.so修復了一切。我現在可以訪問本地主機。在我爲自己做出的改變而產生的困惑中,我認爲它是在.conf文件中,但沒有原始的恢復或看到問題。明確的建議 - 在更改.conf文件之前進行備份。

現在,當然,我不能使用PHP,所以如果任何人有任何提示,那就太棒了。 libphp5.so存在於/ libexec/apache2中,但我也在/ usr/local/php5 /(版本問題)中發現了libphp7.so

+0

你好,之後就像你說的那樣。它解決了我的麻煩,我仍然可以使用PHP。在我的Mac上,有一個'/ etc/apache2/other/+ php-osx。在'/ usr/local/php5/libphp7.so'上加載'php7_module'的conf文件可以幫助嗎? – user3875388