FTP中node_modules文件夹作用_Node.js依赖包目录
很多站长用FTP上传文件时,不知道该把文件放到哪个文件夹,导致上传后访问不到,或者误把网站程序放到了非根目录,网站打不开。其实关键就是找到网站根目录,不同环境下根目录的名称不同——cPanel是public_html,宝塔是wwwroot,Plesk是httpdocs,IIS是wwwroot,有些主机是www或htdocs。本文不仅讲解网站根目录的识别方法,还详细介绍根目录下和根目录外的其他文件夹作用,让你对整个目录结构有完整的认识,上传文件、排查问题、做安全配置都能得心应手。
FTP目录操作的安全注意事项。一是不要把敏感文件(配置文件、数据库备份、SSL私钥、.git目录)放到网站根目录下,根目录下的文件都可以通过URL访问,敏感文件必须放到根目录外。二是目录权限设置要合理,Linux下目录755、文件644是标准,需要写入的目录(uploads、runtime、data)设为755或775,不要全局777。三是定期检查网站目录,发现异常文件(如陌生的.php文件、被篡改的index.php)立即排查,可能是被入侵。四是上传文件前用杀毒软件扫描,避免上传带病毒或后门的文件。五是删除不用的目录和文件,减少攻击面。
.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清空),可能被主机商限制。
.htaccess文件是Apache和LiteSpeed Web Server的分布式配置文件,放在网站根目录下,用于配置伪静态规则、301重定向、访问控制、自定义错误页、Gzip压缩、浏览器缓存、PHP参数等。WordPress设置固定链接后会自动生成.htaccess,dedecms、ThinkPHP等程序也需要配置.htaccess伪静态规则。.htaccess是隐藏文件,FTP中需要开启显示隐藏文件才能看到。如果.htaccess不存在,可以手动创建。修改.htaccess后不需要重启服务器,立即生效。注意.htaccess语法错误会导致网站500错误,修改前备份,修改后测试网站是否正常访问。Nginx不支持.htaccess,需要在配置文件中写规则。
lib文件夹存放库文件(动态链接库.so和静态链接库.a),是程序运行依赖的共享库。系统级的/lib和/usr/lib目录存放系统库,普通用户只读。虚拟主机用户目录下的lib目录可能存放用户安装程序的依赖库,如自己编译的PHP扩展、Python模块。大部分站长不需要操作lib目录,只有在自己安装自定义扩展或程序时才需要用到。如果安装程序时提示找不到某个库文件,可能需要把库文件放到lib目录并设置LD_LIBRARY_PATH环境变量。不要删除lib目录中的文件,可能导致依赖的程序无法运行。
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进程才能生效。
var文件夹存放可变数据,包括运行时文件、缓存、锁文件、spool文件等。系统级的/var目录下有/var/log(日志)、/var/tmp(临时文件)、/var/run(进程PID文件)、/var/spool(邮件和打印队列)。虚拟主机用户目录下的var目录可能存放用户级的运行时数据。大部分站长不需要直接操作var目录,日志在logs目录查看,临时文件在tmp目录。如果程序需要写入运行时数据,可能会在var目录创建文件,确保该目录有写入权限。不要随意删除var目录下的文件,可能导致正在运行的进程异常。
.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目录下,会暴露源码和依赖。
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)。
public_html是cPanel面板Linux虚拟主机的网站根目录,域名访问的文件都放在这个目录下。你上传的网站程序(WordPress、dedecms等)、图片、CSS、JS等所有可通过域名访问的文件都要放在public_html里。这个目录的权限通常是750或755,所有者是你的cPanel用户。不要在public_html外放置需要通过域名访问的文件,否则访问不到。子域名或附加域名的根目录默认在public_html下的子目录,如public_html/blog,也可以在cPanel中修改为public_html外的目录。
www文件夹在很多虚拟主机中是public_html或wwwroot的符号链接(快捷方式),指向真正的网站根目录。有些主机同时提供www和public_html两个目录,其实是同一个位置,文件放哪个都一样。早期的一些主机面板用www作为根目录名称,现在更多用public_html或wwwroot。如果你在FTP中看到www和public_html同时存在,不要以为是两个独立目录,它们指向同一个位置,在一个目录中添加文件在另一个目录中也能看到。上传文件选哪个都行,但建议统一用一个,避免混淆。
用户真实体验:「网站上传后访问不到,查了半天才发现是传到了根目录外,应该放到public_html里,按文中说的移过去后网站正常了」「.htaccess是隐藏文件,FTP里一直看不到,按文中说的开启显示隐藏文件后找到了,修改伪静态规则后内页正常访问」。
经验总结:FTP目录结构虽然因面板和环境不同而有差异,但核心逻辑一致——网站根目录放可访问文件,根目录外放敏感文件和系统文件。记住几个关键目录:网站根目录(public_html/wwwroot)、日志目录(logs)、临时目录(tmp)、备份目录(backup)、证书目录(ssl)。管理网站文件时,上传前确认目录,删除前确认用途,权限设置遵循最小原则。遇到问题时先查日志(logs目录),很多错误都能从日志中找到原因。熟悉目录结构后,网站管理和故障排查都会高效很多。

更新时间:2026-08-26 21:35:46
上一篇:PbootCMS模板中调用热门文章_点击量排序与标签参数