php文件上传到虚拟主机,虚拟主机-将Laravel项目上传到Web

虚拟主机-将Laravel项目上传到Web

我正在尝试将Laravel项目上载到Web服务器,但是我过去的两次尝试均未成功。 我相信我没有将文件上传到正确的位置。

这是我的Web服务器的结构->

dd93881d101d35f463b2453107fd445c.png

我是否正确地说我需要将所有所有laravel文件上传到public_html?

这是我的Laravel项目的目录:

qV22w.png

编辑:我现在将所有文件添加到根文件夹中,并公共添加到public_html,但是我的所有路由似乎均不起作用。 (它们在localhost上完美运行)。 一切都抛出404

6个解决方案

43 votes

不,但是您有两种选择:

最简单的方法是将您拥有的所有文件上传到您所在的目录(即cPanel用户主目录)中,并将public的内容放入public_html中。 这样,您的目录结构将是这样的(有点混乱,但它可以工作):

/

.composer/

.cpanel/

...

app/

etc/

bootstrap/

mail/

public_html/

vendor/

artisan

您可能还需要编辑public以指向正确的公共目录。

如果您不希望将所有这些文件都放在该“根”目录中,则另一种解决方案是将它们放在仍位于根目录中的它们自己的目录(可能是“ laravel”)中,然后编辑路径以使其正常工作。 但是,您仍然需要将public的内容放入public_html中,这一次编辑public_html/index.php以正确地引导应用程序。 这样,您的文件夹结构会更加整洁(尽管由于更多地干扰了框架的设计结构,所以路径可能会有些令人头疼):

/

.composer/

.cpanel/

...

etc/

laravel/

app/

bootstrap/

vendor/

artisan

mail/

public_html/

alexrussell answered 2019-12-27T19:00:50Z

9 votes

我相信-您的Laravel文件/文件夹不应该放在根目录中。

例如 如果您的域指向require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';目录,则所有内容都应放在该目录中。 怎么样 ? 让我告诉你

复制公共html中的所有文件和文件夹(包括公共文件夹)

复制公用文件夹的所有内容,并将其粘贴到文档根目录中(即public_html)

删除公用文件夹

打开bootstrap / paths.php,然后将require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';更改为'public' => __DIR__.'/..',

最后在index.php中,

更改

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';

进入

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';

您的Laravel应用程序现在应该可以运行了。

Raj Sf answered 2019-12-27T19:01:58Z

5 votes

如果您试图将您的Laravel应用托管在共享托管上,这可能会对您有所帮助。

在共享主机#1上托管Laravel

在共享主机2上托管Laravel

如果要PHP 5.4,请将此行添加到AddType application/x-httpd-php54 .php文件中,或致电您的托管服务提供商。

AddType application/x-httpd-php54 .php

Abhinandan N.M. answered 2019-12-27T19:02:36Z

1 votes

您的所有Laravel文件都应位于一个位置。Laravel将其公用文件夹公开给服务器。 该文件夹代表整个应用程序的某种前端控制器。 根据服务器配置,您必须将服务器路径指向该文件夹。 如我所见,您的图片上有www网站。 www是Unix / Linux计算机上的默认根目录。最好看看服务器配置内部并搜索根目录位置。 如您所见,Laravel已经有一个名为.htaccess的文件,并且已经进行了一些Apache配置。

carousel answered 2019-12-27T19:02:57Z

1 votes

同样也存在此问题,发现最简单的方法是将您的域指向公用文件夹,然后将其他所有内容保留原样。

请确保使用正确的PHP版本。 为自己节省一些压力:)

Overcomer answered 2019-12-27T19:03:21Z

1 votes

在Laravel 5.x中没有public/index.php

因此,您应该编辑public/index.php并更改此行,以便将其拖到您的bootstrap目录中:

require __DIR__.’/../bootstrap/autoload.php’;

$app = require_once __DIR__.’/../bootstrap/app.php’;

有关更多信息,您可以阅读本文。

M.A. Heshmat Khah answered 2019-12-27T19:03:50Z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值