我可以安全地将Composer创建的Laravel项目移动到另一个目录吗?

时间:2015-04-25 17:59:26

标签: php laravel composer-php

我意外地通过Composer在user/name中安装了我的Laravel项目,而不是htdocs文件夹。

  1. 我可以将项目复制/粘贴到htdocs文件夹吗?
  2. 或者我应该首先卸载项目,然后再通过Composer再次创建新应用程序?

3 个答案:

答案 0 :(得分:6)

通常,使用Composer创建的项目自包含,并且不依赖于它在文件系统上的位置(我不是特别熟悉Laravel,但我没有任何理由怀疑这里有不同的行为)。您可以毫无问题地移动/复制它们。

关于移动目录后插件无法加载的担忧:看看Composer如何生成它的自动加载器类映射(下面只是一个简短的摘录):

<?php

// autoload_classmap.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'File_Iterator' => $vendorDir . '/phpunit/php-file-iterator/src/Iterator.php',
    'File_Iterator_Facade' => $vendorDir . '/phpunit/php-file-iterator/src/Facade.php',
    'File_Iterator_Factory' => $vendorDir . '/phpunit/php-file-iterator/src/Factory.php',
    'PHPUnit_Exception' => $vendorDir . '/phpunit/phpunit/src/Exception.php',
    // ...

正如您所看到的,自动加载器没有连接到任何固定的文件系统路径,因此即使是Composer自动生成的类加载器文件也可以在文件系统中轻松移动。

答案 1 :(得分:2)

我确实移动了它,它意外地破坏了,无法通过端点访问任何数据。 修复,在新项目中;

  1. 确保将上一个项目文件夹中的所有文件复制到新文件夹中。特别是.env文件。
  2. 在新文件夹中,在终端中运行composer install
  3. 然后运行php artisan key:generate以在新文件夹的.env文件中生成新密钥。
  4. 这对我来说很好。

答案 2 :(得分:1)

如上所述,请确保移动所有文件,包括隐藏文件(例如:.env)

我必须清除配置缓存:

 php artisan config:cache

为了安全清除其他缓存

 php artisan cache:clear