在Linux系统中进行网站搭建是运维和开发人员的基本技能之一,熟练掌握相关命令可以高效完成环境配置、服务部署及管理任务,以下从基础环境准备、Web服务安装、数据库配置、网站部署及安全管理等方面,详细梳理Linux建站的核心命令及操作步骤。

基础环境准备
在搭建网站前,需确保系统基础环境配置到位,包括更新系统、安装必要工具及配置网络。
-
更新系统软件包
使用包管理器更新系统,确保软件版本最新,避免兼容性问题,以CentOS和Ubuntu为例:- CentOS(基于yum/dnf):
sudo yum update -y # CentOS 7及以下 sudo dnf update -y # CentOS 8及以上
- Ubuntu(基于apt):
sudo apt update && sudo apt upgrade -y
- CentOS(基于yum/dnf):
-
安装常用工具
建站过程中需借助工具如wget
(下载文件)、vim
(编辑文件)、net-tools
(网络管理)等:# CentOS系统 sudo yum install -y wget vim net-tools unzip # Ubuntu系统 sudo apt install -y wget vim net-tools unzip
-
配置防火墙与SELinux
开放Web服务常用端口(80 HTTP、443 HTTPS),并关闭SELinux(或配置策略):(图片来源网络,侵删)- CentOS防火墙(firewalld):
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload
- 关闭SELinux(临时关闭,重启后失效):
sudo setenforce 0
永久关闭需编辑
/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
后重启系统。
- CentOS防火墙(firewalld):
Web服务安装与配置
Web服务器是网站运行的核心,常用服务有Apache(httpd)和Nginx,以下分别介绍安装及配置命令。
安装Apache(httpd)
Apache是成熟的开源Web服务器,支持模块化扩展。
- 安装Apache:
# CentOS系统 sudo yum install -y httpd # Ubuntu系统 sudo apt install -y apache2
- 启动并设置开机自启:
# CentOS sudo systemctl start httpd sudo systemctl enable httpd # Ubuntu sudo systemctl start apache2 sudo systemctl enable apache2
- 配置虚拟主机:
编辑Apache配置文件(CentOS路径为/etc/httpd/conf/httpd.conf
,Ubuntu为/etc/apache2/sites-available/000-default.conf
),添加以下内容:<VirtualHost *:80> ServerAdmin webmaster@example.com DocumentRoot /var/www/example.com ServerName example.com ServerAlias www.example.com <Directory /var/www/example.com> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
创建网站目录并设置权限:
(图片来源网络,侵删)sudo mkdir -p /var/www/example.com sudo chown -R apache:apache /var/www/example.com # CentOS sudo chown -R www-data:www-data /var/www/example.com # Ubuntu
重启Apache服务使配置生效:
sudo systemctl restart httpd # CentOS sudo systemctl restart apache2 # Ubuntu
安装Nginx
Nginx以其高性能、低资源占用著称,适合处理高并发请求。
- 安装Nginx:
# CentOS系统(需安装EPEL源) sudo yum install -y epel-release sudo yum install -y nginx # Ubuntu系统 sudo apt install -y nginx
- 启动并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
- 配置虚拟主机:
编辑Nginx配置文件(/etc/nginx/sites-available/default
),添加以下内容:server { listen 80; server_name example.com www.example.com; root /var/www/example.com; index index.html index.php; location / { try_files $uri $uri/ =404; } }
创建网站目录并设置权限:
sudo mkdir -p /var/www/example.com sudo chown -R nginx:nginx /var/www/example.com # CentOS sudo chown -R www-data:www-data /var/www/example.com # Ubuntu
测试配置文件并重启Nginx:
sudo nginx -t sudo systemctl restart nginx
数据库安装与配置
网站数据存储通常依赖数据库,MySQL(MariaDB)是常用关系型数据库,以下介绍安装及基础操作命令。
安装MySQL/MariaDB
MariaDB是MySQL的分支,完全兼容MySQL语法。
- CentOS系统安装MariaDB:
sudo yum install -y mariadb-server mariadb sudo systemctl start mariadb sudo systemctl enable mariadb
- Ubuntu系统安装MySQL:
sudo apt install -y mysql-server sudo systemctl start mysql sudo systemctl enable mysql
数据库基础操作
- 安全初始化(设置root密码、移除匿名用户等):
sudo mysql_secure_installation # 根据提示操作
- 登录数据库:
mysql -u root -p
- 创建数据库及用户:
CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost'; FLUSH PRIVILEGES;
网站部署与测试
网站文件通常通过FTP/SFTP上传或Git克隆部署,以下以静态网站和PHP网站为例。
静态网站部署
将网站文件(如HTML、CSS、JS)上传至Web服务器根目录(Apache为/var/www/html
,Nginx为/usr/share/nginx/html
):
# 使用wget下载示例静态文件 sudo wget -O /var/www/html/index.html https://example.com/static-template.zip # 解压(如为zip文件) sudo unzip -o /var/www/html/static-template.zip -d /var/www/html/
访问服务器IP或域名,即可查看静态网站。
PHP网站部署(以WordPress为例)
若网站依赖PHP环境,需安装PHP及扩展:
- 安装PHP及扩展(以CentOS为例):
sudo yum install -y php php-mysql php-fpm php-gd php-mbstring sudo systemctl restart httpd # 若使用Apache,需启用PHP模块
- 部署WordPress:
# 下载WordPress cd /tmp wget https://wordpress.org/latest.tar.gz tar -xzvf latest.tar.gz # 复制至网站目录 sudo cp -r wordpress/* /var/www/example.com/ sudo chown -R apache:apache /var/www/example.com # CentOS
- 配置数据库连接:
复制wp-config-sample.php
为wp-config.php
并修改数据库信息:sudo cp /var/www/example.com/wp-config-sample.php /var/www/example.com/wp-config.php sudo vim /var/www/example.com/wp-config.php
修改以下内容:
define('DB_NAME', 'example_db'); define('DB_USER', 'example_user'); define('DB_PASSWORD', 'your_password'); define('DB_HOST', 'localhost');
网站安全管理
-
定期备份
备份网站文件和数据库是关键操作:- 备份网站文件:
sudo tar -czf /backup/website_$(date +%Y%m%d).tar.gz /var/www/example.com
- 备份数据库:
mysqldump -u root -p example_db > /backup/database_$(date +%Y%m%d).sql
- 备份网站文件:
-
更新软件版本
定期更新Web服务器、数据库及PHP版本,修复安全漏洞:# CentOS sudo yum update -y httpd mari php # Ubuntu sudo apt update && sudo apt upgrade -y apache2 mysql-server php
相关问答FAQs
问题1:如何检查Linux系统中Web服务是否正常运行?
解答:可通过以下命令检查Web服务状态及端口监听情况:
- 检查服务状态:
sudo systemctl status httpd # Apache sudo systemctl status nginx # Nginx
- 检查端口监听(80为HTTP端口,443为HTTPS端口):
sudo netstat -tuln | grep :80 # 或使用ss命令 sudo ss -tuln | grep :80
- 通过浏览器访问服务器IP或域名,若显示网站内容则服务正常。
问题2:忘记MySQL root密码时如何重置?
解答:重置MySQL root密码需跳过权限表启动服务,具体步骤如下(以CentOS为例):
- 停止MySQL服务:
sudo systemctl stop mariadb
- 跳过权限表启动:
sudo mysqld_safe --skip-grant-tables &
- 登录MySQL并重置密码:
mysql -u root
执行以下SQL(注意MySQL 5.7及以上版本需更新
authentication_string
字段):UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; EXIT;
- 重启MySQL服务:
sudo pkill mysqld_safe sudo systemctl start mariadb
使用新密码登录即可。