gpt4 book ai didi

通过 Envoyer 部署 Laravel 到 Cpanel

转载 作者:行者123 更新时间:2023-12-02 04:23:49 25 4
gpt4 key购买 nike

我有一个运行 WHM 和 Cpanel 的 VPS。我在那里托管了多个域。假设其中之一是 example.com

我打算做的是拥有两个版本的应用程序。制作:example.com > /public_html/开发:staging.example.com > /public_html/staging/

现在,我正在尝试将我的应用程序部署到开发环境,即部署到暂存文件夹。

Envoyer 与我的托管服务提供商进行了多次斗争,但运行良好。它正在按预期上传文件。现在唯一的问题是符号链接(symbolic link) current

现在文件夹结构是:

-staging
- releases
-release1
-release2
- current

我的子域明确指向暂存文件夹,这将导致它显示文件夹的所有内容而不是应用程序。

由于应用程序位于发布文件夹中,我如何确保在访问子域时我的应用程序运行。

我必须在 Apache 中修改我的虚拟主机文件吗?

最佳答案

Laravel 要求域的根目录(在相关的 apache vhost conf 文件中配置)是它的“公共(public)”文件夹。这是它的入口点 index.php 所在的位置。

按照以下内容编辑 apache vhosts conf 文件

<VirtualHost *:80>
ServerName example.com
DocumentRoot "/home/user/public_html/public"
<Directory "/home/user/public_html/public">
Options Indexes FollowSymLinks
AllowOverride all
Allow from all
Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
ServerName staging.example.com
DocumentRoot "/home/user/public_html/staging/public"
<Directory "/home/user/public_html/staging/public">
Options Indexes FollowSymLinks
AllowOverride all
Allow from all
Require all granted
</Directory>
</VirtualHost>

对于 example.com,您将 laravel 应用程序安装到/home/user/public_html 文件夹中。

作为 laravel 安装的一部分,它将创建“public”文件夹。

对于 staging.example.com,您将 laravel 应用程序安装到/home/user/public_html/staging 文件夹中。

不要忘记重新启动网络服务器,以便它选择新配置。

如果您无法更改上面提到的虚拟主机配置,您可以使用 public_html 文件夹中的 .htaccess 文件(请注意前导句号使其成为隐藏文件)。以下内容取决于您的托管服务提供商是否允许 .htaccess 覆盖。

将以下内容添加到 .htaccess 文件中:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

如果主机在输入 http://example.com 时已将域正确设置为指向/home/username/public_html那么它应该会自动调用 public/index.php。

您需要在 public_html/staging 文件夹中执行相同的操作。

关于通过 Envoyer 部署 Laravel 到 Cpanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56814291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com