PHP開發Apache伺服器配置

來源:互聯網
上載者:User

照此配置流程,絕對一路暢通,可保無虞。

昨天弄了個PHP小程式,想在本地跑一下測試,可是工作電腦沒有安裝環境,於是下載了一個wamp,一路暢通,Apache、Mysql、PHP就全有了。啟動wamp服務,在瀏覽器裡輸入“http://localhost”,訪問正常,跳出wamp首頁。於是,下面想把自己的CrashServer網站配置到Apache裡,可以通過虛擬網域名稱在本地訪問測試,結果遇到不少問題,今日一通Google研究,終於任督二脈全通。

1、首先,Apache的設定檔是httpd.conf和httpd-vhosts.conf,我們先來看下wamp安裝好後,httpd.conf的預設配置。

  1. DocumentRoot "d:/wamp/www/"
  2. AllowOverride none
  3. Require all denied
  4. Options Indexes FollowSymLinks
  5. AllowOverride all
  6. Require local
  7. # Virtual hosts
  8. #Include conf/extra/httpd-vhosts.conf
複製代碼

要想通過虛擬網域名稱訪問網站,就需要配置一下httpd-vhosts.conf。那麼需要啟動httpd-vhosts.conf,因為預設是關閉的,所以把設定檔中#Include conf/extra/httpd-vhosts.conf前面的#去掉。於是httpd-vhosts.conf啟用了,那麼我們去編輯httpd-vhosts.conf這個檔案。

2、httpd-vhosts.conf檔案的位置,在apache目錄下的conf/extra,上面的Include conf/extra/httpd-vhosts.conf其實已經告訴了你它的位置。

在這個檔案中,添加配置我上面的CrashServer網站:

  1. NameVirtualHost *:80
  2. DocumentRoot "D:/wamp/www/CrashServer"
  3. ServerName crash.com
複製代碼

首先,我的CrashServer是放在wamp/www下面的,這是wamp預設的網站目錄,其次,我想在本地測試的時候,用crash.com就能訪問到CrashServer,於是配置如上。

在這裡,為了讓我們能通過crash.com訪問本地網站,所以需要修改hosts檔案,添加 127.0.0.1 crash.com。

到這裡,配置完畢了,於是重啟Apache,輸入crash.com訪問,結果正常訪問。但是,當以localhost訪問時,原來出現的是wamp的首頁,現在卻顯示CrashServer了,於是還要在hosts裡追加 127.0.0.1 localhost,在httpd-vhosts.conf中,追加上localhost的網站配置,現在看起來就是這樣了:

  1. NameVirtualHost *:80
  2. DocumentRoot "D:/wamp/www"
  3. ServerName localhost
  4. DocumentRoot "D:/wamp/www/CrashServer"
  5. ServerName crash.com
複製代碼

OK,到此基本可以結束了,網站都配置好了,看起來非常非常的簡單。但是對於我卻不是這樣的,我昨天碰到了如下問題。

首先,我的CrashServer一開始不是放在wamp/www下的,而是放在E:\360Downloads下面的,於是就有了如下配置:

  1. DocumentRoot "E:/360Downloads/CrashServer"
  2. ServerName crash.com
複製代碼

這沒錯吧,路徑都對,虛擬網域名稱也對,可是訪問的時候,卻提示403 Forbidden,沒有許可權。於是Google,哦,知道了原來是要給CrashServer目錄加上許可權,於是修改配置如下:

  1. DocumentRoot "E:/360Downloads/CrashServer"
  2. ServerName crash.com
  3. Order Allow,Deny
  4. Allow from All
  5. Require all granted
複製代碼

重啟Apache,訪問正常了。首先,新增的Directory,是可以在httpd.conf中添加的,也可以在httpd-vhosts.conf中添加,我認為在後者裡面添加更好,配置內容更加清晰明了,項目目錄許可權跟隨著項目網站配置。在上面新增的Directory中,我們給了360Downloads下的CrashServer目錄加了許可權,允許訪問了,所以就不再提示403 Forbidden了。

這個問題,現在寫起來是這麼的簡單輕鬆,可問題出現的時候,卻很讓人困擾和鬱悶。對於項目在wamp/www之外的,需要給項目目錄許可權才可,注意:

  1. Order Allow,Deny
  2. Allow from All
  3. Require all granted
複製代碼

這三條缺一不可,這是配置了允許外部電腦訪問伺服器網站。

3、今天問題解決後,想到通過同一區域網路下的其他裝置訪問我的網站,於是用手機,在瀏覽器中輸入我的電腦的ip,不能訪問,再次Google,原來需要修改在httpd.conf中的配置:

  1. Options Indexes FollowSymLinks
  2. AllowOverride all
  3. Require local
複製代碼

其中,Require local,沒Google出來,但看名字知道,是只允許本地訪問,於是改成Require all granted,允許所有請求訪問,手機就可以訪問了。

參考,http://roteg.iteye.com/blog/1465380,這裡是訪問驗證配置的解釋。

這裡,有篇老外寫的配置博文,很好,https://www.kristengrote.com/blog/articles/how-to-set-up-virtual-hosts-using-wamp#wamp-step-7,但是唯獨一點,在他的Step 7的時候,給項目目錄添加許可權:

  1. Order Deny,Allow
  2. Allow from all
複製代碼

卻恰恰少了Require all granted,導致最後還是403 Forbidden,搞得我非常鬱悶。

---------------------------------------------------------------------------------補充 2015-07-13-------------------------------------------------------------------------------------------------

感謝評論中唯一的評論者的提醒:Require all granted這是2.4上邊才需要的,2.2不需要。

這就可以理解了為什麼Google出來的技術文章,有些提到require all granted,而有些則沒有。

---------------------------------------------------------------------------------end 補充 2015-07-13--------------------------------------------------------------------------------------------

此配置是在如下wamp環境進行的:

至此,在Apache下配置PHP網站,全部完成。

以上所述就是本文的全部內容了,希望大家能夠喜歡。

伺服器配置, PHP, Apache
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.