宝塔部署实录:从静态站到 PHP 动态站
把宝塔上的一个纯静态站点改造成 PHP 动态站点,踩了几个坑,记下来。
坑一:站点是 php-00 模式
新建站点默认是纯静态的(vhost 里 include enable-php-00.conf;),
直接放 PHP 文件会被当成静态文本下载。必须先把站点切到具体的 PHP 版本。
坑二:上传的文件权限不对
通过接口上传落地的文件是 root:root 且权限 600,
nginx 找得到文件,但 php-fpm 的 www 用户读不了,页面直接 403。
chown -R www:www /www/wwwroot/example.com
find /www/wwwroot/example.com -type d -exec chmod 755 {} \;
find /www/wwwroot/example.com -type f -exec chmod 644 {} \;
坑三:数据目录必须挡在门外
JSON 数据放在站点根目录下的 data/,如果不管,任何人都能直接下载 data/users.json。
nginx 里加一条即可:
location ^~ /data/ { deny all; }
改完先 nginx -t 再 nginx -s reload——语法错了直接 reload 会把整站打挂。
结论:切换模式 → 修权限 → 挡数据目录 → 验证 HTTPS,四步都要做。