FTP中session文件夹作用_会话文件目录与用户session
很多站长用FTP上传文件时,不知道该把文件放到哪个文件夹,导致上传后访问不到,或者误把网站程序放到了非根目录,网站打不开。其实关键就是找到网站根目录,不同环境下根目录的名称不同——cPanel是public_html,宝塔是wwwroot,Plesk是httpdocs,IIS是wwwroot,有些主机是www或htdocs。本文不仅讲解网站根目录的识别方法,还详细介绍根目录下和根目录外的其他文件夹作用,让你对整个目录结构有完整的认识,上传文件、排查问题、做安全配置都能得心应手。
var文件夹存放可变数据,包括运行时文件、缓存、锁文件、spool文件等。系统级的/var目录下有/var/log(日志)、/var/tmp(临时文件)、/var/run(进程PID文件)、/var/spool(邮件和打印队列)。虚拟主机用户目录下的var目录可能存放用户级的运行时数据。大部分站长不需要直接操作var目录,日志在logs目录查看,临时文件在tmp目录。如果程序需要写入运行时数据,可能会在var目录创建文件,确保该目录有写入权限。不要随意删除var目录下的文件,可能导致正在运行的进程异常。
bin文件夹存放可执行文件(二进制程序和脚本)。系统级的/bin目录存放基础命令(ls、cp、mv等),/usr/bin存放用户程序,这些目录普通用户没有写入权限,FTP中通常看不到。虚拟主机用户目录下的bin目录可能存放用户自己安装的程序或脚本,如自定义的备份脚本、命令行工具。如果你不需要自己安装命令行程序,bin目录基本用不到。不要把网站文件放到bin目录,无法通过域名访问。如果自己编写脚本放到bin目录,需要设置可执行权限(chmod +x)才能运行。
public_html是cPanel面板Linux虚拟主机的网站根目录,域名访问的文件都放在这个目录下。你上传的网站程序(WordPress、dedecms等)、图片、CSS、JS等所有可通过域名访问的文件都要放在public_html里。这个目录的权限通常是750或755,所有者是你的cPanel用户。不要在public_html外放置需要通过域名访问的文件,否则访问不到。子域名或附加域名的根目录默认在public_html下的子目录,如public_html/blog,也可以在cPanel中修改为public_html外的目录。
wwwroot是宝塔面板和Windows IIS环境的网站根目录名称。宝塔Linux面板中,每个网站的根目录默认是/www/wwwroot/域名,通过FTP连接后看到的wwwroot就是该网站的根目录。Windows IIS环境中,网站根目录默认是C:inetpubwwwroot,也可以在IIS管理器中自定义路径。无论哪种环境,wwwroot的作用和public_html一样,都是存放网站程序文件、用户通过域名访问的内容。上传文件时确认放到wwwroot目录下,不要放到上层目录。
vendor文件夹是PHP Composer的依赖包目录,存放通过composer install安装的第三方库。ThinkPHP、Laravel等现代PHP框架都用Composer管理依赖,vendor目录包含框架核心和所有第三方扩展。vendor目录通常很大(几百MB),包含大量文件,上传时耗时较长。正确的做法是在服务器上用composer install安装依赖,而不是把本地vendor目录上传。如果虚拟主机不支持SSH和Composer,只能在本地安装后上传vendor目录。vendor目录不需要写入权限,设为只读即可(755)。不要手动修改vendor目录中的文件,更新依赖时会被覆盖,自定义修改应该在自己的代码中完成。
cgi-bin文件夹用于存放CGI脚本(Perl、Python、Shell等可执行脚本),是早期动态网页技术的标准目录。cgi-bin目录通常在网站根目录下,有执行权限,放在这里的脚本可以通过http://域名/cgi-bin/脚本名执行。现在PHP、Node.js等技术已经取代了CGI,大部分网站不需要cgi-bin目录。但有些老程序或特定功能(如FormMail表单处理)仍然需要CGI支持。如果你不用CGI,可以删除cgi-bin目录,不影响PHP网站运行。如果需要用CGI,确保cgi-bin目录有执行权限(755),脚本文件有执行权限,脚本第一行指定解释器路径(如#!/usr/bin/perl)。
node_modules文件夹是Node.js的依赖包目录,存放通过npm install安装的所有包。如果你的网站用Node.js构建(如React、Vue前端项目),项目目录下会有node_modules。node_modules通常非常大(几百MB到几GB),包含大量小文件,FTP上传很慢且容易失败。正确的做法是在服务器上运行npm install安装依赖,或者在本地构建后只上传构建产物(dist目录),不上传node_modules和源码。node_modules不需要通过域名访问,应该放在网站根目录外,或者在Web服务器配置中禁止访问node_modules目录。不要把node_modules放到public目录下,会暴露源码和依赖。
logs文件夹存放网站的访问日志和错误日志。访问日志记录每个请求的IP、时间、请求URL、状态码、User Agent等信息,错误日志记录PHP错误、服务器错误、404错误等。日志文件通常按天或按大小轮转,文件名包含日期,如access_log.2024-01-01。日志目录对排查问题非常重要——网站被攻击时可以查访问日志找攻击IP,页面报错时可以查错误日志定位原因,SEO分析时可以查搜索引擎蜘蛛的抓取记录。日志文件不要删除,但可以定期清理旧日志释放空间,面板通常有日志轮转自动清理。
tmp文件夹是临时文件目录,用于存放PHP上传的临时文件、会话文件(如果配置为文件存储)、程序生成的临时数据。PHP上传文件时,文件先存放在tmp目录,处理完成后移动到目标目录,如果上传失败tmp中的临时文件会被自动清理。tmp目录需要有写入权限,否则文件上传会失败。tmp目录的文件系统会自动清理,不需要手动删除,但如果磁盘空间不足可以手动清理旧的临时文件。注意不要把重要文件放到tmp目录,随时可能被删除。部分主机的tmp目录在网站根目录外,FTP中可能看不到,需要通过面板的文件管理器访问。
session文件夹用于存储PHP会话文件(如果session配置为文件存储)。每个用户访问网站时,PHP会在session目录创建一个以sess_开头的文件,存储该用户的会话数据(如登录状态、购物车内容)。session目录需要写入权限,否则用户登录状态无法保持、购物车内容丢失。session文件有过期时间,过期后会被PHP的垃圾回收机制自动删除,但如果访问量小或配置不当,旧session文件可能积累占用空间,可以定期手动清理15天以上的session文件。注意不要删除正在使用的session文件,会导致用户掉线。部分主机的session目录在/tmp下,FTP中看不到。
站长反馈:「刚用虚拟主机时FTP里一堆文件夹不知道干嘛的,看了这篇才清楚public_html是放网站的,logs是看日志的,tmp是临时文件,以后管理文件不再乱删了」「之前把数据库备份放到public_html里,幸好看到文章说不能放根目录,赶紧移到backup目录,不然被人下载就麻烦了」。
经验总结:FTP目录结构虽然因面板和环境不同而有差异,但核心逻辑一致——网站根目录放可访问文件,根目录外放敏感文件和系统文件。记住几个关键目录:网站根目录(public_html/wwwroot)、日志目录(logs)、临时目录(tmp)、备份目录(backup)、证书目录(ssl)。管理网站文件时,上传前确认目录,删除前确认用途,权限设置遵循最小原则。遇到问题时先查日志(logs目录),很多错误都能从日志中找到原因。熟悉目录结构后,网站管理和故障排查都会高效很多。

更新时间:2026-08-30 16:41:01
上一篇:网站一句话木马清除:eval assert base64_decode排查_网站安全_防黑防挂马_安全加固