You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Laravel 5.6应用部署到虚拟主机的cPanel面板?

如何将Laravel 5.6应用部署到cPanel虚拟主机?

刚帮朋友部署过Laravel 5.6到cPanel共享主机,踩了几个小坑,分享下完整的部署思路和实操步骤,应该能帮你顺利搞定:

一、本地预准备(重要!减少线上麻烦)

在把代码传到cPanel之前,先在本地做好优化和配置:

  • 安装生产依赖:运行 composer install --optimize-autoloader --no-dev,只安装生产环境需要的包,剔除开发依赖(比如PHPUnit),节省空间还更安全。
  • 预编译配置和路由:执行 php artisan config:cache 和 php artisan route:cache,把配置和路由缓存起来,提升线上访问速度。
  • 准备生产环境的.env文件:复制本地的.env,修改成线上配置——比如APP_ENV=production、APP_DEBUG=false、APP_URL改成你的域名,还有数据库连接信息(后面在cPanel创建完数据库再填准确值)。

二、上传文件到cPanel

cPanel的文件管理器是核心工具,这里要注意Laravel的目录结构适配:

  1. 创建主应用目录:在cPanel文件管理器的根目录(/home/你的用户名/)下新建一个目录,比如laravel_app,用来存放Laravel除了public之外的所有文件(app、bootstrap、config、vendor等,还有刚准备好的.env)。
  2. 处理public目录:把Laravel本地public文件夹里的所有内容(包括index.php、css、js这些)上传到cPanel的public_html目录——这是cPanel默认的域名根目录,必须让用户访问域名时直接进入Laravel的public入口。

三、修改入口文件路径(关键步骤)

因为我们把核心代码移到了public_html外面,所以要修改public_html/index.php里的路径指向:

原来的index.php加载代码是:

require __DIR__.'/../vendor/autoload.php';
/* |-------------------------------------------------------------------------- | 开启框架初始化 |-------------------------------------------------------------------------- | | 我们需要为PHP开发提供支持,因此开启框架初始化流程。 | 这一步会引导框架启动并做好使用准备,随后将加载应用程序以便我们可以运... */

你需要把路径改成指向外面的laravel_app目录:

require __DIR__.'/../laravel_app/vendor/autoload.php';
/* |-------------------------------------------------------------------------- | 开启框架初始化 |-------------------------------------------------------------------------- | | 我们需要为PHP开发提供支持,因此开启框架初始化流程。 | 这一步会引导框架启动并做好使用准备,随后将加载应用程序以便我们可以运... */

同时还要修改下面的应用实例加载路径:

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

四、配置线上环境和数据库

  1. 创建数据库:在cPanel里找到MySQL数据库向导,创建一个新的数据库、数据库用户,给用户分配全权限,记下数据库名、用户名、密码,填到.env的DB_DATABASE、DB_USERNAME、DB_PASSWORD里(DB_HOST一般是localhost,如果主机有特殊要求再改)。
  2. 设置.env权限:在文件管理器里找到laravel_app/.env,把权限设为644——既保证PHP能读取,又防止其他用户查看敏感信息。
  3. 导入数据库(如果有):如果本地有测试数据,用cPanel的phpMyAdmin导入SQL文件到刚创建的线上数据库。

五、设置目录权限

Laravel需要storage和bootstrap/cache目录有写入权限,不然会报错:

  • 在文件管理器里找到laravel_app/storage和laravel_app/bootstrap/cache,把它们的权限设为755(如果还是有写入问题,改成775,绝对不要用777,太不安全)。
  • 有些共享主机可能限制了目录权限,如果改完还是不行,联系主机商帮忙调整。

六、域名指向和测试

  1. 确认域名解析:确保你的域名已经解析到cPanel主机的IP地址(一般在cPanel的账户信息里能看到主机IP)。
  2. 测试访问:打开浏览器输入你的域名,如果能正常加载Laravel应用就成功了!如果出现错误:
    • 临时把.env里的APP_DEBUG=true打开,查看具体错误信息;
    • 查看laravel_app/storage/logs里的日志文件,排查问题;
    • 测试完记得把APP_DEBUG改回false,避免泄露敏感信息。

额外注意事项

  • 不要上传node_modules、.git这些目录,占用空间还没用;
  • 如果你的应用用到了定时任务,在cPanel的Cron Jobs里添加任务:* * * * * php /home/你的用户名/laravel_app/artisan schedule:run >> /dev/null 2>&1,每分钟运行一次;
  • 如果用到队列,同样可以用Cron Jobs或者主机提供的队列服务来处理。

内容的提问来源于stack exchange,提问作者Tita Donalbin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:38:58