我的知识记录

FTP中data文件夹作用_数据目录与运行时数据

很多站长用FTP上传文件时,不知道该把文件放到哪个文件夹,导致上传后访问不到,或者误把网站程序放到了非根目录,网站打不开。其实关键就是找到网站根目录,不同环境下根目录的名称不同——cPanel是public_html,宝塔是wwwroot,Plesk是httpdocs,IIS是wwwroot,有些主机是www或htdocs。本文不仅讲解网站根目录的识别方法,还详细介绍根目录下和根目录外的其他文件夹作用,让你对整个目录结构有完整的认识,上传文件、排查问题、做安全配置都能得心应手。

.git文件夹是Git版本控制系统的仓库数据目录,包含所有提交历史、分支、标签、配置信息。如果你用Git管理网站代码,在网站目录下初始化Git仓库后会生成.git目录。.git目录包含完整的代码历史,如果放到网站根目录且允许访问,他人可以通过http://域名/.git/config获取仓库信息,甚至下载完整源码,造成代码泄露。所以绝对不要把.git目录放到网站根目录下,或者在Web服务器配置中禁止访问.git目录(Nginx用location ~ /.git { deny all; },Apache用.htaccess的RewriteRule)。正确的做法是用Git部署时,代码仓库放在网站根目录外,只把需要运行的文件复制或软链接到根目录。

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)。

etc文件夹是Linux系统的配置文件目录,存放系统级和服务级的配置文件,如apache的httpd.conf、nginx的nginx.conf、php.ini、mysql的my.cnf等。虚拟主机用户通常只能看到自己用户目录下的etc子目录,存放用户级自定义配置,如.htaccess、php.ini、user.ini等。系统级的/etc目录普通用户没有访问权限,FTP中看不到。如果你需要修改PHP配置,可以在网站根目录创建php.ini或.user.ini文件覆盖默认配置,不需要也不能修改系统级的/etc/php.ini。修改配置后可能需要重启PHP进程才能生效。

bin文件夹存放可执行文件(二进制程序和脚本)。系统级的/bin目录存放基础命令(ls、cp、mv等),/usr/bin存放用户程序,这些目录普通用户没有写入权限,FTP中通常看不到。虚拟主机用户目录下的bin目录可能存放用户自己安装的程序或脚本,如自定义的备份脚本、命令行工具。如果你不需要自己安装命令行程序,bin目录基本用不到。不要把网站文件放到bin目录,无法通过域名访问。如果自己编写脚本放到bin目录,需要设置可执行权限(chmod +x)才能运行。

var文件夹存放可变数据,包括运行时文件、缓存、锁文件、spool文件等。系统级的/var目录下有/var/log(日志)、/var/tmp(临时文件)、/var/run(进程PID文件)、/var/spool(邮件和打印队列)。虚拟主机用户目录下的var目录可能存放用户级的运行时数据。大部分站长不需要直接操作var目录,日志在logs目录查看,临时文件在tmp目录。如果程序需要写入运行时数据,可能会在var目录创建文件,确保该目录有写入权限。不要随意删除var目录下的文件,可能导致正在运行的进程异常。

www文件夹在很多虚拟主机中是public_html或wwwroot的符号链接(快捷方式),指向真正的网站根目录。有些主机同时提供www和public_html两个目录,其实是同一个位置,文件放哪个都一样。早期的一些主机面板用www作为根目录名称,现在更多用public_html或wwwroot。如果你在FTP中看到www和public_html同时存在,不要以为是两个独立目录,它们指向同一个位置,在一个目录中添加文件在另一个目录中也能看到。上传文件选哪个都行,但建议统一用一个,避免混淆。

wwwroot是宝塔面板和Windows IIS环境的网站根目录名称。宝塔Linux面板中,每个网站的根目录默认是/www/wwwroot/域名,通过FTP连接后看到的wwwroot就是该网站的根目录。Windows IIS环境中,网站根目录默认是C:inetpubwwwroot,也可以在IIS管理器中自定义路径。无论哪种环境,wwwroot的作用和public_html一样,都是存放网站程序文件、用户通过域名访问的内容。上传文件时确认放到wwwroot目录下,不要放到上层目录。

用户真实体验:「网站上传后访问不到,查了半天才发现是传到了根目录外,应该放到public_html里,按文中说的移过去后网站正常了」「.htaccess是隐藏文件,FTP里一直看不到,按文中说的开启显示隐藏文件后找到了,修改伪静态规则后内页正常访问」。

安全提醒:网站根目录是公开可访问的,任何放到根目录下的文件都可能被他人通过URL下载,敏感文件(数据库备份、配置文件、SSL私钥、SSH密钥、.git仓库)必须放到根目录外的目录(如backup、ssl、.ssh)。目录权限遵循最小权限原则,需要写入的目录才开写入权限,其他目录只读。上传目录(uploads)必须禁止执行PHP脚本,防止webshell上传。定期检查目录文件,发现异常立即排查。FTP密码使用复杂组合,不要在公共网络使用明文FTP,建议用SFTP加密传输。

FTP中data文件夹作用_数据目录与运行时数据

标签:

更新时间:2026-09-03 14:16:40

上一篇:网站能上QQ但打不开网页_DNS问题诊断与修复

下一篇:网站备份前先暂停会员充值接口_虚拟主机实用教程