Laravel 9应用部署到BlueHost遇阻求助
解决BlueHost共享主机部署Laravel应用的问题
针对你遇到的三个问题,逐个给出可行的解决方案:
1. 403 Forbidden 错误(核心问题:部署结构错误)
共享主机默认把public_html作为网站根目录,而Laravel的入口文件在项目的public目录下,直接上传整个项目到public_html会导致权限和路径错误。正确步骤:
- 把Laravel项目中
public目录下的所有文件(包括.htaccess),移动到主机的public_html目录里 - 将Laravel项目的其余文件(
app、config、vendor、bootstrap等)上传到public_html的上级目录(比如主机根目录,和public_html同级的位置,建议新建一个文件夹比如laravel-app存放这些文件) - 修改
public_html里的index.php文件,调整加载路径:// 替换原来的vendor加载路径 require __DIR__.'/../laravel-app/vendor/autoload.php'; // 替换原来的app加载路径 $app = require_once __DIR__.'/../laravel-app/bootstrap/app.php'; - 在cPanel文件管理器中,设置
public_html目录权限为755,目录内文件权限为644(右键文件/目录,选择「更改权限」)
2. CyberDuck/SSH上传失败
这个问题本质还是部署结构错误,按照上面的步骤调整上传路径即可:
- 用CyberDuck或SSH把项目核心文件(
app、config等)传到public_html上级的laravel-app目录 - 把
public目录内容传到public_html - 无需修改额外设置,确保上传过程中没有文件遗漏
3. Git克隆提示public_html已有文件
先清理public_html里的默认文件(比如初始的index.html、cgi-bin文件夹),再按以下步骤操作:
- 通过cPanel的终端(如果有)或SSH,在主机根目录执行:
git clone 你的GitHub仓库地址 laravel-app - 把
laravel-app/public下的所有文件复制到public_html目录 - 修改
public_html/index.php的路径(同第一个问题的步骤) - 如果没有终端权限,也可以本地把项目打包成ZIP,上传到主机根目录后用cPanel的「解压」功能,再调整文件结构
额外注意事项
- 复制本地的
.env文件到主机的laravel-app目录,修改数据库配置(BlueHost后台可查看数据库地址、用户名、密码),并设置APP_URL为你的域名 - 如果无法运行
php artisan key:generate,本地生成后把.env里的APP_KEY值复制到主机的.env文件中 - 确保主机的PHP版本和你本地开发时的版本一致(在cPanel的「PHP版本」里调整)
内容的提问来源于stack exchange,提问作者laura
相关产品推荐
相关产品推荐

