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

Laravel项目部署后操作指引及共享主机配置调整咨询

Laravel项目部署后必做操作 & 共享主机配置指南

作为常年折腾Laravel部署的开发者,我来给你梳理清楚这两个问题的关键步骤,都是实战中踩坑总结出来的干货:

一、Laravel项目部署完成后的核心操作

不管是云服务器还是共享主机,这些步骤都是确保项目正常运行的基础:

  • 设置正确的文件权限:Laravel的storage和bootstrap/cache目录需要写入权限才能处理日志、缓存等内容。如果有SSH权限,执行以下命令:
    chmod -R 755 storage bootstrap/cache
    chown -R www-data:www-data storage bootstrap/cache
    
    要是没有SSH,就用主机的文件管理器右键修改这两个目录的权限为755(部分主机可能需要设为777,具体看主机要求)。
  • 配置环境变量:把根目录的.env.example复制一份重命名为.env,重点修改这些配置:
    • APP_URL:填你的项目正式域名
    • DB_HOST、DB_DATABASE、DB_USERNAME、DB_PASSWORD:对应你的数据库信息,别填错了!
    • APP_KEY:如果这个值是空的,必须生成一个——有SSH就执行php artisan key:generate,没SSH的话后面讲共享主机的处理方法。这个密钥是加密会话和敏感数据的核心,不能少。
  • 优化应用性能:
    • 缓存配置:php artisan config:cache
    • 缓存路由:php artisan route:cache
    • 缓存视图:php artisan view:cache
    • 优化自动加载:composer dump-autoload --optimize
      这些命令能大幅提升生产环境的响应速度,一定要跑一遍。
  • 数据库迁移(如果需要):如果项目有未执行的数据库表结构变更,执行php artisan migrate——注意!先备份数据库再操作,避免数据丢失。
  • 队列和计划任务配置(如果用到):
    • 队列:要是项目用了队列处理异步任务,先在.env里配置好队列驱动(比如数据库),然后启动队列监听php artisan queue:work。生产环境建议用Supervisor管理,防止进程意外停止。
    • 计划任务:在Crontab里加一行* * * * * cd /你的项目路径 && php artisan schedule:run >> /dev/null 2>&1,确保定时任务能自动执行。

二、共享主机上的额外配置与操作

共享主机因为权限限制,很多操作不能像云服务器那样自由,得做些特殊调整:

  • 调整网站根目录:大部分共享主机默认把public_html作为网站根目录,但Laravel的入口文件是public目录下的index.php。你可以这么做:
    1. 把Laravel项目的public文件夹里的所有文件,全部移到主机的public_html目录下。
    2. 修改public_html/index.php里的路径,让它能找到项目的核心文件:
      找到这两行:
      require __DIR__.'/../vendor/autoload.php';
      $app = require_once __DIR__.'/../bootstrap/app.php';
      
      假设你的Laravel项目放在public_html的上一级,文件夹名叫laravel-project,就改成:
      require __DIR__.'/../laravel-project/vendor/autoload.php';
      $app = require_once __DIR__.'/../laravel-project/bootstrap/app.php';
      
  • 处理.env文件:有些共享主机不允许直接上传.env文件,你可以先上传成env.txt,然后通过主机的文件管理器重命名为.env;或者直接在文件管理器里新建.env文件,把.env.example的内容粘贴进去再修改配置。
  • 解决Artisan命令无法执行的问题:如果共享主机没有提供SSH权限,你可以创建一个临时PHP脚本执行Artisan命令。比如新建run-artisan.php:
    <?php
    // 替换成你需要执行的命令,比如key:generate、migrate等
    $command = 'key:generate';
    // 这里填你的Laravel项目根目录的绝对路径
    $projectPath = '/home/你的主机用户名/laravel-project';
    $output = shell_exec("php $projectPath/artisan $command");
    echo "<pre>$output</pre>";
    ?>
    
    访问这个脚本执行完命令后,一定要删掉它,避免安全风险。
  • 权限问题排查:如果遇到“权限被拒绝”的错误,先试试把storage和bootstrap/cache的权限设为777(仅限测试,生产环境尽量用755+正确的用户组),要是还不行就联系主机商帮忙调整用户组权限——毕竟共享主机的权限管控比较严。
  • 禁用调试模式:最后一定要把.env里的APP_DEBUG改成false,不然报错时会把敏感的服务器信息暴露出来,非常危险。

内容的提问来源于stack exchange,提问作者the inquisitor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:01:08