2014-03-26 81 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

相关问题