7 回答
TA贡献1806条经验 获得超5个赞
假设 cpanel 没有其他网站,并且您的 laravel 项目应该是默认项目。
压缩整个 Laravel 项目并将数据库导出到 sql
登录到 cPanel 并导航到文件管理器
确保您位于根文件夹中,然后单击“上传”
选择您的 zip 文件并等待上传完成
解压上传的文件
将 public 的内容移动到
public_html
文件夹返回 Cpanel 并导航到数据库
创建数据库并添加(如果不存在则创建)数据库用户
单击您的新数据库,然后单击“导入”
选择导出的 SQL 文件
尝试使用域 url 访问您的 laravel 网站
该网站可能会提供更多详细信息https://dev.to/asapabedi/deploying-laravel-5-applications-on-shared-hosting-without-the-use-of-ssh--16a6
TA贡献1883条经验 获得超3个赞
你不需要改变 Laravel 的结构。只需复制下面的 htaccess 代码并粘贴到 laravel 项目根目录下的 .htaccess 文件中。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ public/index.php [L]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
</IfModule>
TA贡献1772条经验 获得超8个赞
如果您使用的是 Apache 服务器,您可以执行以下简单步骤
第 1 步:只需将所有源代码上传到服务器(确保数据库和 .env 设置正确)i)制作 zip 并解压缩 ii)使用 git 部署代码或从存储库中克隆并安装所有依赖项
第 2 步:在项目根目录下创建一个 .htaccess 文件,复制以下代码并将其粘贴到该文件中。
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php
我从这个视频中得到了这个答案,所以请对他说声谢谢 https://www.youtube.com/watch?v=6Qbd9HTh7AE(谢谢)
TA贡献1794条经验 获得超7个赞
按着这些次序:
检查根或子域上的 .htaccess 文件。
如果将 public 文件移动到 root => 将 index.php 内容 /../ 更改为 /
例如
需要DIR .'/../vendor/autoload.php';
到
需要DIR .'/vendor/autoload.php';
和
$app = require_once DIR .'/../bootstrap/app.php';
到
$app = require_once DIR .'/bootstrap/app.php';
检查 php 版本(在 laravel 6+ 上我使用 php7.4 并解决了问题)
检查 .env 文件
TA贡献1785条经验 获得超8个赞
这对我有用:
将 cpanel 的 php 版本更新为 laravel 版本的要求,比如 laravel 7.0 需要https://laravel.com/docs/7.x/installation
检查是否安装了所有必需的扩展
然后,如果您在使用 .htacess 时遇到问题,我建议您通过...
创建一个简单的 index.html进行测试,
只需添加一行你好世界
然后将所有文件压缩到你的 public_html(包括 .htaccess)中并上传 index.html
刷新目标 url 说 domain.com
当它工作时你准备好进行下一步
(如果它不尝试调试/找出原因)通过...上传您的数据库(假设它已经导出)
转到MySQL数据库
创建一个数据库,其中包含要添加的数据库的确切名称
然后创建一个MySQL用户并给他数据库的所有权限
转到cpanel中的phpmyadmin并导入导出的sql文件压缩您的工作 laravel 项目并将其上传到主文件夹
在 cpanel 提取和...
请注意:
将所有文件夹放在 public 的主页
选择内容中,包括 .htaccess 到 public_html
文件夹和文件结构应该与您计算机上的 LARAVEL 项目相同(除了 public 现在是 public_html)
警告:不要触摸你的 index.php 或 server.php
使隐藏文件在您的 cpanel 中可见,然后最后通过...编辑 .env 文件...
仅编辑数据库用户名和密码(我希望数据库名称相同)
您还希望将 APP_DEBUG 保留为 true 以进行测试(您必须测试)
当一切都很好时将其更改为 false如果你没有数据库,什么已经在等待刷新了
即使有数据库现在也需要刷新
TA贡献1850条经验 获得超11个赞
我为 Laravel 8 和 9 版本获得了一个有效的、不那么痛苦的系统。可以关注,希望对你有帮助:
在公共文件夹中,您将获得总共 4 个文件。.htaccess、favicon.ico、index.php和robots.txt。
只需将所有这些文件移动到应用程序的根目录,也就是说,在公共文件夹之外。
使用编辑器打开index.php文件并更改 2 行。更改此行:
require __DIR__.'/../vendor/autoload.php';
到:
require __DIR__.'/vendor/autoload.php';
并更改此行:
$app = require_once __DIR__.'/../bootstrap/app.php';
到:
$app = require_once __DIR__.'/bootstrap/app.php';
如果您在应用程序中使用了公用文件夹中的图像,您将看到在整个应用程序中,您的图像没有显示。
所以现在转到.env文件并添加这一行:
ASSET_URL=public
所有任务都完成了!
现在只需将您的应用程序上传到共享服务器即可正常运行。
TA贡献1895条经验 获得超3个赞
在您的主机上创建一个名为public_html/myapp的新目录。
在你的 Laravel 项目中,你有一个公共目录。将该公共目录的内容复制到您在主机上创建的public_html/myapp目录中。
在与public_html文件夹相同的级别(不在其中!),在您的主机上创建一个名为myapp-laravel的新目录。
除了public文件夹,将 Laravel 项目中的每个文件夹和文件(例如app文件夹、.env文件等)复制到主机上的myapp-laravel文件夹中。
像这样编辑public_html/myapp/index.php文件:
变更要求
__ DIR__.'/../vendor/autoload.php';
要求
__ DIR__.'/../../myapp-laravel/vendor/autoload.php';
改变
require_once __ DIR__.'/../bootstrap/app.php';
到
require_once __ DIR__.'/../../myapp-laravel/bootstrap/app.php';
在此处查找文章。
- 7 回答
- 0 关注
- 155 浏览
添加回答
举报