簡體   English   中英

部署時使用PHP CodeIgniter 404

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM