FTP中etc文件夹作用_配置文件目录与自定义配置
FTP连接到服务器后看到的文件夹列表因主机环境而异,Linux虚拟主机和Windows虚拟主机的目录结构不同,cPanel、宝塔、DirectAdmin等不同面板的默认目录也有差异。但核心目录的作用是相通的,比如网站根目录、日志目录、临时目录、配置目录。本文按目录功能分类讲解,覆盖Linux和Windows环境下的常见目录,说明每个目录的作用、是否可以删除、权限设置建议、常见问题处理。读完本文你就能清楚地知道FTP里每个文件夹是干什么的,管理文件时不再迷茫。
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)。
.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密钥登录失效。
ssl或certs文件夹存放SSL证书文件,包括证书文件(.crt或.pem)、私钥文件(.key)、证书链文件(.ca-bundle)。cPanel中SSL证书在「SSL/TLS」中管理,证书文件实际存放在用户目录下的ssl文件夹。宝塔面板的证书存放在/server/panel/vhost/cert目录。证书文件包含敏感的私钥,私钥泄露会导致HTTPS通信被破解,所以ssl目录权限要严格设置,只有所有者可读(600或700),不要把私钥文件放到网站根目录。如果需要手动安装证书,把证书文件和私钥文件上传到ssl目录,然后在面板中配置或在Web服务器配置文件中引用。
.htaccess文件是Apache和LiteSpeed Web Server的分布式配置文件,放在网站根目录下,用于配置伪静态规则、301重定向、访问控制、自定义错误页、Gzip压缩、浏览器缓存、PHP参数等。WordPress设置固定链接后会自动生成.htaccess,dedecms、ThinkPHP等程序也需要配置.htaccess伪静态规则。.htaccess是隐藏文件,FTP中需要开启显示隐藏文件才能看到。如果.htaccess不存在,可以手动创建。修改.htaccess后不需要重启服务器,立即生效。注意.htaccess语法错误会导致网站500错误,修改前备份,修改后测试网站是否正常访问。Nginx不支持.htaccess,需要在配置文件中写规则。
.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清空),可能被主机商限制。
运维评价:「了解目录结构是虚拟主机运维的基础,很多问题都是因为文件放错目录或权限设置不对。给客户做培训时都会先讲目录结构,能避免很多低级错误」「安全方面确实要注意,.git、备份文件、配置文件绝对不能放根目录,见过不少因为这个被拖库的案例,目录权限和位置一定要重视」。
安全提醒:网站根目录是公开可访问的,任何放到根目录下的文件都可能被他人通过URL下载,敏感文件(数据库备份、配置文件、SSL私钥、SSH密钥、.git仓库)必须放到根目录外的目录(如backup、ssl、.ssh)。目录权限遵循最小权限原则,需要写入的目录才开写入权限,其他目录只读。上传目录(uploads)必须禁止执行PHP脚本,防止webshell上传。定期检查目录文件,发现异常立即排查。FTP密码使用复杂组合,不要在公共网络使用明文FTP,建议用SFTP加密传输。

更新时间:2026-08-27 10:36:41