猿问

如何在 godaddy 托管服务器上部署 laravel 项目

我目前刚开始将项目文件部署到 godaddy 托管站点,所以在发布此内容之前,我阅读了 stackoverflow 中已经创建的一些相关问题,我只是感到困惑,因为 cpanel 有 public_html 文件夹,而我的面板没有公共 html。所以现在我经历

HTTP 错误 404。找不到请求的资源。

我唯一做的就是移动 httpdocs 中的 laravel 文件。

我的面板:Plesk Onyx 17.8.11

对于文件夹结构:

所以 httpdocs 里面是我所有的 laravel 文件

http://img3.mukewang.com/64ba58290001c1e003280596.jpg

网站显示是这样的..

http://img.mukewang.com/64ba583a0001fc6205380222.jpg


PIPIONE
浏览 174回答 2
2回答

肥皂起泡泡

我认为您的文件夹结构是这样的原因是您的 GoDaddy 主机是 Windows 共享主机。基本上需要做的是在主目录上为您的应用程序创建一个文件夹,然后在 httpdocs 上,将您的应用程序中的公共文件夹放入其中。GoDaddy Plesk 文件夹列表:cgi-bin错误文档http文档日志<您的 laravel 应用程序文件夹减去“Public”文件夹>在 httpdocs 文件夹内:应用程序数据.user.ini默认.aspx网络配置<+ 公共文件夹的内容>完成后,您将需要编辑一些文件:来自公共文件夹:index.php查找:require&nbsp;__DIR__.'/../vendor/autoload.php';更改为:require&nbsp;__DIR__.'/../<laravel&nbsp;app&nbsp;folder>/vendor/autoload.php';下一个查找:$app&nbsp;=&nbsp;require_once&nbsp;__DIR__.'/../bootstrap/app.php';更改为:$app&nbsp;=&nbsp;require_once&nbsp;__DIR__.'/../<laravel&nbsp;app&nbsp;folder>/bootstrap/app.php';此后,请确保.env文件已正确配置,并且本地数据库中的所有表都已镜像到服务器数据库中。另外,如果您遇到open_dir问题,您可以在Plesk 的 PHP 设置中禁用它,但我不确定从长远来看这会导致什么问题。

MMMHUHU

嗯,有两种方法...第一个在 cpanel 中搜索“Installatron 应用程序安装程序”或某种应用程序安装程序:) 在右上角的 installatron 应用程序安装程序屏幕中找到“应用程序浏览器”,从那里搜索 Laravel 并通过选择您的域来安装它(如果您有多个域)安装后,复制本地文件并将其替换为远程文件。第二种方法,.zip 本地 laravel 文件夹。并将文件上传到服务器,然后提取文件。现在从这里开始,两种方式都是一样的->laravel 项目中的“public”目录将位于远程服务器的根目录中(您的域的根文件夹,如果您有 ex. public_html/example.com 的插件域,那么“public”文件夹应该位于该 example.com 中)创建另一个文件夹并将所有其他 Laravel 文件和文件夹放入该文件夹中。打开并编辑 /public/index.php 更改这两行->需要DIR&nbsp;.'/../vendor/autoload.php';&nbsp;app = require_once&nbsp;DIR&nbsp;.'/../bootstrap/app.php';以反映服务器中的文件结构。对于前。如果“public”文件夹与“vendor”和“bootstrap”位于同一目录中,则删除/..编辑 .env 文件,注意数据库凭据。PS:不要更改数据库主机地址,它应该保持不变。最后,&nbsp;您需要有两个 .htaccess文件 ,其中一个位于“public”目录内容中,如下所示-><IfModule mod_rewrite.c><IfModule mod_negotiation.c>&nbsp; &nbsp; Options -MultiViews -Indexes</IfModule>RewriteEngine On# Handle Authorization HeaderRewriteCond %{HTTP:Authorization} .RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]# Redirect Trailing Slashes If Not A Folder...RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} (.+)/$RewriteRule ^ %1 [L,R=301]# Send Requests To Front Controller...RewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^ index.php [L]第二个 .htaccess 文件将位于域的根文件夹中,内容为 >RewriteEngine onRewriteCond %{REQUEST_URI} !^publicRewriteRule ^(.*)$ public/$1 [L]如果 php 版本问题表明 Composer 依赖项版本是 php7.xx bla bla,您可能会遇到一个问题如果发生这种情况,请再次转到 cpanel 并搜索“选择 PHP 版本”,从那里更改您当前的 PHP 版本以适应您在错误中遇到的 PHP 版本。并且您需要单击“设置为当前”!

收到一只叮咚

完成后我仍然无法获取内部 api 路由。显示的错误是 404。Laravel 主页可以查看,但http://example.com/api/user/login等内部页面无法正常工作解决方案:我在以下链接的帮助下解决了这个问题Pleask 上的 Laravel 项目除主页外其他路线均无法使用https://jimfrenette.com/2016/09/laravel-iis-windows-install/一切都按照上面的解释完成,唯一的区别是 Windows 服务器和 IIS 不遵循 .htaccess,因此我们必须在 web.config 文件中执行此操作。所以我只是复制了https://jimfrenette.com/2016/09/laravel-iis-windows-install/&nbsp;web.config 配置并将其粘贴到我的公共文件夹 web.config 文件中,然后一切正常。我希望这对其他在这个问题上摸不着头脑的人也有帮助。
随时随地看视频慕课网APP
我要回答