天天看點

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

備注

上次因為配置失敗擱置一個月的zendFramework II重新被我翻出來再嘗試一次,6小時後成功了。

  • 先按照.pdf檔案中給的指導操作
  • 然後根據報錯進行修改(報錯修改内容太複雜,且原因過于簡單,隻是因為設定directory時少寫了根目錄的部分,是以就不詳細說明了)
  • 參考網頁
  • 心得

根據指導進行操作

安裝zendFramework需要系統中先安裝php和apache。   

使用指令檢視

php -v (如果沒安裝會提示沒有php這個指令,如果安裝好會顯示版本号)
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
apachectl -v (同理)
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

如果你的apache和我的一個版本,那就沒有httpd.conf這個東西,需要找apache2.conf

1、安裝composer

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

先建立一個項目檔案夾,然後使用cd 指令進入,在該目錄下運作高亮行下方的5個指令。

為避免輸入錯誤:

1 cd my/project/dir
2 git clone git://github.com/zendframework/ZendSkeletonApplication.git
3 cd ZendSkeletonApplication
4 php composer.phar self-update
5 php composer.phar install
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

我這個版本的ubuntu沒法直接用composer指令,隻能使用

php composer.phar +指令(需要先進到有composer.phar檔案的目錄)
           

composer提示我有更新後的2.0.9穩定版本,更新後顯示

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

這步我沒做,差別隻有一個–recursive

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

2、建立php

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

進入包含public檔案夾的目錄

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

看見 started 說明成功。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

需要設定一個虛拟主機指向public檔案,然後因為apache版本的不同,在我這個版本沒有httpd.conf檔案,所有配置檔案的資訊(或者介紹配置檔案的資訊)儲存在apache2.conf檔案中。

cd /etc/apache2
ls
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

檢視apache2.conf,并做相關修改。

vim apache2.conf  (如果不想打檔案名,可以按Tab鍵自動補全||如果權限不夠,在指令前加sudo 然後輸入登入密碼)
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

截圖内容描述了配置檔案的存放方式,可以粗略看看。

接下來,修改 apache2.conf 檔案,使其檔案目錄與2.3.2 Apache Setup步驟訓示一緻。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

//這個要留着,對根目錄進行通路控制(具體不知道,但隻要删掉就會報錯)

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

把其他用不着的條目注釋掉(最好别删,避免無法還原,+"#"注釋),然後仿照檔案中條目,最終效果類似上圖,添加相關參數,修改完後儲存退出。

//Directory裡寫public所在的整個目錄,具體每個條目的意思可以參看引用網站 3。

ubuntu vim編輯器使用參看引用網站4。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

編輯 000-default.conf 檔案,把用不到的條目注釋,并且添加新條目,改完儲存退出。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

在找這個檔案之前,先進目錄/etc/apache2/mods-enabled,找rewrite.load檔案,檢視是否啟用rewrtie子產品。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

如果有#,把#删掉,儲存退出(預設應該是啟用的)。

退出,去public目錄下找.htaccess檔案。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

//發現上圖沒有.htaccess檔案,這是因為.htaccess是隐藏檔案,使用

ls -a
           
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

檢視該檔案,對比内容進行修改。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題
解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

//内容基本一緻,不用改,退出準備下一步。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

退出後檢視 web.config檔案。

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

也差不多,不用改動。

重新開機Apache服務,因為版本不同,指令有變動。

sudo /usr/sbin/apache2ctl restart
           

重新開機後打開浏覽器,首頁:

解決在ubuntu18.04 apache2.4版本下搭建zendFramework II遇到的500 Internal Server Error問題

其他

/usr/sbin/apache2ctl -M  //可以檢視mod_rewrite 是否啟用
/etc/apache2$ vim envvars  //檢視環境變量
/var/log/apache2$ vim error.log  //檢視錯誤日志(如果報錯500 Internal Server Error)
           

參考網頁

1、Zend Framework2 入門教程:https://blog.csdn.net/xmlife/article/details/24578093 2、PHP内置Web Server探究(一)啟動Cli_Server:https://www.cnblogs.com/microlife/p/5216698.html 3、Apache 的 httpd.conf 詳解:https://blog.csdn.net/u010433704/article/details/51296326 4、新手入門之——Ubuntu上的編輯器之神Vi/Vim :https://www.cnblogs.com/cbqcbq69/p/8996885.html

心得

  1. 我進行的操作基本上都屬于知其然不知其是以然,隻是通過嘗試成功解決了問題,但并不能清晰地講明白為什麼能解決問題,也不能具體的指出每一步都是在做什麼,這是需要提高的地方,而且如果真的能改進這一點,就可以繞很多彎路,通過邏輯,而不是進行不知道會不會成功的嘗試,來解決問題。
  2. 所有的報錯都是有意義的,而且通常使用相對簡單的英文,可以嘗試閱讀并猜測計算機表達的内容,然後再上網搜尋相關問題。

繼續閱讀