Linux服务器下如何新建网站:一步步搭建你的线上空间
拥有一个Linux服务器,意味着你掌握了一块功能强大的网络基石,无论是建立个人博客、企业官网,还是运行一个Web应用,在Linux服务器上新建一个网站是核心技能,这个过程涉及多个环节,需要清晰的步骤和一定的技术理解,本文将引导你完成从零开始,在Linux服务器上成功部署一个新网站的全过程。
核心准备:域名与服务器

-
域名准备:
- 你需要一个域名(如
yourdomain.com
),在域名注册商处购买并完成实名认证。 - 关键步骤:域名解析。 登录域名注册商或DNS服务商(如阿里云DNS、Cloudflare)的管理后台,添加一条
A记录
:- 主机记录: 通常填写 (表示主域名本身) 或
www
(表示www.yourdomain.com
) 或你需要的子域名(如blog
)。 - 记录类型: 选择
A
。 - 记录值: 填写你的Linux服务器的公网IP地址。
- TTL: 默认值即可(如600秒),保存设置。
- 主机记录: 通常填写 (表示主域名本身) 或
- 重要提示: 域名解析需要时间(几分钟到几小时不等)才能在全球生效,在生效前,你无法通过域名访问服务器。
- 你需要一个域名(如
-
服务器基础环境:
- 确保你拥有一个安装了Linux操作系统(如Ubuntu, CentOS, Debian等)的服务器,并通过SSH拥有管理员(root或具有sudo权限的)用户访问权限。
- 服务器需要开放必要的端口:
80
(HTTP) 和443
(HTTPS) 是必须的。22
(SSH) 用于管理,请在你的服务器安全组(防火墙)规则中放行这些端口。
核心步骤:搭建网站运行环境
一个典型的动态网站(如使用PHP的WordPress)需要三个基础组件:Web服务器、数据库和编程语言解释器,最流行的组合是 LNMP/LAMP。
- LNMP: Linux + Nginx + MySQL/MariaDB + PHP
- LAMP: Linux + Apache + MySQL/MariaDB + PHP
本文以 LNMP 环境为例进行说明,因其性能和高并发处理能力在当今更受青睐,选择适合你的发行版命令(Ubuntu/Debian 使用 apt
, CentOS/RHEL 使用 yum
或 dnf
)。
-
更新系统包:
sudo apt update && sudo apt upgrade -y # Ubuntu/Debian # 或 sudo yum update -y # CentOS 7 # 或 sudo dnf upgrade -y # CentOS 8+/RHEL
-
安装 Nginx Web 服务器:
sudo apt install nginx -y # Ubuntu/Debian # 或 sudo yum install nginx -y # CentOS 7 # 或 sudo dnf install nginx -y # CentOS 8+/RHEL
安装完成后,启动Nginx并设置开机启动:
sudo systemctl start nginx sudo systemctl enable nginx
在浏览器中输入你的服务器公网IP地址,应该能看到Nginx的默认欢迎页面,这表明Nginx已成功运行。
-
安装 MySQL/MariaDB 数据库:
sudo apt install mysql-server -y # Ubuntu/Debian (通常安装MariaDB) # 或 sudo yum install mariadb-server -y # CentOS 7 # 或 sudo dnf install mariadb-server -y # CentOS 8+/RHEL
启动数据库并设置开机启动:
sudo systemctl start mariadb # 或 mysql sudo systemctl enable mariadb # 或 mysql
关键安全配置: 运行初始安全设置脚本:
sudo mysql_secure_installation
按提示操作:设置root密码(务必牢记),移除匿名用户,禁止root远程登录,删除测试数据库,重载权限表。
-
安装 PHP 及其常用扩展:
PHP版本需根据你的网站程序要求选择(如PHP 7.4, 8.0, 8.1等),以安装PHP 8.1和Nginx所需的核心扩展为例:# Ubuntu/Debian (可能需要先添加PPA或使用默认仓库) sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y # CentOS 7 (可能需要启用EPEL/REMI仓库) sudo yum install epel-release sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php81 sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y # CentOS 8+/RHEL (使用AppStream) sudo dnf install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip -y
安装完成后,启动PHP-FPM进程管理器并设置开机启动:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
核心步骤:创建你的网站
-
创建网站根目录:
网站文件存放在/var/www/
目录下,为你的域名创建一个专属目录:sudo mkdir -p /var/www/yourdomain.com/public_html
yourdomain.com
替换为你的实际域名,这有助于管理多个网站。public_html
是网站实际文件(如index.html, WordPress文件)存放的位置。
-
设置目录权限:
为了保证安全性和Web服务器能正常读写文件,需要设置合适的权限,通常将目录所有权赋予Web服务器用户(Nginx默认用户通常是www-data
或nginx
):# 确定Nginx用户 (Ubuntu/Debian通常是www-data, CentOS通常是nginx) grep -i 'user' /etc/nginx/nginx.conf # 假设用户是 www-data (请根据实际情况替换) sudo chown -R www-data:www-data /var/www/yourdomain.com/public_html sudo chmod -R 755 /var/www/yourdomain.com
专业提示: 对于需要上传文件的程序(如WordPress),可能需要更精细的权限控制(如将
wp-content/uploads
目录权限设为775或设置SGID位)。 -
创建Nginx服务器块(虚拟主机)配置:
Nginx使用服务器块(server block
)来管理多个网站,在/etc/nginx/sites-available/
目录下创建配置文件:sudo nano /etc/nginx/sites-available/yourdomain.com
粘贴以下基础配置模板(根据你的PHP版本和路径修改):
server { listen 80; listen [::]:80; # IPv6 server_name yourdomain.com www.yourdomain.com; # 替换为你的域名 root /var/www/yourdomain.com/public_html; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; # 对PHP程序友好 } # 处理PHP文件请求 location ~ \.php$ { include snippets/fastcgi-php.conf; # Ubuntu/Debian路径 # 或 include /etc/nginx/fastcgi_params; # CentOS常见路径 fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # 替换为你的PHP-FPM sock路径和版本 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 静态文件缓存设置 (可选但推荐) location ~* \.(jpg|jpeg|gif|png|css|js|ico|webp)$ { expires 30d; add_header Cache-Control "public, no-transform"; } # 拒绝访问隐藏文件 (如.htaccess) location ~ /\.ht { deny all; } # 自定义错误页 (可选) error_page 404 /404.html; location = /404.html { root /var/www/yourdomain.com/public_html; internal; } }
重要修改点:
server_name
: 务必替换成你的域名。root
: 指向你创建的public_html
目录。fastcgi_pass
: 确认PHP-FPM sock文件的路径和版本(ls /var/run/php/php*.sock
查看),这是Nginx与PHP通信的关键。
-
启用网站配置:
在/etc/nginx/sites-enabled/
目录下创建一个指向可用配置的符号链接:sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
测试Nginx配置是否有语法错误:
sudo nginx -t
如果显示
syntax is ok
和test is successful
,则重载Nginx使新配置生效:sudo systemctl reload nginx
-
创建测试文件:
在网站根目录/var/www/yourdomain.com/public_html/
下创建一个简单的测试文件:sudo nano /var/www/yourdomain.com/public_html/index.html
<!DOCTYPE html> <html> <head> <title>Hello World!</title> </head> <body> <h1>Congratulations!</h1> <p>Your website on Linux server is working!</p> </body> </html>
保存退出,在浏览器中访问你的域名(
http://yourdomain.com
),应该能看到这个“Congratulations!”页面。 -
(可选但强烈推荐)安装SSL证书启用HTTPS:
使用免费且自动化的Let’s Encrypt证书是标准做法,安装certbot
工具:# Ubuntu/Debian sudo apt install certbot python3-certbot-nginx -y # CentOS 7 (需启用EPEL) sudo yum install epel-release sudo yum install certbot python3-certbot-nginx -y # CentOS 8+/RHEL sudo dnf install epel-release sudo dnf install certbot python3-certbot-nginx -y
运行Certbot获取并自动配置证书:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
按照提示操作(输入邮箱、同意服务条款、是否接收邮件),Certbot会自动修改你的Nginx配置,将HTTP请求重定向到HTTPS,并设置好证书路径,它会自动处理续期。
-
部署你的网站程序:
- 你可以将你的网站程序文件(如WordPress压缩包)上传到
/var/www/yourdomain.com/public_html/
目录(使用FTP/SFTP客户端或命令行scp/rsync)。 - 解压文件(如
unzip wordpress.zip
)。 - 如果程序需要数据库,登录MySQL创建专属数据库和用户:
mysql -u root -p
CREATE DATABASE yourdbname; -- 创建数据库 CREATE USER 'yourdbuser'@'localhost' IDENTIFIED BY 'StrongPassword!'; -- 创建用户 GRANT ALL PRIVILEGES ON yourdbname.* TO 'yourdbuser'@'localhost'; -- 授权 FLUSH PRIVILEGES; -- 刷新权限 EXIT;
- 访问你的域名(现在是
https://yourdomain.com
),通常会出现程序的安装界面(如WordPress的著名5分钟安装),按照提示输入数据库信息(数据库名、用户名、密码、数据库主机localhost
)和管理员账户信息即可完成安装。
- 你可以将你的网站程序文件(如WordPress压缩包)上传到
建站后的关键点:
- 安全加固: 定期更新系统和软件包(
sudo apt update && sudo apt upgrade
/sudo yum update
/sudo dnf upgrade
),使用强密码,考虑安装防火墙(如ufw
)并严格控制入站规则,限制SSH登录(禁用root远程登录、使用密钥认证)。 - 备份!备份!备份! 定期备份网站文件(
/var/www/yourdomain.com
)和数据库(使用mysqldump
命令),这是应对故障、误操作、攻击的最有效保障。 - 性能监控: 使用
top
,htop
,free -m
,df -h
等命令监控服务器资源使用情况,对于高流量网站,可能需要进行Nginx缓存、PHP OPcache、数据库查询优化等。 - 日志分析: Nginx访问日志(
/var/log/nginx/access.log
)和错误日志(/var/log/nginx/error.log
)是排查问题、分析访问来源的重要工具,可以使用工具如goaccess
或awstats
进行分析。
写在最后
在Linux服务器上新建一个网站,步骤虽多,但逻辑清晰,从域名解析、环境搭建(LNMP/LAMP)、目录权限、服务器配置(Nginx/Apache)、安全加密(SSL),到最终程序部署,每一步都关系到网站的稳定运行和安全访问,掌握这个过程,不仅能让你拥有完全掌控的线上空间,更是理解Web服务运行原理的宝贵实践,遇到问题查看日志、善用搜索引擎和社区资源,是Linux运维的常态,保持学习的热情,持续关注安全与性能优化,你的网站定能在互联网的海洋中稳健航行,亲手在Linux服务器上点亮一个网站,这种掌控感和成就感,正是开源世界的魅力所在。