我更改了composer.json并突然改变了
rm -rf vendor/* && rm -rf bin/* && composer update
由于在文件夹console
中找不到Symfony bin
,所以在过程结束时出现错误消息。当我从另一个项目中手动将其复制到那里时,它可以工作,但是那不是解决方案。
错误消息如下:
....
- Installing symfony/test-pack (v1.0.6): Loading from cache
- Installing symfony/web-server-bundle (v4.3.6): Loading from cache
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [KO]
[KO]
Script cache:clear returned with error code 1
!! Could not open input file: ./bin/console
!!
Script @auto-scripts was called via post-update-cmd
该错误很明显,因为bin文件夹确实包含指向其他脚本加载的符号链接,但不包含控制台脚本本身的符号链接。
我尝试清除作曲家缓存,但这没什么区别。
如果我创建一个全新的空文件夹,然后在其中复制composer.json
文件并运行composer install
,那么一切正常,并且console
脚本位于bin
文件夹中,应该在哪里。
有什么区别?
稍后我自动运行它以进行自动部署时,如何确定控制台在那里?
答案 0 :(得分:2)
首先,您不应该删除bin/console
脚本。这是您应用程序的一部分,等效于public/index.php
,但作为控制台入口点。
该文件很可能应保存在您的源代码存储库中。
因此,确保文件在部署时会在那里的最佳方法是:不要删除它,它是源代码的一部分,应该保留。
该文件是在install
期间在一个空文件夹上创建的,这是因为由于以下两个原因在install
期间执行了弹性配方:
bin
目录以重新创建它,但不会覆盖现有目录。 (因此,如果您按应将此目录及其内容保留在存储库中,则在生产环境中部署项目时不会覆盖它。)