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

如何通过终端安全部署Laravel到cPanel 支持git push操作吗

Laravel项目cPanel终端安全部署操作指南

一、终端安全部署Laravel的完整步骤

  • 提前在cPanel后台开启SSH访问,将本地SSH公钥上传至cPanel的「SSH密钥」管理页面,禁用SSH密码登录,避免暴力破解风险。
  • 本地终端执行SSH命令连接cPanel服务器,替换对应参数即可:
    ssh 你的cPanel用户名@服务器IP地址 -p SSH端口
    通常cPanel默认SSH端口为22,部分服务商自定义端口可在面板说明中查询。
  • 服务器端创建非Web可访问的项目目录,避免源码直接暴露:
    不要将代码直接存放在public_html目录下,优先在/home/你的cPanel用户名/路径下新建专属项目目录,例如laravel_app,后续代码全部存放在该目录中。
  • 将Laravel的public目录内容软链接到域名对应的Web根目录:
    以根域名为例,执行命令ln -s /home/你的cPanel用户名/laravel_app/public /home/你的cPanel用户名/public_html,如果是子域名对应修改Web根目录路径即可。
  • 上传本地.env配置文件到服务器项目根目录,执行chmod 600 .env收紧权限,避免其他同服务器用户读取敏感配置。
  • 执行生产环境依赖安装命令,不安装开发依赖:
    composer install --optimize-autoloader --no-dev
    如果服务器默认PHP版本不符合Laravel要求,可在cPanel的MultiPHP Manager中切换版本,或使用对应PHP版本的绝对路径执行命令,例如PHP8.2的路径为/opt/cpanel/ea-php82/root/usr/bin/php。
  • 执行Laravel初始化命令:
    php artisan key:generate
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    php artisan storage:link
    php artisan migrate --force
    
  • 收紧目录权限,执行chmod -R 755 storage bootstrap/cache,禁止设置777权限,避免权限溢出风险。

二、终端向cPanel安全上传文件的方法

所有传输都走SSH加密通道,不会明文泄露内容,常用两种方式:

  • scp传输:适合单次传输单个文件/目录
    单个文件传输命令:scp -P SSH端口 本地文件路径 你的cPanel用户名@服务器IP地址:服务器目标路径
    整个目录传输命令:scp -r -P SSH端口 本地目录路径 你的cPanel用户名@服务器IP地址:服务器目标路径
  • rsync同步:适合增量更新代码,效率更高
    可直接排除不需要同步的文件,示例命令:
    rsync -avz -e 'ssh -p SSH端口' --exclude={'/.git','/vendor','/node_modules','.env'} 本地项目目录/ 你的cPanel用户名@服务器IP地址:/home/你的cPanel用户名/laravel_app/

三、支持直接git push推送代码到cPanel,配置方法如下

不需要借助第三方代码托管平台,直接在cPanel服务器配置裸仓库即可实现push自动部署:

  • SSH连接到cPanel服务器,在非Web可访问目录下新建git裸仓库,例如:
    mkdir -p /home/你的cPanel用户名/laravel.git && cd /home/你的cPanel用户名/laravel.git && git init --bare
  • 进入裸仓库的hooks目录,创建自动部署钩子:
    执行nano hooks/post-receive,写入以下内容:

    #!/bin/sh
    git --work-tree=/home/你的cPanel用户名/laravel_app --git-dir=/home/你的cPanel用户名/laravel.git checkout -f

  • 给钩子添加执行权限:chmod +x hooks/post-receive
  • 本地Laravel项目终端添加cPanel远程仓库:
    git remote add cpanel ssh://你的cPanel用户名@服务器IP地址:SSH端口/home/你的cPanel用户名/laravel.git
  • 后续需要推送代码时,直接执行git push cpanel main(主分支为master则替换为master),代码会自动同步到服务器的项目目录中,推送完成后在SSH端执行依赖安装、清缓存等后续部署命令即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:27:03