我正在尝试将我的 Laravel 项目上传到我的网络服务器上,但我过去的两次尝试都没有成功。我相信我没有将文件上传到正确的位置。
这是我的网络服务器的结构:
/
- .composer
- .cpanel
- .htpasswds
- .softaculous
- access-logs
- etc
- mail
- perl5
- public_ftp
- public_html
- tmp
- www
我是否认为我需要将 Laravel 应用程序的所有文件上传到
public_html
?
不,但您有几个选择:
最简单的方法是将所有文件上传到您所在的目录(即 cPanel 用户主目录)中,并将 public 的内容放入 public_html 中。这样你的目录结构就会像这样(有点乱,但它有效):
/
.composer/
.cpanel/
...
app/ <- your laravel app directory
etc/
bootstrap/ <- your laravel bootstrap directory
mail/
public_html/ <- your laravel public directory
vendor/
artisan <- your project's root files
您可能还需要编辑
bootstrap/paths.php
以指向正确的公共目录。
另一种解决方案,如果您不喜欢将所有这些文件放在“根”目录中,请将它们放在自己的目录(可能是“laravel”)中,该目录仍在根目录中,然后编辑路径以正常工作。不过,您仍然需要将
public
的内容放入 public_html
中,这次编辑 public_html/index.php
以正确引导应用程序。这样你的文件夹结构会更加整洁(尽管由于更多地破坏框架的设计结构,路径可能会遇到一些麻烦):
/
.composer/
.cpanel/
...
etc/
laravel/ <- a directory containing all your project files except public
app/
bootstrap/
vendor/
artisan
mail/
public_html/ <- your laravel public directory
我相信 - 你的
Laravel
files/folders
不应该放在根目录中。
例如如果您的域名指向
public_html
目录,那么所有内容都应放置在该目录中。如何 ?让我告诉你
复制
public
中的所有文件和文件夹(包括
public_html
文件夹)
复制公用文件夹的所有内容并将其粘贴到文档根目录(即
public_html
)
删除
public
文件夹
打开您的
bootstrap/paths.php
,然后将'public' => __DIR__.'/../public',
更改为'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
应用程序现在应该可以运行了。
如果您尝试在共享主机上托管 Laravel 应用程序,这可能会对您有所帮助。
如果您想要 PHP 5.4,请将此行添加到您的
.htaccess
文件或致电您的托管提供商。
AddType application/x-httpd-php54 .php
在 Laravel 5.x 中没有
paths.php
因此您应该编辑
public/index.php
并更改此行以便指向您的 bootstrap
目录:
require __DIR__.’/../bootstrap/autoload.php’;
$app = require_once __DIR__.’/../bootstrap/app.php’;
欲了解更多信息,您可以阅读这篇文章。
也遇到了这个问题,发现最简单的方法是将您的域指向公共文件夹,并保留其他所有内容。
请确保使用正确版本的 PHP。给自己减轻一些压力:)
所有 Laravel 文件都应该位于一个位置。 Laravel 正在向服务器公开其 public 文件夹。该文件夹代表整个应用程序的某种前端控制器。根据您的服务器配置,您必须将服务器路径指向该文件夹。正如我所看到的,您的图片上有 www 网站。 www 是 Unix/Linux 机器上的默认根目录。 最好查看服务器配置并搜索根目录位置。正如你所看到的,Laravel 已经有一个名为 .htaccess 的文件,其中包含一些现成的 Apache 配置。
(1) 如果您在 Cpanel 或云端上传,请确保 Laravel、php 的确切版本。
(2) 在 .env 文件中引用数据库凭据用户进行更改,并在本地主机中传递