【问题标题】:How to properly duplicate a working Laravel 4 project如何正确复制工作中的 Laravel 4 项目
【发布时间】:2013-04-09 19:37:03
【问题描述】:

我有来自 Laravel 的 github repo 的最新 Laravel 4 beta 5 版本。

我已经构建了一个简单的 Web API,它运行良好。我想将项目复制到另一个文件夹并继续从副本中处理它。但是,当我尝试这样做时,我收到以下错误消息:

InvalidArgumentException
Driver [native] not supported.

/Users/tolga/Sites/l4api-copy/bootstrap/compiled.php
    Line 10908: throw new \InvalidArgumentException("Driver [{$driver}] not supported.");

这是我为了复制项目所做的:

[/Users/tolga/Sites] $ cp -R l4api l4api-copy
[/Users/tolga/Sites] $ chmod -R 755 l4api-copy

没用,我试过了:

[/Users/tolga/Sites] $ chmod -R 777 l4api-copy/app/storage

还是不行,尝试运行composer dump-autoload:

[/Users/tolga/Sites] $ cd l4api-copy
[/Users/tolga/Sites/l4api-copy] $ composer.phar dump-autoload
 Generating autoload files

[/Users/tolga/Sites/l4api-copy] $

同样的错误。我还尝试删除 app/storage 文件夹并重新创建它。

[/Users/tolga/Sites/l4api-copy] $ rm -Rf app/storage
[/Users/tolga/Sites/l4api-copy] $ mkdir app/storage
[/Users/tolga/Sites/l4api-copy] $ chmod -R 777 app/storage/

这是一个全新的错误:

ErrorException

Warning: file_put_contents(/Users/tolga/Sites/l4api-copy/bootstrap/../app/storage/meta/services.json):
failed to open stream: No such file or directory in
    /Users/tolga/Sites/l4api-copy/bootstrap/compiled.php line 5507

        Line 5507: return file_put_contents($path, $contents);

清空app/storage 文件夹后,我还再次运行composer.phar dump-autoload 命令。

最后,我也试过composer.phar install

[/Users/tolga/Sites/l4api-copy] $ composer.phar install
 Loading composer repositories with package information
 Installing dependencies from lock file
 Nothing to install or update
 Generating autoload files

[/Users/tolga/Sites/l4api-copy] $

以上都没有帮助。我究竟做错了什么?复制工作项目的正确方法是什么?

【问题讨论】:

    标签: laravel laravel-4 composer-php


    【解决方案1】:

    在向 laravel/laravel 存储库添加 recent commit 之后,引入了新的会话驱动程序 native。从您的错误外观来看,您应该更新您的应用程序框架(laravel/laravel 的克隆开发分支),删除您的 bootstrap/compiled.php 文件并重新运行 composer update 以获取最新的框架更改。

    在复制项目方面,您应该复制所有除了vendor 目录,然后在新位置运行composer install。您可以复制 vendor 目录,但最好运行全新安装并让 composer 转储新的自动加载。

    我还看到 Taylor 提到了清理您的 app/storage/sessions 目录。删除里面的所有文件。

    【讨论】:

    • 哇,那次提交是在 3 小时前。在复制之前,我已经提取并合并到我的工作应用程序中,它仍然有效。但我会检查是否应用了更改。谢谢。
    • 我第一次在我的工作应用程序中运行composer update,它因同样的错误而中断(驱动程序 [native]...)。然后根据您的建议,我删除了bootstrap/compiled.php 并重新运行作曲家。现在它可以工作了。复制它也有效。谢谢你。我猜从 git 获取和合并并不能正确更新它。
    • 仅供参考;为了复制项目,我复制了所有内容,设置了权限,并删除了app/storage/sessions 目录。一切正常。
    • 是的,bootstrap/compiled.php 文件在您部署时非常有用。对于本地开发,我会避免使用它,因为它会引起一些麻烦。有一个补丁删除了composer update 之前的文件,但它已被删除。请注意它,除非您正在部署应用程序,在这种情况下,您应该在运行 composer updated 之前将其删除。
    猜你喜欢
    • 2017-01-19
    • 1970-01-01
    • 2013-08-31
    • 2023-03-22
    • 2017-05-19
    • 2020-01-22
    • 2019-11-02
    • 1970-01-01
    • 2014-10-09
    相关资源
    最近更新 更多