2014-03-26 108 views
0

我已經在我的生產服務器上成功安裝了laravel版本4.1.24(使用softaculous),現在我想將我的應用程序從本地機器移動到生產服務器(cPanel類型的網絡託管),但我有一個時間的煩人找出如何做到這一點。我在網上發現了幾個論壇,討論類似的問題,但沒有任何幫助我。我需要移動哪些文件?我可以通過FTP移動它們嗎?我不熟悉任何其他方法。將Laravel 4文件移動到生產服務器FTP(cPanel)

更多詳細信息:當我複製「應用程序」和「公共」文件夾中的所有重要文件時,我收到一個錯誤,它無法識別我的模型類。當我複製所有內容時(包括「供應商」和「引導程序」,它仍然不能識別我的模型類)。之前有人必須這樣做。你做了什麼?

更新:
我越來越接近這個問題。我開始與我的兩個地方和生產環境的全新安裝和移動下列文件夾/改寫文件:
/應用/控制器
/應用/型號
/應用/視圖

而且移動/改寫應用程序/過濾器.php文件。除了「公共」文件夾之外,它至今涵蓋了我的整個應用程序。

我再複製一個只有一個路由超簡裝應用程序/ routes.php文件文件:

Route::get('/', function() 
{ 
$users = User::where('id', '<' ,'100')->whereNotNull('first_name')->get(); 

    foreach($users as $user){ 
     echo $user->first_name . '<br>'; 
    } 
}); 

這個工作在本地和生產都如預期!然後我更改爲以下路徑:

Route::get('/', function() 
{ 
$cars = Car::where('id', '<' ,'100')->get(); 

    foreach($cars as $car){ 
     echo $car->name . '<br>'; 
    } 
}); 

這只是正常對當地環境,但生產它返回一個「類‘汽車’未找到」錯誤。這是我的問題,我認爲user2094178是在他/她提到運行「composer dump-autoload」時出現的。任何想法如何用cPanel遠程執行該操作?

更新#2
我發現這個線程:How to avoid using php composer dump-autoload with laravel 4?。這似乎解決了完全相同的問題。除了我所有的模型已經在「模型」文件夾中,因此行app_path().'/models',應該已經加載我的類。對?

而且,我已經找到了「引導/ autoload.php」文件,該文件說,這在註釋:

「作曲提供了方便,自動生成的類加載器爲我們的應用程序......我們」我們會在這裏把它寫入腳本中,這樣我們就不用擔心手動加載任何類。「

其次是:

require __DIR__.'/../vendor/autoload.php'; 

我很害怕,因爲我不知道我在做什麼在那裏修改這個文件。這導致我還有一些其他文件缺乏方向。有任何想法嗎?

更新3:
看起來像Laravel 3有這樣的事情:http://three.laravel.com/docs/loading。我需要找出如何做到這一點的Laravel 4

+0

爲什麼你需要Laravel單獨安裝在本地生產,爲什麼不安裝在你的本地安裝Laravel,然後通過FTP傳輸整個項目。 – har2vey

+0

@ har2vey您是否嘗試過轉移一切?我很好奇它是否適合你,因爲它對我沒有用。我想知道是否有東西是特定於我的本地機器需要改變。任何想法可能是什麼? ...但我在智慧的結尾,所以我相信明天我會再試一次。 – sterfry68

+0

你有同樣的本地和生產服務器目錄結構嗎?如果是的話,你的生產PHP服務器是否與laravel 4的最低要求兼容?如果你使用的是cPanel和FTP,那很可能不是。 – user2094178

回答

0

當我接收來自laravel未找到控制器類,這意味着我忘了運行composer dump-autoload

爲了避免這種情況,請打開文件app/start/global.php並證明您在ClassLoader::addDirectories array之內具有所需的路徑。

它好工作給我,而不需要composer dump-autoload。由於它不掃描子目錄,因此當您開始按目錄組織模型和控制器時,可能會後悔使用它。

如果你願意考慮使用命名空間從composer dump-autoload中解脫出來,請閱讀以下內容:

https://github.com/daylerees/autoload-demo

+0

讓我的託管公司啓用SSH並運行'composer dump-autoload'工作。謝謝!關於你的其他建議:我所有的模型類都位於'app/start/global.php'' ClassLoader :: addDirectories數組''app/model'目錄下(不在子目錄中)。它仍然不適合我。我會看看你在下面發佈的帖子。謝謝你的幫助! – sterfry68

1

您必須複製所有文件,並小心通過conf /本地,馬貝你有你的地方一些配置,是不是在你的GENRAL文件。

記住,你需要安裝

PHP> = 5.3.7 mcrypt的PHP擴展 PHP JSON擴展

如果你去上班開發Web應用程序,你應該學會一個版本控制軟件, gitmercurial

使用git,將項目移至生產環境與在shell中鍵入命令一樣簡單,並且可以在另一個位置保存代碼副本,如githubbitbucket

你也有更復雜的部署軟件,如capistrano,他們給你部署的全面控制。

即使你可以使用PHP作爲服務地方像http://fortrabbit.com/

我建議你任何這比使用FTP等等。

+0

謝謝。 har2vey還提到了mcrypt擴展。我不熟悉那個文件。我該怎麼處理它?另外,服務器運行php版本5.3.28。那麼這是行不通的?最後,我一直在避免學習像git這樣的版本控制軟件,但聽起來我真的應該去那裏。我知道從長遠來看,它會得到回報,但我一直在避免前期投資。 – sterfry68

+0

如果您有ssh訪問權限,請嘗試'php -i | grep mcrypt'來檢查,否則寫一個像info.php這樣的文件並添加'<?php phpinfo(); ?>'並從瀏覽器中檢查它。 如果你使用laravel或其他類似的框架,它是一個必須學習的git,我也建議你把你的項目放在一個帶有ssh acces的主機中,而且你應該學習一些linux控制檯的基礎知識。 – angoru

+0

所以我應該檢查一下文件是否存在?它應該在哪裏?與git和linux的好建議,但我認爲這不會解決我眼前的問題。 – sterfry68

相關問題