宝塔面板多站点目录规划与独立目录配置最佳实践
一台服务器放多个网站,目录规划很重要。混乱的目录结构会导致维护困难、安全风险、迁移麻烦。按最佳实践规划目录,长期受益。
标准目录结构。每个网站独立目录:/www/wwwroot/域名1/、/www/wwwroot/域名2/。宝塔默认就是这个结构,不要改。每个网站目录下有自己的index.php、config、template、upload等。不要把多个网站文件混在一个目录里,不要用子目录方式放多个站点(除非刻意做子目录站)。
日志目录。每个网站的访问日志和错误日志在/www/wwwlogs/,文件名是域名.log和域名.error.log。宝塔自动配置,不要手动改。日志定期切割,宝塔默认保留30天,可在计划任务里配置日志切割。
备份目录。宝塔默认备份在/www/backup/,分site和database子目录。备份不要只存在服务器本地,定期下载到本地或同步到对象存储(阿里云OSS、腾讯云COS)。可以用宝塔的"计划任务-备份到云存储"功能自动同步。
数据库目录。MySQL数据目录默认/www/server/data,不要手动改。每个网站用独立数据库,数据库名和网站对应,如domain_com。数据库用户独立,只授权该数据库,不要所有网站共用root。
运行目录规划。普通PHP网站运行目录"/"。ThinkPHP/Laravel框架运行目录"/public"。PbootCMS运行目录"/"。子目录站点在对应网站目录下建子文件夹,运行目录仍为"/",访问URL带子目录路径。
权限规划。网站目录属主www:www,目录权限755,文件权限644。配置文件(config.php)644即可,不要777。上传目录(upload)需要写入权限,755足够。不要整个网站目录设777,安全隐患大。
SSL证书目录。宝塔证书存在/www/server/panel/vhost/cert/域名/,自动管理,不要手动改。证书自动续期,宝塔默认开启,确认计划任务里有续期任务。
跨站攻击防护。宝塔网站设置里"防跨站攻击(open_basedir)"默认开启,每个网站只能访问自己的目录,防止一个网站被黑后访问其他网站文件。不要关闭这个功能。如果程序需要访问上级目录(如ThinkPHP),把运行目录指向public,上级目录的代码通过PHP include访问,open_basedir会包含上级目录。
独立用户隔离(进阶)。更高安全要求可以每个网站用独立的Linux用户运行PHP-FPM,网站目录属主对应用户,即使一个网站被黑也影响不到其他网站。宝塔需要手动配置PHP-FPM池,适合有运维能力的用户。
目录清理。定期清理各网站的缓存目录(PbootCMS的runtime/cache)、临时文件、旧备份。宝塔"系统-磁盘清理"可以扫描大文件。日志太大时手动清理或配置切割。删除不用的网站时,在宝塔删除站点后确认目录和数据库都清理了。
迁移友好。目录规范的网站迁移简单:打包网站目录+导出数据库,到新服务器解压+导入数据库+改配置。目录混乱的网站迁移时容易漏文件、路径错。按标准结构来,迁移无忧。
按这些原则规划,一台服务器放几十个网站也井井有条。新网站上线时按标准创建,不要图省事乱放。

更新时间:2026-08-26 18:09:36
上一篇:易优cms安全设置常见问题_Eyoucms安全设置问题解决方法_完整汇总