2011-07-08 90 views
3

我有一個CodeIgniter項目,至今只能遠程運行(它建立在服務器上......不是我的主意!)。我從GitHub將它從我的本地機器上運行(運行OS X 10.6,我已經安裝並配置了MySQL和PHP)。將CodeIgniter配置爲在Mac OS X上使用Apache本地運行

當我轉到主頁(http:// localhost)時,它工作正常(連接到數據庫,運行所有PHP,向我顯示正確的頁面)......但是當我點擊任何鏈接時(例如,產品上的鏈接轉到http://localhost/product/details/464)我得到一個空白頁面或「未找到請求的URL/product/details/464在此服務器上未找到。」即刻。

就好像在我的堆棧Apache或PHP或CodeIgniter的某個地方放棄了球並且沒有意識到它應該解釋這個URL並將其指向正確的控制器等,而是試圖提供它,就好像它是一個靜態文件。我可能會在這裏丟失一些明顯的東西,但我一直試圖排除故障幾個小時而沒有運氣。任何幫助將非常感激!

+3

我從來沒有真的用CodeIgniter上當,所以我不會回答。但是,該框架是否使用任何'.htaccess'文件重定向到前端控制器?如果是這樣,當你把它放到你的本地機器時,它們是否在你的github倉庫中? – cspray

+0

http://localhost/index.php/product/details/464是否行之有效? – Vamsi

+0

.htaccess文件位於git倉庫中,是否有其他全局.htaccess文件可能會將其搞亂?我將嘗試按照GregSchoen下面的建議使用MAMP,然後再報告。 – gohnjanotis

回答

2

.htaccess是您的問題,它沒有正確重定向。

在Mac中Apache/PHP的默認安裝是奇怪的。 CodeIgniter和Apache沒有識別.htaccess文件。使用MAMP [http://www.mamp.info/en/index.html]比Hosted環境更穩定。

+0

感謝那MAMP提示格雷格!我浪費了很多時間讓MySQL無緣無故地在我的Mac上進行設置,但現在幸運的是,一切都正常運行在MAMP上! – gohnjanotis

3

您是否在config.php文件中設置了base_url和index_page?如果你的Apache沒有運行mod_rewrite,你需要啓用mod_write並確保你有.htaccess文件,否則將你的index_page設置爲「index.php」,以便CodeIgniter在沒有mod_rewrite的情況下工作。

$config['base_url']  = 'http://yourlocalurl/'; 
$config['index_page'] = 'index.php'; 
1

的Mac設置:

$config['base_url']  = 'http://localhost:8000'; 
$config['index_page'] = 'index.php'; 

終端:php -S localhost:8000

如果不工作,確保Apache是​​運行...
終端:sudo apachectl start
然後再次運行:php -S localhost:8000