上传 Laravel 5 到服务器子文件夹
Upload Laravel 5 to server subfolder
我正在尝试将 Laravel 5 项目上传到子文件夹:
public_html/project/
我已经在 index.php
中更改了
require __DIR__.'/../project/bootstrap/autoload.php';
$app = require_once __DIR__.'/../project/bootstrap/app.php';
在 config/app.php
'url' => 'http://example.com/project',
当我尝试 url 时:
http://example.com/project/public 它指向
http://example.com/public
上传到服务器的方法是什么。任何人都可以帮助我,因为我已经尝试了很多选择。
将整个 laravel 项目上传到 public_html (public) 文件夹中并不是一个好主意。 public 文件夹中的文件具有不受限制的访问权限。
如果因为要上传到共享主机而迫于考虑将laravel项目上传到public_html文件夹,那么没有必要这样做。
试试这个:
1. 在与 public_html 文件夹相同的级别上创建一个名为 laravel 的文件夹(或您喜欢的任何名称)。
Eg:
/
|--var
|---www
|----laravel
|----public_html
2。将 public
文件夹以外的所有内容从 laravel 项目复制到 laravel
文件夹(在服务器主机上)。
3. 打开 laravel 项目的 public 文件夹,复制所有内容并粘贴到 public_html
文件夹(在服务器主机上)
4. 现在打开 public_html
文件夹中的 index.php
文件并:
Change:
require __DIR__.'/../bootstrap/autoload.php';
To:
requrie require __DIR__.'/../laravel/bootstrap/autoload.php';
And
Change:
$app = require_once __DIR__.'/../bootstrap/app.php';
To:
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
Save and close.
5。现在转到 laravel
文件夹并打开 server.php
文件
Change:
require_once __DIR__.'/public/index.php';
To:
require_once __DIR__.'../public_html/index.php';
Save and close.
现在,当您访问配置为服务器域的 url 时,您的 laravel 应用程序应该像在本地主机上一样工作。
注意:config/app
中的 'url'=>'someurl'
是 artisan ie cli 使用的,它对您的网络服务器 urls 没有任何影响。
希望能帮助到你。
编辑
完成上述操作后,如果您在尝试访问 url 时得到一个空白页面,请递归设置存储文件夹的写入权限。即存储中的所有文件夹及其子文件夹都应具有 775
设置的权限网络服务器所有者和组具有写入权限。
如果您不打算在存储文件夹中存储任何敏感信息,您还可以将权限设置为777
,以授予对存储文件夹的所有读取、写入和执行访问权限。
小心linux中的文件权限,它们就像双刃剑,如果使用不当,可能会使您的应用程序容易受到攻击。要了解 Linux 文件权限,您可以阅读 this
在我完成了上面的步骤之后。请检查 read/write 权限(即它应该是 777),以查看几个 folcers:
存储、供应商和 bootstrap>缓存
检查 public_html 文件夹中是否存在 .htaccess 文件,或者从 public 文件夹中复制它。
最后检查php的版本应该是5.5以上
它对我有用。干杯!!
我喜欢这个。 (我的版本是 laravel 5.2)
- 将 server.php 文件的名称更改为 'index.php'。
- 将 .htaccess 文件从 public 文件夹复制到主目录(创建的子文件夹)
- 在 RewriteEngine On 之后的 .htaccess 中我们必须添加
RewriteBase /你的子文件夹/
问题已解决:-
转到 laravelFolder/bootstrap/cache 然后重命名 config.php
例如。 config.php_old 并重新加载您的网站。
我正在尝试将 Laravel 5 项目上传到子文件夹:
public_html/project/
我已经在 index.php
中更改了require __DIR__.'/../project/bootstrap/autoload.php';
$app = require_once __DIR__.'/../project/bootstrap/app.php';
在 config/app.php
'url' => 'http://example.com/project',
当我尝试 url 时: http://example.com/project/public 它指向 http://example.com/public
上传到服务器的方法是什么。任何人都可以帮助我,因为我已经尝试了很多选择。
将整个 laravel 项目上传到 public_html (public) 文件夹中并不是一个好主意。 public 文件夹中的文件具有不受限制的访问权限。
如果因为要上传到共享主机而迫于考虑将laravel项目上传到public_html文件夹,那么没有必要这样做。
试试这个:
1. 在与 public_html 文件夹相同的级别上创建一个名为 laravel 的文件夹(或您喜欢的任何名称)。
Eg:
/
|--var
|---www
|----laravel
|----public_html
2。将 public
文件夹以外的所有内容从 laravel 项目复制到 laravel
文件夹(在服务器主机上)。
3. 打开 laravel 项目的 public 文件夹,复制所有内容并粘贴到 public_html
文件夹(在服务器主机上)
4. 现在打开 public_html
文件夹中的 index.php
文件并:
Change:
require __DIR__.'/../bootstrap/autoload.php';
To:
requrie require __DIR__.'/../laravel/bootstrap/autoload.php';
And
Change:
$app = require_once __DIR__.'/../bootstrap/app.php';
To:
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
Save and close.
5。现在转到 laravel
文件夹并打开 server.php
文件
Change:
require_once __DIR__.'/public/index.php';
To:
require_once __DIR__.'../public_html/index.php';
Save and close.
现在,当您访问配置为服务器域的 url 时,您的 laravel 应用程序应该像在本地主机上一样工作。
注意:config/app
中的 'url'=>'someurl'
是 artisan ie cli 使用的,它对您的网络服务器 urls 没有任何影响。
希望能帮助到你。
编辑
完成上述操作后,如果您在尝试访问 url 时得到一个空白页面,请递归设置存储文件夹的写入权限。即存储中的所有文件夹及其子文件夹都应具有 775
设置的权限网络服务器所有者和组具有写入权限。
如果您不打算在存储文件夹中存储任何敏感信息,您还可以将权限设置为777
,以授予对存储文件夹的所有读取、写入和执行访问权限。
小心linux中的文件权限,它们就像双刃剑,如果使用不当,可能会使您的应用程序容易受到攻击。要了解 Linux 文件权限,您可以阅读 this
在我完成了上面的步骤之后。请检查 read/write 权限(即它应该是 777),以查看几个 folcers:
存储、供应商和 bootstrap>缓存
检查 public_html 文件夹中是否存在 .htaccess 文件,或者从 public 文件夹中复制它。
最后检查php的版本应该是5.5以上
它对我有用。干杯!!
我喜欢这个。 (我的版本是 laravel 5.2)
- 将 server.php 文件的名称更改为 'index.php'。
- 将 .htaccess 文件从 public 文件夹复制到主目录(创建的子文件夹)
- 在 RewriteEngine On 之后的 .htaccess 中我们必须添加 RewriteBase /你的子文件夹/
问题已解决:-
转到 laravelFolder/bootstrap/cache 然后重命名 config.php 例如。 config.php_old 并重新加载您的网站。