[英]Laravel deployment and Git
我将我的Laravel应用程序部署在/var/www/<host's name>/
,而/var/www/<host's name>/public
是可通过Web访问的目录。 我现在已经使用GitHub一段时间了,但是,我似乎从未充分利用过它的潜力(不仅仅是将其用作代码备份源)。 我要实现的目标:
但是,我不希望<laravel>/storage/app/users/
现有数据(例如<laravel>/storage/app/users/
,其中包含所有用户及其文件的文件夹)。 我只想运行代码的最新版本,可以说在运行时进行修补。 我知道git clone <url>
,也知道symlinks
。
我只是想到一个文件夹,也许是在我的主文件夹中,以我的应用程序名称命名(例如“ / home / myuser / laravel”),现在运行git clone ...
将自动执行我所描述的操作,以便访问网页返回使用我们之前更新的代码。
我希望我能体面地表达我的观点,期待看到对此的建议。
我建议每次都允许从头开始进行新的部署,甚至是在存储目录中,并使用Laravel的Filesystem来存储您的文件: https ://laravel.com/docs/5.6/filesystem
这种替代方案不仅可以解决您的问题,而且还使您有机会升级,共享文件的数量多达多个服务器实例。
文件系统配置的选项是多种的,它们来自第三方服务(例如Amazon S3)以及您的本地磁盘(可以是挂载的磁盘,符号链接,也可以是更适合您的磁盘)。
它的优点在于,您不仅可以根据需要拥有不同的文件系统,而且还可以随时更改一个驱动程序/配置,而无需更改一行代码。
不要忘记使用该对象来获取最终URL(例如: Storage::url('file.jpg')
)。
如果您担心url主机或路径,则可以使用负载平衡器,域/子域区域,服务器规则来美化mask ip和路径。
一个好的方法是将所有最后的部署都保留在一个目录中,比如说/opt/<project>/<version>+<commit>
并在部署完成后将其链接到/opt/<project>/current
。 就您而言,它可以是/var/www/<host's name>
链接,也可以是/var/www/<host's name>
到/opt/<project>/current
。
您可以从composer.json或git release标签获取版本。
您可以使用ci(连续积分)(例如circleci)来:
这样,您甚至不需要在服务器中安装git,只需下载压缩文件并将其解压缩到/opt/<project>/<version>+<commit>
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.