【问题标题】:Can I safely move a Composer-created Laravel project to another directory?我可以安全地将 Composer 创建的 Laravel 项目移动到另一个目录吗?
【发布时间】:2015-07-04 07:30:23
【问题描述】:

我不小心通过 Composer 将我的 Laravel 项目安装在 user/name,而不是 htdocs 文件夹中。

  1. 我可以将项目复制/粘贴到htdocs 文件夹吗?
  2. 还是我应该先卸载项目,然后通过 Composer 重新创建一个新应用?

【问题讨论】:

  • 通常不会将 Laravel 项目放在 Web 根目录中,因为 Laravel 的 /public 文件夹应该是项目的 Web 根目录
  • 嗯,是的,也许我可以直接对该文件夹进行新的 Web 根访问 :( 但是,我可以将其复制粘贴到另一个目录吗? :( 恐怕插件或其他东西可以'不被调用,因为我改变了我的目录:(

标签: php laravel composer-php


【解决方案1】:

一般来说,使用 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 自动生成的类加载器文件也可以轻松地在文件系统中移动。

【讨论】:

  • 哇,非常感谢您提供的详细信息和简单易懂的答案!我现在明白了 thnx :)
【解决方案2】:

我确实移动了我的,但它不小心坏了,无法通过端点访问任何数据。 修复它,在新项目中;

  1. 确保将之前项目文件夹中的所有文件复制到新文件夹中。尤其是.env 文件。
  2. 在新文件夹中,在终端中运行composer install
  3. 然后运行php artisan key:generate在新文件夹的.env文件中生成一个新密钥。

这对我来说很好。

【讨论】:

    【解决方案3】:

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

    我必须清除我的配置缓存:

     php artisan config:cache
    

    为了安全起见,清除其他缓存

     php artisan cache:clear
    

    【讨论】:

      猜你喜欢
      • 2019-02-19
      • 2011-02-13
      • 2019-11-13
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 2014-01-17
      相关资源
      最近更新 更多