[英]PHP CodeIgniter 404 on deploy
Oooops我又做了。
我的網站在當地完美運作
我的開發機器是Windows WAMP2設置我的服務器是CentOS 5.5 APACHE 2.2 PHP5 seup
我在我已部署的codeigniter網站上獲得了404,我真的無法弄清楚出了什么問題,所以請幫我找出錯誤。
這是根網址。 我沒有設置dns所以它只是服務器的IP地址。 它在我上傳codeigniter之前顯示了標准的apache頁面。 我查看了配置文件,看起來沒問題。 可能是文件權限錯誤? 我在整個/ var / www / html目錄中設置了chmod o + rw。 httpd中的error_log沒有顯示任何內容
我已經嘗試過測試它是否是mod_rewrite模塊,但是我創建了一個帶有RewriteEngine ON的.htaccess文件的測試目錄,它沒有給我一個錯誤,所以不可能。
在codeigniter中我已經在配置中將log_threshold設置為4,但是我沒有得到任何日志消息,所以如果它是一個pre-> codeigniter錯誤我真的無法弄清楚,但我真的不認為它是,因為它正在加載我的錯誤視圖,仍然為什么沒有寫入任何日志,它是關於什么的?
任何幫助將非常感激,因為我正在冒煙讓這個工作......
更新感謝@jondavidjohn我發現直接命中控制器IE:
HTTP://addr/index.php/GeoController/markers/
將為我提供控制器特定的錯誤說:
無法找到您的模型“modelname”
已解決感謝@jondavidjohn和@timdream為我提供了解決這個問題的線索。 這是一個命名問題,我的文件名是camelcased,而且它們只能從我現在理解的那么小,所以ROUTE是無用的,因為它導致Site,但是應該導致站點,盡管我有一個站點。 php我不得不改變它和到site.php的路線
確保你在system/application/config/config.php
有正確的設置..特別注意
$config['base_url'] = "http://www.example.com";
確保您放入站點的根域,還要檢查路由配置並確保在system/application/config/routes.php
設置了正確的默認控制器
我最近開始使用全新安裝的codeignitor 3.0並且在我的開發服務器(Windows)上沒有問題,然后當我移動到我的實時服務器(Linux)時,我開始收到404錯誤。
這樣做的原因是,在3.0中,您應該將控制器/模型的第一個字母以及文件名大寫。
例如
class Test_model擴展CI_Model {
Test_model.php
希望這有助於一些人來到這里!
以供參考:
http://www.codeigniter.com/userguide3/installation/upgrade_300.html
$config['uri_protocol']
也可以發揮作用。 它默認為AUTO
,它會AUTO
查找包含實際URL的環境變量。
當我從mod_php為我的服務器切換到php-cgi時,我的網絡應用程序失敗了。 將配置更改為REQUEST_URI
可以解決問題。 我通過挖掘phpinfo()
輸出找到了閥門,你可以嘗試這樣做。
我的第一個賭注是你正在開發這個並修改.htaccess
文件。
但是,如果你從Windows - > Linux系統更改(dev on Win,prod on nix)那么你必須記住Controller名稱,如果Windows上的文件是“Home.php”,你使用“home .php“在配置中作為您的默認路由,然后它將失敗..因為沒有”home.php“文件。
Home.php != home.php
Linux區分大小寫。 檢查出來,這可能是一件簡單的事情,但可能會導致障礙。
由於缺乏細節,我只是在猜測。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.