我的知识记录

FTP中email文件夹作用_邮箱目录与邮件文件

FTP中的文件夹可以分为几大类:网站内容目录(存放网站程序文件,用户可通过域名访问)、系统目录(存放服务器配置和程序文件,用户一般不需要操作)、日志目录(存放访问日志和错误日志,用于排查问题)、临时目录(存放临时文件,系统自动清理)、配置目录(存放自定义配置文件)、备份目录(存放自动备份文件)、安全目录(存放SSL证书、SSH密钥等)。本文按这几个分类详细讲解每个目录的作用和操作注意事项,帮助你建立清晰的目录认知。

.user.ini文件是PHP的用户级自定义配置文件,放在网站根目录下,用于覆盖php.ini的默认配置,如memory_limit、upload_max_filesize、max_execution_time、display_errors等。.user.ini是PHP 5.3以上版本支持的功能,比php.ini更灵活,每个目录可以有自己的.user.ini。虚拟主机通常允许用户通过.user.ini自定义PHP参数,不需要修改全局php.ini。.user.ini是隐藏文件,FTP中需开启显示隐藏文件。修改.user.ini后,PHP有缓存机制(默认user_ini.cache_ttl=300秒),最多5分钟后生效,不需要重启服务器。注意不要在.user.ini中设置危险参数(如disable_classes清空),可能被主机商限制。

FTP目录操作的安全注意事项。一是不要把敏感文件(配置文件、数据库备份、SSL私钥、.git目录)放到网站根目录下,根目录下的文件都可以通过URL访问,敏感文件必须放到根目录外。二是目录权限设置要合理,Linux下目录755、文件644是标准,需要写入的目录(uploads、runtime、data)设为755或775,不要全局777。三是定期检查网站目录,发现异常文件(如陌生的.php文件、被篡改的index.php)立即排查,可能是被入侵。四是上传文件前用杀毒软件扫描,避免上传带病毒或后门的文件。五是删除不用的目录和文件,减少攻击面。

.htaccess文件是Apache和LiteSpeed Web Server的分布式配置文件,放在网站根目录下,用于配置伪静态规则、301重定向、访问控制、自定义错误页、Gzip压缩、浏览器缓存、PHP参数等。WordPress设置固定链接后会自动生成.htaccess,dedecms、ThinkPHP等程序也需要配置.htaccess伪静态规则。.htaccess是隐藏文件,FTP中需要开启显示隐藏文件才能看到。如果.htaccess不存在,可以手动创建。修改.htaccess后不需要重启服务器,立即生效。注意.htaccess语法错误会导致网站500错误,修改前备份,修改后测试网站是否正常访问。Nginx不支持.htaccess,需要在配置文件中写规则。

.ssh文件夹存放SSH密钥对和配置文件,包括id_rsa(私钥)、id_rsa.pub(公钥)、authorized_keys(授权公钥列表)、known_hosts(已知主机指纹)、config(SSH客户端配置)。.ssh目录权限必须是700,authorized_keys文件权限必须是600,否则SSH密钥认证会失败(SSH出于安全考虑会拒绝权限过宽的密钥文件)。私钥文件id_rsa是敏感文件,泄露后他人可以用你的密钥登录服务器,必须严格保护。如果你用SSH密钥登录服务器,.ssh目录会自动创建。FTP中.ssh是隐藏目录,需要开启显示隐藏文件才能看到。不要删除.ssh目录,否则SSH密钥登录失效。

backup或backups文件夹存放网站和数据库的备份文件。很多虚拟主机面板会自动定期备份,备份文件存放在这个目录,包括完整备份(文件+数据库+邮件+配置)和增量备份。备份文件通常是tar.gz或zip格式,文件名包含备份日期。备份目录对数据安全非常重要,网站被黑、误删文件、数据库损坏时,可以从备份恢复。注意不要把备份文件放在网站根目录下(public_html内),否则可能被他人通过URL下载,导致数据泄露。备份文件应该放在根目录外的backup目录,或者下载到本地和云端存储。定期检查备份是否正常生成,测试备份文件能否正常恢复。

.well-known文件夹是标准化的验证目录,用于各种域名所有权验证和协议配置。最常见的是acme-challenge子目录,Let's Encrypt等免费SSL证书在申请时需要验证域名所有权,验证方式是在网站根目录的.well-known/acme-challenge下创建一个验证文件,证书颁发机构通过HTTP访问该文件确认你拥有域名。.well-known还用于其他验证,如Apple Pay的域名验证、Google Search Console的验证、Bing网站管理员工具验证等。这个目录通常由验证工具自动创建和管理,不需要手动操作,但如果自动验证失败,可以手动创建目录和验证文件。.well-known目录在网站根目录下,需要确保Web服务器可以访问。

public_html是cPanel面板Linux虚拟主机的网站根目录,域名访问的文件都放在这个目录下。你上传的网站程序(WordPress、dedecms等)、图片、CSS、JS等所有可通过域名访问的文件都要放在public_html里。这个目录的权限通常是750或755,所有者是你的cPanel用户。不要在public_html外放置需要通过域名访问的文件,否则访问不到。子域名或附加域名的根目录默认在public_html下的子目录,如public_html/blog,也可以在cPanel中修改为public_html外的目录。

htdocs是XAMPP、WAMP等本地集成环境和部分Apache虚拟主机的网站根目录名称。htdocs是hypertext documents的缩写,即超文本文档目录,存放网页文件。如果你用XAMPP在本地开发网站,网站文件放在xampp/htdocs目录下,通过http://localhost访问。部分海外虚拟主机也用htdocs作为根目录。作用和public_html、wwwroot完全相同,只是命名不同。上传文件时确认主机的根目录名称,放到正确的目录下,不要因为名称不同而困惑。

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

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

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目录下,会暴露源码和依赖。

vendor文件夹是PHP Composer的依赖包目录,存放通过composer install安装的第三方库。ThinkPHP、Laravel等现代PHP框架都用Composer管理依赖,vendor目录包含框架核心和所有第三方扩展。vendor目录通常很大(几百MB),包含大量文件,上传时耗时较长。正确的做法是在服务器上用composer install安装依赖,而不是把本地vendor目录上传。如果虚拟主机不支持SSH和Composer,只能在本地安装后上传vendor目录。vendor目录不需要写入权限,设为只读即可(755)。不要手动修改vendor目录中的文件,更新依赖时会被覆盖,自定义修改应该在自己的代码中完成。

运维评价:「了解目录结构是虚拟主机运维的基础,很多问题都是因为文件放错目录或权限设置不对。给客户做培训时都会先讲目录结构,能避免很多低级错误」「安全方面确实要注意,.git、备份文件、配置文件绝对不能放根目录,见过不少因为这个被拖库的案例,目录权限和位置一定要重视」。

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

FTP中email文件夹作用_邮箱目录与邮件文件

标签:

更新时间:2026-08-27 10:39:28

上一篇:thinkphp apache环境public目录设置_htaccess文件配置方法

下一篇:网站发布后移动端404_移动模板与路径问题