我的知识记录

宝塔面板使用"PHP项目"新建站点:ThinkPHP/Laravel等框架项目部署

宝塔面板的"PHP项目"功能用于部署基于PHP框架的项目(ThinkPHP、Laravel、CodeIgniter等),这些项目的入口文件在public子目录,需要特殊配置。

什么是PHP项目。普通PHP网站(PbootCMS、织梦、WordPress)入口文件index.php在根目录。PHP框架项目(ThinkPHP、Laravel)入口文件在public/index.php,根目录下是app、config、vendor等目录,不能直接通过URL访问。宝塔的"PHP项目"站点类型自动配置运行目录指向public,保护应用代码不被直接访问。

添加PHP项目站点。1. 宝塔面板-网站-添加站点。2. 域名填项目域名。3. 根目录选项目存放路径(如/www/wwwroot/project)。4. PHP版本选框架要求的版本(ThinkPHP6要PHP7.2+,Laravel要PHP7.3+)。5. 数据库选创建(需要的话)。6. 点"PHP项目"标签(或添加后在网站设置里改)。7. 创建后在网站设置-网站目录-运行目录,选/public。8. 保存。

上传项目代码。1. 宝塔文件管理器进入项目根目录,上传代码压缩包解压。2. 或Git克隆:SSH进入目录,git clone 仓库地址。3. 或用宝塔"远程下载"功能。4. 确保目录结构正确:根目录下有app、config、vendor、public等,public下有index.php。5. 如果用了composer,SSH执行composer install安装依赖(需要先装composer)。

配置.env文件。ThinkPHP和Laravel用.env文件配置环境变量(数据库、缓存、调试模式等)。1. 复制.env.example为.env:cp .env.example .env。2. 编辑.env,填数据库信息(DB_HOST、DB_PORT、DB_DATABASE、DB_USERNAME、DB_PASSWORD)。3. 设置APP_DEBUG=false(生产环境关闭调试)。4. 设置APP_URL为项目域名。5. Laravel需要生成应用密钥:php artisan key:generate。

伪静态配置。PHP框架需要URL重写,把所有请求指向public/index.php。宝塔-网站设置-伪静态,选对应框架的规则: - ThinkPHP: ``` location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; } } ``` - Laravel: ``` location / { try_files $uri $uri/ /index.php?$query_string; } ``` 如果运行目录已经指向public,伪静态规则里的路径是相对于public的。

目录权限。1. 项目根目录属主www:www:chown -R www:www /www/wwwroot/project。2. 存储目录可写:ThinkPHP的runtime目录,Laravel的storage和bootstrap/cache目录,chmod -R 755。3. vendor目录不需要写权限。4. .env文件权限644,不要777。

PHP扩展。框架需要的PHP扩展:ThinkPHP需要mbstring、pdo、json、curl、gd。Laravel需要mbstring、pdo、openssl、tokenizer、xml、ctype、json、bcmath。宝塔PHP设置-安装扩展,安装需要的扩展,重启PHP。

域名和SSL。1. 域名解析到服务器IP。2. 网站设置-SSL申请Let's Encrypt证书,开强制HTTPS。3. .env里APP_URL用https://。

常见问题。问题一,打开域名显示文件列表或403:运行目录没设为/public,或public下没有index.php。检查网站设置-运行目录。问题二,500错误:看PHP错误日志和项目日志(ThinkPHP runtime/log,Laravel storage/logs),通常是扩展缺失、权限不足、.env配置错。问题三,数据库连接失败:.env里数据库信息不对,或数据库没创建。问题四,样式图片404:静态资源路径问题,Laravel用asset()函数生成URL,ThinkPHP用__PUBLIC__,确保URL正确。问题五,composer install失败:网络问题(Packagist被墙),用国内镜像:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/。问题六,缓存问题:框架有配置缓存、路由缓存,改了.env或路由后清缓存:ThinkPHP php think clear,Laravel php artisan config:clear && php artisan route:clear。

部署验证。1. 访问域名,看是否显示项目首页。2. 测试路由:域名/控制器/方法,看是否正常。3. 测试数据库连接:注册/登录或查询功能。4. 测试静态资源:CSS/JS/图片加载正常。5. 打开调试模式看有没有报错,没问题后关闭调试。6. HTTPS访问正常。

安全建议。1. 运行目录必须指向public,不要指向根目录,否则.env和应用代码可被直接访问(泄露数据库密码)。2. .env文件权限644,不要提交到Git(.gitignore里排除)。3. 生产环境关闭APP_DEBUG。4. 数据库用强密码,独立用户。5. 开启HTTPS。6. 定期更新框架版本,修补安全漏洞。7. 配置文件里的敏感信息(API密钥)用.env,不要写在代码里。

PHP项目部署和普通CMS不同,关键是运行目录指向public和伪静态配置。按步骤配置,ThinkPHP/Laravel项目能稳定运行。

宝塔面板使用"PHP项目"新建站点:ThinkPHP/Laravel等框架项目部署

标签:

更新时间:2026-08-26 18:00:28

上一篇:宝塔面板外网无法访问的八种场景与对应解决方案

下一篇:宝塔面板占用443端口怎么解决_Nginx占用_端口冲突_站点SSL配置