linux怎么搭建web服务器

linux怎么搭建web服务器

我上周刚帮朋友在一台淘汰的服务ThinkPad上搭了个网站,用的服务就是Linux。说实话,服务整个过程比装Windows再装IIS快多了,服务从零到能访问页面,服务没超过半小时。服务你只要有台能跑Linux的服务机器,哪怕是服务最便宜的云服务器,这事儿就能成。服务

先装个Nginx或者Apache。服务我推荐Nginx,服务它轻快,服务配置起来也不绕弯子。服务以Ubuntu为例,服务打开终端敲sudo apt update,服务然后sudo apt install nginx -y。等它跑完,你在浏览器输入服务器IP,看到“Welcome to nginx!”那个页面,说明web服务器本体已经活了。这一步通常不会出幺蛾子,除非你网络断了或者源没配好。

光有默认页面不行,你得放自己的东西进去。Nginx的默认网站根目录在/var/www/html,你直接往里头扔一个index.html文件就行。比如用sudo nano /var/www/html/index.html写几行简单的HTML,保存退出。再刷新浏览器,你会发现默认页没了,换成你写的“Hello, World!”。到这儿,一个静态web服务器就算立住了。

但静态页面不够用,谁都得跑点动态逻辑,比如处理表单或者连数据库。这时候得装PHP和MySQL(或者MariaDB,它俩几乎一样)。Ubuntu上一条命令搞定PHP:sudo apt install php-fpm php-mysql -y。装完得让Nginx知道怎么把PHP请求转给PHP-FPM处理,编辑/etc/nginx/sites-available/default这个文件,找到location ~ \.php$那段,把注释去掉,改一下fastcgi_pass的地址,通常是unix:/run/php/php8.1-fpm.sock。改完保存,执行sudo systemctl reload nginx让配置生效。

数据库那边也别怕,sudo apt install mariadb-server -y,装完跑一遍sudo mysql_secure_installation设个root密码,删掉测试库,锁一下匿名账户。之后你就能用PHP的mysqli扩展去连它了。我朋友那台笔记本,就是靠这套组合跑了个带用户注册的小论坛,访问量不大,但稳定跑了两周没重启过。

如果你想让外网的人也能访问,得处理防火墙和端口转发。服务器上执行sudo ufw allow 'Nginx Full'放行80和443端口,然后在路由器管理页面把外网端口映射到这台机器的内网IP上。这一步最容易被忽略,很多人卡在“我本地能开,别人打不开”,十有八九是防火墙没放行或者路由器没映射。

最后提一嘴日志。Nginx的日志在/var/log/nginx/access.log和error.log,出错时别瞎猜,直接tail -f /var/log/nginx/error.log看实时输出,哪里配错了它都会明明白白告诉你。我调试PHP连接数据库那会儿,就是靠看日志发现是socket路径写错了,改一行就好。

整个过程没什么玄学,就是装包、改配置、看日志这三件事循环。你第一次搭可能会手忙脚乱,但搭完一次,下次再让你搭个带SSL证书的HTTPS站点,你大概自己就能摸索着来。Linux的好处就在这——它不替你决定,但给你足够的线索去找到问题。