在服务器上创建站点和FTP,核心就两步:把网站文件跑起来,再开一个能上传文件到这台服务器的通道。 下面按Windows和Linux两种主流环境拆开细说,顺便把那些容易踩的坑提前指出来。
服务器创建站点之前,你得先弄明白这几件事
很多人一上来就闷头装软件,结果域名解析不对、目录权限炸了,折腾半天,在服务器上创建站点和FTP,准备工作比操作本身更重要。
选对服务器环境:Windows还是Linux
- Windows Server:自带IIS,图形界面,适合对命令行不熟的新手,ASP.NET站点首选。
- Linux发行版(如Ubuntu、CentOS):用Nginx或Apache,资源占用小,PHP类站点居多,连服务器用SSH。
行业共识认为,Linux服务器在稳定性上比Windows更胜一筹,但如果你的程序是.NET系列,老老实实选Windows更省心。
准备清单
- 一台有公网IP的服务器(云服务器或物理机都行,本地虚拟机只能自己玩)。
- 域名,并做好A记录解析到服务器IP。
- 服务器安全组(云控制台里)或防火墙放行80/443端口,以及FTP要用到的21端口和数据端口。
- 一个非root/非Administrator的日常账号,别用超级管理员跑站点。
Windows服务器上创建网站的详细步骤(IIS)
Windows环境下,微软官方给的方案是IIS,不需要额外装第三方工具,跟着下面步骤走就能建好。
安装IIS角色
- 打开“服务器管理器”,点击“添加角色和功能”。
- 一路下一步,勾选“Web服务器(IIS)”。
- 在角色服务里,确认勾选了“常见HTTP功能”下的“静态内容”和“默认文档”。
- 安装完成后,浏览器访问服务器IP,能看到IIS默认页面就代表成功。
这里有个容易漏的地方:必须在“管理工具”里找到“Internet Information Services(IIS)管理器”,以后所有操作都从这里进。
创建站点并绑定域名
- 打开IIS管理器,右键点击“网站”,选择“添加网站”。
- 站点名称随便填,比如
mysite。 - 物理路径选择你的网站代码目录,比如
C:wwwmysite,建议先建好这个文件夹,把网站文件放进去。 - 绑定类型选HTTP,IP地址选“全部未分配”,端口写80,主机名填你的完整域名,例如
www.example.com。 - 确定后,站点列表里就会多出这个网站。
给站点目录设置权限
IIS默认使用IUSR和IIS_IUSRS账号访问文件,右键你网站文件夹,进入“安全”,添加这两个账号,并授予“读取和执行”权限,如果站点需要写入上传文件,再加“修改”权限,这一步不做,网站经常显示403或无权访问。
设置默认文档
在IIS里双击你的站点,找到“默认文档”,添加index.php、index.html这些入口文件名,然后上移到第一位,否则访问域名可能直接列出目录或者报404。
Linux服务器上创建网站的详细步骤(Nginx)
Linux环境下,大家用得最多的是Nginx,配置简洁,性能也稳,以Ubuntu 22.04为例,操作路径如下。
安装Nginx
sudo apt update sudo apt install nginx -y
装完启动,并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
访问服务器IP,看到“Welcome to nginx”就是成功了。
创建站点配置文件
Nginx的站点配置都放在/etc/nginx/sites-available/下,需要手动启用。
创建配置文件,名字最好是域名,
sudo nano /etc/nginx/sites-available/example.com
写入以下内容(这是最精简的配置):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html;
}
创建网站目录:
sudo mkdir -p /var/www/example.com
- 将配置软链接到
sites-enabled目录,让Nginx加载它:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
测试配置语法并重载:
sudo nginx -t sudo systemctl reload nginx
这时把你的网站文件丢进/var/www/example.com,绑定的域名就能访问了,注意,server_name必须和域名解析完全一致,否则Nginx会跳到默认站点。
处理PHP动态站点
如果网站需要跑PHP,最好加上PHP-FPM配置,安装php-fpm后在Nginx配置文件里加一段:
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
具体版本要和实际安装的PHP对应,不然会报502。
FTP服务器怎么搭建:从账号到目录权限
网站建好了,接下来就是解决“怎么把文件传上去”的问题,这里说一下FTP服务器怎么搭建,按Windows和Linux分开说明。
Windows上用FileZilla Server搭建FTP
FileZilla Server是Windows下最常用的FTP服务端,图形界面,配置直观。
- 下载安装FileZilla Server,安装时会让选端口,默认行,装完自动启动控制台。
- 左侧点击“用户”,在“常规”页面点“添加”,起个用户名。
- 勾选“密码”,设置账号密码。
- 在“挂载点”里,点击“添加”,选择网站目录(比如
C:wwwmysite),作为FTP根目录。 - “权限”里把“读”和“写”勾上,如果只上传不下载,可以只给写。
这样FTP账号就建好了,客户端连接时,FTP服务器地址填你的公网IP或域名,端口默认21,用户名密码就是你刚创建的。
Linux上用vsftpd搭建FTP
vsftpd是Linux最老牌的FTP服务端,也最安全。
sudo apt install vsftpd -y
改配置前先备份:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
编辑配置文件:
sudo nano /etc/vsftpd.conf
至少修改或取消注释这几项:
write_enable=YES local_enable=YES chroot_local_user=YES allow_writeable_chroot=YES pasv_min_port=30000 pasv_max_port=31000
其中被动模式端口范围特别重要,云服务器安全组必须放行30000-31000端口,否则FTP能连上但列目录卡死。
重启vsftpd:
sudo systemctl restart vsftpd
这时系统用户(如youruser)就用youruser和系统密码来连FTP,默认访问自己的家目录,所以你要做的是把站点目录规划在用户家目录内,或者建一个系统用户专门对应网站目录。
给FTP用户绑定到网站目录
最省事的办法是,创建一个系统用户,家目录直接指向网站目录:
sudo useradd -d /var/www/example.com ftpuser sudo passwd ftpuser
然后把网站目录所有者给这个用户:
sudo chown -R ftpuser:www-data /var/www/example.com
这样ftpuser登录后直接落在站点根目录,权限也够。
创建站点和FTP时最容易翻车的几个细节
这里不看操作攻略,直接说真实环境下最常见的故障。
防火墙和安全组不是一回事
云服务器的安全组在控制台里,默认只放行22/3389和80/443,FTP的21端口和数据端口经常被拦,而服务器内部还有本地防火墙,比如Linux的
ufw或Windows的“高级安全Windows防火墙”,两边都得放行,少一个都连不上。
FTP主动模式与被动模式
多数宽带网络下,客户端在NAT后面,必须用被动模式,如果你在主机的FTP客户端老是“列出目录失败”,先切到被动模式,然后把服务器的被动端口范围提前规划好,并放行。
权限冲突导致上传失败
FTP能登录,但传文件提示553或550,几乎都是目录写权限不够,Windows下检查FTP用户对目录是否有“修改”权限,Linux下检查:
ls -ld /var/www/example.com
确保用户或用户组有w权限,不要偷懒用chmod 777,有安全隐患。
域名访问不到但IP却可以
大概率是域名解析没生效或server_name配置错误,先用ping命令看域名解析出来的IP是不是服务器IP,IP访问正常,域名不行,问题只出在域名解析和站点绑定。
关于服务器创建站点和FTP的常见问题解答
服务器上创建站点和FTP,端口如何规划?
Web站点默认走80(HTTP)和443(HTTPS),FTP控制端口默认21,FTP数据端口,主动模式用20,被动模式建议指定一段高位端口,比如30000-31000,并全部在安全组和防火墙放行。不建议把FTP端口改成不常见的端口,碰到特殊网络环境反而更难排错。
用Windows还是Linux来创建网站和FTP服务?
这取决于你网站代码的运行环境,ASP.NET、Access数据库这类微软技术栈优先Windows Server + IIS,PHP、Python、Node.js这类大多推荐Linux,因为资源占用低,进程管理灵活,在服务器上创建站点和FTP的难度,两者差别不大,Windows全靠点鼠标,Linux需要敲命令,但熟练后效率更高。
FTP连接上了却看不到任何文件是怎么回事?
最常见原因是FTP账号的根目录指向了一个空目录或权限不足,检查FTP服务端配置中该用户的挂载点或家目录是否设成了站点根目录,如果设对了,再看目录权限,Linux下还要确认chroot_local_user配置是否开启了限制,导致用户只锁定在自己的目录里,而目录里没有内容,把FTP根目录调整到实际网站文件所在目录即可解决,据工信部发布的互联网基础服务普及情况来看,这个故障在自助建站用户中出现的频率相当高,但排查起来只需几分钟。
从站点配置到FTP上传,整个流程其实是一条线:先有目录,再跑Web服务,最后开FTP把文件送进去,按照上面的步骤把每一步落到具体文件夹和端口上,服务器上创建站点和FTP这件事就变得非常直接。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/727264.html





