架设一个网站,拆开来看就是租一台机器、装几个软件、把文件放上去、让域名指过来。每一步都有现成的工具和命令,真正容易出问题的地方往往不是技术本身,而是顺序乱了,或者某个端口忘了开。
先从买服务器开始。个人练手或者小项目,轻量应用服务器就够,1核2G的配置跑一个普通站点绰绰有余。国内服务器访问快,但要备案,备案没下来之前域名绑不了。香港或者海外的机器免备案,买完就能用,代价是延迟看线路,面向国内用户的话最好选带优化线路的机房。操作系统选Ubuntu 22.04或者Debian 12,资料多,遇到问题好搜。

买完之后你会拿到一个公网IP、一个root密码,有的服务商还让你在控制台里配好SSH密钥。Windows上连服务器用Xshell或者Putty,Mac和Linux直接开终端。命令是ssh root@你的服务器IP,第一次连会问你是否信任主机,输yes,然后输密码。进去之后先别急着装东西,把安全基础做一下。创建一个普通用户,给它sudo权限,然后把SSH密钥配好,禁用密码登录,再把默认的22端口改成一个不常用的端口。这几步花不了十分钟,但能挡掉绝大部分自动化扫描和暴力破解。云服务商的安全组里记得放行你改过的SSH端口,还有后面要用的80和443。
系统更新一下,apt update && apt upgrade -y。接下来装Web服务器,Nginx是现在最主流的选择。apt install nginx -y,装完浏览器访问服务器IP,能看到Nginx的欢迎页就说明跑起来了。数据库看你的程序需要什么,WordPress这类PHP程序装MariaDB,apt install mariadb-server -y,装完跑一下mysql_secure_installation,设root密码、删测试库、禁止远程root登录。PHP也要装,apt install php-fpm php-mysql,如果程序需要其他扩展,比如gd、curl、mbstring,一并装上。
Nginx的站点配置不要直接改默认文件,在/etc/nginx/sites-available/下面新建一个以你域名命名的配置文件。里面写server块,listen 80,server_name 你的域名,root指向/var/www/你的域名,index指定index.php和index.html。PHP的处理块用fastcgi_pass指向php-fpm的socket,路径通常在/run/php/下面,具体版本号看你装的PHP版本。写完之后用ln -s把它链接到sites-enabled目录,跑nginx -t检查语法,没问题就systemctl reload nginx。
网站文件怎么传上去,看你习惯。用FileZilla或者WinSCP走SFTP,把本地做好的文件拖到/var/www/你的域名目录里。如果你用Git管理代码,直接在服务器上git clone也行。传完之后把目录权限设一下,chown -R www-data:www-data /var/www/你的域名,不然Nginx读不了文件,会报403。
域名解析这一步在域名注册商那边操作。找到DNS管理,加一条A记录,主机记录填@,记录值填你的服务器IP。想让www也能访问,再加一条主机记录为www的A记录,或者加一条CNAME指向@。解析生效一般几分钟到几小时,用ping或者在线DNS查询工具确认一下返回的IP对不对。
HTTPS现在基本是标配,不配的话浏览器会标不安全。Certbot是最省事的工具,apt install certbot python3-certbot-nginx,然后跑certbot --nginx -d 你的域名 -d www.你的域名。它会自动改Nginx配置,把80的请求跳转到443,证书到期前也会自动续。跑完之后浏览器地址栏出现锁图标,点开能看到证书有效期是90天,不用你操心续期的事。
防火墙用ufw的话,先把Nginx和OpenSSH放行,ufw allow 'Nginx Full',ufw allow OpenSSH,然后ufw enable。再装一个fail2ban,它盯着日志,发现某个IP反复尝试登录就自动封掉,对暴露在公网的服务器来说很实用。
全部配完,打开浏览器输入你的域名,看到网站正常显示,这件事就算成了。后面如果遇到502,先看php-fpm是不是在跑;遇到403,检查文件权限和Nginx的root路径;遇到404,看index文件是不是放对了位置。日志在/var/log/nginx/下面,error.log里通常会告诉你具体哪里出了问题。
最后提一句备份。网站跑起来之后,数据库和上传的文件最好定期备一份。写个简单的cron脚本,每天把数据库导出成sql,把网站目录打包,传到另一台机器或者对象存储里。这件事平时感觉不到作用,真出问题的时候能救命。