从GitHub克隆Laravel项目

40

我是GitHub的新手,我发现这个网站对我们很多人都非常有用。我想在GitHub上存储我的Laravel项目,但每次当我要克隆它以便进行生产时,第一次克隆时总是会出现以下错误:

Warning: require(C:\xampp\htdocs\tourismPortal\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in C:\xampp\htdocs\tourismPortal\bootstrap\autoload.php on line 17

Fatal error: require(): Failed opening required 'C:\xampp\htdocs\tourismPortal\bootstrap/../vendor/autoload.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\tourismPortal\bootstrap\autoload.php on line 17

我知道可以通过对其使用“composer update”来解决此问题,但是否有任何方式可以防止这种错误,以便每次我克隆它时,都能在不遇到此错误的情况下进入生产环境?顺便说一句,我正在使用tortoisegit来克隆、拉取和推送。


编写一个自定义命令,同时克隆并更新Composer。我想。 - Vishal Sharma
4
您可以提交供应商目录,但这将违背使用Composer的初衷。在克隆PHP项目后,使用composer install应该成为标准做法。 - Devon
1
不是 composer update 而是 composer install。正如 Vishal Sh 暗示的那样,您需要编写一个可以顺序克隆和运行 composer install 的 shell 脚本。一个简单而又良好保护的 bash 脚本就能解决问题。 - Chibueze Opata
这样怎么样?我会编写一个 shell 脚本并将其放置在我的项目目录中,这样每当我克隆我的项目时它就会自动触发。 - SMPLYJR
6个回答

182
  • 克隆你的项目
  • 使用cd命令在cmd或终端中转到应用程序文件夹
  • 在cmd或终端上运行composer install
  • .env.example文件复制到根文件夹中的.env。如果使用Windows命令提示符,则可以键入copy .env.example .env,如果使用Ubuntu终端,则可以键入cp .env.example .env
  • 打开您的.env文件,并将数据库名称(DB_DATABASE)更改为您的配置对应的用户名(DB_USERNAME)和密码(DB_PASSWORD)字段。
  • 运行php artisan key:generate
  • 运行php artisan migrate
  • 运行php artisan serve
  • 转到http://localhost:8000/

@MarianoMontañezUreta 可能是,但这不是此帖子的预期答案。 - SMPLYJR
@MarianoMontañezUreta 这是2019年,这仍然是最好的解决方法! - Pathros
3
在执行 composer install 后,您还应该运行 npm install。 - Sepehr Pourjozi
2
这在2022年3月仍然适用于Laravel 9。这是一种完全按照广告所述工作的解决方案之一。没有任何错误。按照以下步骤操作,就完成了!谢谢伙计! - Raymond

8
  1. 运行 git clone '链接项目的GitHub'

  2. 运行 composer install

  3. 运行 cp .env.example .env 或者 copy .env.example .env

  4. 运行 php artisan key:generate

  5. 运行 php artisan migrate

  6. 运行 php artisan db:seed

  7. 运行 php artisan serve

  8. 访问链接 localhost:8000 或者 127.0.0.1:8000


我没有看到这个回答对Conor 4年前的回答有什么补充。 - miken32

7

是的,你可以这样做,但这并不被推荐。

你可以删除.gitignore文件中的所有内容,并从一个正在工作的项目中将它们推送。然后在你使用git clone时,它们将完美地工作。

但是这种方式有很多缺点。我建议你不要这样做。


是的,我明白了。我无法克隆所有内容的原因是gitignore文件中的列表。这是我发布它时的新手问题。哈哈。谢谢。 - SMPLYJR
这个回答是否认真建议将整个“vendor”和“storage”目录提交到版本控制系统? - miken32
@miken32,不是的。它回答了OP的问题并告诉他们不要那样做。 - Rafik Farhad

4

在这里,大家忽略了一个步骤,在运行下面的命令后:

php artisan key:generate

别忘了执行 npm install && npm run dev

如果你有任何前端环境设置,这个命令将清除所有依赖项...


2
感谢大家的帮助,我也运行了命令使项目正常工作。
composer update

这只是解决方案的一部分。 - Richard

-1
运行以下命令:
git clone --single-branch --branch [TAG_VERSION] https://github.com/laravel/laravel.git [CUSTOM_PROJECT_NAME]
composer install

它将如何处理 .env 文件和 APP_KEY - Rafik Farhad
当您运行“composer install”时,它会自动生成。 如果没有生成,请在主目录下运行以下命令: php -r "copy('.env.example', '.env');" php artisan key:generate - Nestor Rojas P.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接