我正在尝试在共享主机(godaddy)上部署我的Laravel项目,到目前为止,我只取得了部分成功。
我采取了以下步骤:
abc.xyz.com
,root-现在我可以成功登录,这将我带到abc.xyz.com/public
,但是我所有其他没有/Public
的路由都不工作。例如:
我注意到,如果我手动添加/Public
到他们工作的所有路由!。
我的htaccess:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>
那么,如何像abc那样附加/public
。xyz。com/public到所有路线?我不太擅长修改。htaccess
但我在网上尝试了一些解决方案,但没有成功。
您需要将您的网站的文档根目录更改为您的应用程序的公共文件夹,即。
public_html/finance/.
应该是:
public_html/finance/public
https://laravel.com/docs/5.4/installation#configuration
希望这有帮助!
您可能可以移动您的public/。htaccess和public/index。将php链接到laravel项目的根文件。
摘自在Linux服务器上共享主机上部署Laravel 5应用程序。原始作者是唐卡纳什、激情无限、皮特·休斯顿和凯斯利克。归属详细信息可以在贡献者页面上找到。该源在CC BY-SA 3.0下获得许可,可以在文档存档中找到。参考主题ID:2410。
默认情况下,Laravel project的public
文件夹公开任何人都可以从任何地方请求的应用程序内容,没有适当权限的任何人都看不到或无法访问应用程序的其余代码。
在开发机器上开发应用程序后,需要将其推送到生产服务器,以便可以从任何地方通过internet访问它-对吗?
对于大多数应用程序/网站,第一选择是使用GoDaddy、HostGator等托管服务提供商提供的共享托管包,这主要是因为成本较低。
注意:您可以要求您的提供商手动更改document_root,所以您所要做的就是将Laravel应用程序上传到服务器(通过FTP),请求将root更改为{app}/Public,您应该就可以了。
然而,这种共享主机包在终端访问和文件权限方面有限制。默认情况下,必须将其应用程序/代码上传到共享托管帐户上的public_html
文件夹。
所以,如果你想上传一个Laravel项目到一个共享托管帐户,你会怎么做呢?您是否应该将整个应用程序(文件夹)上载到共享主机帐户上的public\u html
文件夹中当然不是
因为public\u html
文件夹中的所有内容都可以“公开即任何人”访问,这将是一个很大的安全风险。
将项目上载到共享托管帐户的步骤-Laravel方法
步骤1
在与public_html
文件夹相同的级别上创建一个名为laravel(或任何您喜欢的文件夹)的文件夹。
Eg:
/
|--var
|---www
|----laravel //create this folder in your shared hosting account
|----public_html
|----log
步骤2
将laravel项目(在开发机器上)中的laravel
文件夹(在服务器主机-共享主机帐户上)中的public
文件夹之外的所有内容都复制下来
您可以使用:
-C-panel:这将是最慢的选项
-FTP客户端:像FileZilla一样连接到您的共享主机帐户,并通过FTP上传传输您的文件和文件夹
-映射网络驱动器:您还可以在开发计算机上创建映射网络驱动器,以连接到共享主机帐户的根文件夹使用“ftp://your-domain-name“作为网络地址。
步骤3
打开laravel项目的公共文件夹(在开发机器上),复制所有内容并粘贴到public_html
文件夹(在服务器主机-共享主机帐户上)。-plhd--0/>文件在public_html
文件夹在共享主机帐户(在cboard编辑器或任何其他连接的编辑器)和:
更改:
require __DIR__.'/../bootstrap/autoload.php';
致:
require __DIR__.'/../laravel/bootstrap/autoload.php';
和改变:
$app = require_once __DIR__.'/../bootstrap/app.php';
致:
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
保存并关闭。
步骤5
现在转到laravel
文件夹(在共享主机帐户-服务器上)并打开server。php
文件
更改
require_once __DIR__.'/public/index.php';
致:
require_once __DIR__.'../public_html/index.php';
保存并关闭。
步骤七
因为本地/开发服务器的. env
文件被git忽略,它应该被忽略,因为它具有包括APP_KEY在内的所有环境变量,并且不应该通过将其推送到存储库而公开。您还可以看到. gitignore
文件中提到了. env
,因此它不会将其上传到存储库。
完成上述所有步骤后,制作一个。env
文件,并添加从本地/开发服务器的中使用的所有环境变量。env
文件到。生产服务器的env
文件。
甚至有配置文件,如app.php
,database.php
在laravel应用程序的配置文件夹中,默认情况下在env()
的第二个参数中定义此变量,但不硬编码这些文件中的值,因为它将影响拉取存储库的用户的配置文件。所以建议手动创建. env
文件!
另外,laravel给出了。env示例
可以用作参考的文件。
就这样。
现在,当您访问配置为服务器域的url时,您的laravel应用程序应该与它在本地主机开发机器上的工作方式相同,而应用程序代码仍然是安全的,没有适当的文件权限的任何人都无法访问。
我的问题与另一个问题非常相似,但该线程中提供的解决方案对我没有帮助。 我使用本指南将我的Laravel应用部署到共享托管服务(顺便说一句,该指南与链接问题的答案之一非常相似) 下面是我的路线/web.php文件 问题是,我可以访问欢迎页面和登录页面。验证后,我转到主页,然后问题开始出现。我尝试之外的每一条路径(比如mydomain.net/law/search)都会让我以某种无限循环的方式再次访问
我面临的问题,而上传我laravel项目到共享服务器,微软天蓝色。我不能访问除/以外的路线。我的路由文件有以下代码: 基本上,我使用php artisan make:auth生成登录注册默认功能。 我可以访问我的 /route: http://40.121.138.22/monrostudio/public/ 但不能访问其他路由,如/login、/register或我创建的任何其他路由。
共享的托管环境常常会对目录结构以及配置文件有较多的限制。 然而,在大多数情况下,你仍可以通过少量的修改以在共享托管环境下运行 Yii 2.0。 部署一个基础应用模板 由于共享托管环境往往只有一个 webroot,如果可能,请优先使用基础项目模板( basic project template )构建你的应用程序。 参考 安装 Yii 章节在本地安装基础项目模板。 当你让应用程序在本地正常运行后,
首先,我必须说,这个问题已经被问了几千次了。我使用以下工具创建了我的Laravel 5.5项目: 我没有给这个项目增加任何东西。项目在本地运行没有问题。当我想在共享托管网站上托管项目时,问题就来了(我正在使用infinityfree.net) Laravel 5.5的最低PHP版本:PHP 我的共享托管站点php版本:php版本7.0。19 我所做的唯一更改是: > 我复制了公共文件夹的内容到我的
我正在用Laravel 5.7启动一个新项目。我用artisan制作了标准的laravel Auth。它在routes/web中注册了一个新路由。php是什么 问题是,当我将“/home”重命名为“/admin”时,它不起作用。它返回“未在此服务器上找到请求的资源/管理员”错误我可以将“/home”替换为除“/admin”之外的任何内容。其他任何东西都可以正常工作。“/admin”有什么问题,为什
我有下面的场景。 我有一台带无线上网的笔记本电脑。我通过以太网电缆将我的笔记本电脑连接到网件路由器。我想让笔记本电脑无线上网与那些连接到路由器的人共享。有没有可能。