繁体   English   中英

Laravel部署和Git

[英]Laravel deployment and Git

我将我的Laravel应用程序部署在/var/www/<host's name>/ ,而/var/www/<host's name>/public是可通过Web访问的目录。 我现在已经使用GitHub一段时间了,但是,我似乎从未充分利用过它的潜力(不仅仅是将其用作代码备份源)。 我要实现的目标:

  • 我正在本地主机上的应用程序上工作
  • 我在跟我的Git的主人
  • 我想在服务器上的某个位置(也许在/ var / www /目录之外)克隆我的Git,并将所有内容从GitHub中提取出来,以便可以“更新” Web应用程序。

但是,我不希望<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)来:

  1. composer作为开发人员版本安装并运行您的测试(如果未通过测试,则将取消部署)。
  2. 作曲家安装为生产版本。
  3. 作曲家档案进行压缩。
  4. 在git中创建一个新的预发布标签。
  5. 将压缩的项目附加到发行版。

这样,您甚至不需要在服务器中安装git,只需下载压缩文件并将其解压缩到/opt/<project>/<version>+<commit>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM