我正在启动一个带有内联网托管的项目。由于传出流量的限制,我无法通过引用composer.lock
文件对作曲家(如git pull && composer.phar install
)使用通常的部署策略。但是,添加 Intranet 远程存储库并使用类似 git push intranet master
的东西是可能的。
到目前为止,我发现了两种管理这种可能性:
- 不要将
.gitignore
添加到vendor/
路径,并将此文件夹中的所有内容与项目一起提交。
composer.phar archive
生成.phar
存档似乎不是推荐的部署解决方案,我的问题是:这些解决方案的主要缺点和常见问题是什么?如何避免这些问题?
有很多方法可以部署 laravel 应用程序,以确定哪一种是要走的路。
但请记住以下几点:
- 您可能希望先缩小/连接
css/sass/less/js
文件 - 您肯定要上传文件
- 从本地推送到服务器
- 从存储库拉取服务器
- 您可能希望在服务器上每次部署后运行
php artisan migrate
- 您可能希望在部署后更改远程服务器上的某些文件权限
如果你想要一个完全自动化的部署,你将需要一个好的计划,你的项目需要哪些任务。它可能在几个项目上有所不同。
有许多工具可以使其中一些步骤更容易,也有许多如何使用它们的教程。仅举几例:
- 拉拉维尔的远程组件
- 火箭手
- 卡皮斯特拉诺
- 咕噜
如果您只想将文件"上传"到远程服务器而无需进一步的自动化任务,则可以使用任何同步工具(如rsync
或任何ftp同步工具),即使winscp具有脚本引擎将文件同步到远程服务器。
您发现找到正确的部署方法并不容易,并且在很大程度上取决于您的环境和项目。最后,我会退出在 git 存储库中包含vendor/
。这使得版本控制非常丑陋。