Linux中如何配置网站?具体步骤和命令有哪些?

在Linux系统中配置网站通常涉及环境搭建、服务安装、虚拟主机配置、域名解析及安全设置等步骤,以下以Ubuntu/Debian和CentOS/RHEL两大主流发行版为例,详细讲解全过程。

linux中如何配置网站

环境准备与系统更新

首先确保服务器已安装Linux系统(推荐Ubuntu 20.04+或CentOS 8+),并拥有sudo权限,登录服务器后,更新系统软件包列表:

  • Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
  • CentOS/RHEL
    sudo yum update -y  # CentOS 7及以下
    sudo dnf update -y  # CentOS 8+

安装基础工具(如wget、curl、vim等):

# Ubuntu/Debian
sudo apt install -y wget curl vim unzip
# CentOS/RHEL
sudo yum install -y wget curl vim unzip  # CentOS 7
sudo dnf install -y wget curl vim unzip  # CentOS 8+

安装Web服务器

Web服务器是网站运行的核心,常用Apache和Nginx,可根据需求选择(以下以两者为例)。

安装Apache(httpd)

Apache历史悠久,兼容性好,适合动态和静态网站。

  • 安装

    # Ubuntu/Debian
    sudo apt install -y apache2
    # CentOS/RHEL
    sudo yum install -y httpd  # CentOS 7
    sudo dnf install -y httpd  # CentOS 8+
  • 启动并设置开机自启

    sudo systemctl start apache2    # Ubuntu/Debian(服务名为apache2)
    sudo systemctl enable apache2
    # 或
    sudo systemctl start httpd     # CentOS/RHEL(服务名为httpd)
    sudo systemctl enable httpd
  • 验证安装:浏览器访问服务器公网IP,若显示“Apache2 Ubuntu Default Page”或“Test Page”,则安装成功。

安装Nginx

Nginx轻量高效,擅长处理高并发静态资源,常与PHP-FPM配合使用。

  • 安装

    # Ubuntu/Debian
    sudo apt install -y nginx
    # CentOS/RHEL
    sudo yum install -y epel-release  # 安装EPEL源(CentOS 7需先执行)
    sudo yum install -y nginx  # CentOS 7
    sudo dnf install -y nginx  # CentOS 8+
  • 启动并设置开机自启

    sudo systemctl start nginx
    sudo systemctl enable nginx
  • 验证安装:浏览器访问服务器IP,若显示“Welcome to nginx!”,则安装成功。

Apache与Nginx对比

特性 Apache Nginx
默认端口 80 80
配置文件位置 /etc/apache2/sites-available/ /etc/nginx/sites-available/
动态处理 模块化(mod_php) 需配合PHP-FPM
高并发性能 较低(进程模型) 较高(事件驱动模型)
适用场景 动态网站、小型项目 静态资源、反向代理、高并发场景

安装数据库(MySQL/MariaDB)

大多数动态网站(如WordPress、Discuz)需要数据库存储数据,推荐使用MySQL或其分支MariaDB。

linux中如何配置网站

安装MariaDB(MySQL兼容)

MariaDB是MySQL的开源分支,性能稳定,广泛使用。

  • 安装

    # Ubuntu/Debian
    sudo apt install -y mariadb-server
    # CentOS/RHEL
    sudo yum install -y mariadb-server mariadb  # CentOS 7
    sudo dnf install -y mariadb-server mariadb  # CentOS 8+
  • 启动并设置安全配置

    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    sudo mysql_secure_installation  # 交互式配置(设置root密码、移除匿名用户、禁止远程root登录等)

安装PHP(动态网站支持)

若网站需要PHP(如WordPress、PHPMyAdmin),需安装PHP及常用扩展。

安装PHP及扩展

  • Ubuntu/Debian
    sudo apt install -y php php-fpm php-mysql php-gd php-xml php-mbstring php-curl
  • CentOS/RHEL
    sudo yum install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl  # CentOS 7
    sudo dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl  # CentOS 8+
  • 启动PHP-FPM(Nginx需配合PHP-FPM处理PHP文件):
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm

配置虚拟主机

虚拟主机允许一台服务器托管多个网站,需为每个网站配置独立的域名和目录。

Apache虚拟主机配置

以配置域名example.com为例:

  • 创建网站目录

    sudo mkdir -p /var/www/example.com
    sudo chown -R www-data:www-data /var/www/example.com  # Ubuntu/Debian(www-data为Apache用户)
    # 或
    sudo chown -R apache:apache /var/www/example.com      # CentOS/RHEL(apache为Apache用户)
  • 创建配置文件

    sudo vim /etc/apache2/sites-available/example.com.conf  # Ubuntu/Debian
    # 或
    sudo vim /etc/httpd/conf.d/example.com.conf              # CentOS/RHEL
  • 写入配置内容

    <VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com
        <Directory /var/www/example.com>
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  • 启用配置并重启Apache

    # Ubuntu/Debian
    sudo a2ensite example.com.conf
    sudo a2dissite 000-default.conf  # 可选:关闭默认站点
    sudo systemctl restart apache2
    # CentOS/RHEL
    sudo systemctl restart httpd

Nginx虚拟主机配置

同样以域名example.com为例:

  • 创建网站目录(同Apache,注意用户为nginx):

    linux中如何配置网站

    sudo mkdir -p /var/www/example.com
    sudo chown -R nginx:nginx /var/www/example.com
  • 创建配置文件

    sudo vim /etc/nginx/sites-available/example.com.conf
  • 写入配置内容

    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www/example.com;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ =404;
        }
        location ~ .php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;  # Ubuntu 22.04为php8.1-fpm.sock,CentOS需对应版本
        }
        location ~ /.ht {
            deny all;
        }
    }
  • 启用配置并重启Nginx

    sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
    sudo nginx -t  # 检查配置语法
    sudo systemctl restart nginx

域名解析与测试

  1. 域名解析:登录域名提供商后台,添加A记录,将域名指向服务器公网IP(如168.1.100),等待DNS生效(约10分钟-24小时)。
  2. 测试网站
    • /var/www/example.com下创建index.htmlindex.php<h1>Hello, example.com!</h1>),浏览器访问http://example.com,若显示内容则配置成功。
    • 若为PHP网站,可创建info.php<?php phpinfo(); ?>>),访问后查看PHP配置信息。

安全配置

  1. 防火墙设置

    • Ubuntu/Debian(ufw)
      sudo ufw allow 80/tcp   # HTTP
      sudo ufw allow 443/tcp  # HTTPS
      sudo ufw reload
    • CentOS/RHEL(firewalld)
      sudo firewall-cmd --permanent --add-service=http
      sudo firewall-cmd --permanent --add-service=https
      sudo firewall-cmd --reload
  2. 配置HTTPS(可选):使用Let’s Encrypt免费证书,安装certbot:

    # Ubuntu/Debian
    sudo apt install -y certbot python3-certbot-apache  # Apache
    sudo apt install -y certbot python3-certbot-nginx  # Nginx
    # CentOS/RHEL
    sudo yum install -y certbot python3-certbot-apache  # Apache
    sudo yum install -y certbot python3-certbot-nginx  # Nginx
    # 获取证书并配置(Apache示例)
    sudo certbot --apache -d example.com -d www.example.com

    按提示操作后,certbot会自动配置HTTPS并启用HTTP/2。

定期备份

为防止数据丢失,需定期备份网站文件和数据库:

  • 备份数据库
    mysqldump -u root -p database_name > backup_$(date +%Y%m%d).sql
  • 备份网站文件
    tar -czf website_backup_$(date +%Y%m%d).tar.gz /var/www/example.com

    可将备份脚本加入cron定时任务,实现自动化备份。

相关问答FAQs

问题1:配置虚拟主机后,访问域名显示403 Forbidden怎么办?
解答:403错误通常由权限问题导致,检查网站目录所有者是否为Web服务器用户(Ubuntu/Debian为www-data,CentOS为apachenginx),执行chown -R user:group /var/www/example.com;同时检查目录权限,确保用户有读写执行权限(chmod -R 755 /var/www/example.com),并确认AllowOverride All已配置(Apache)或try_files指令正确(Nginx)。

问题2:如何为网站配置子域名(如blog.example.com)?
解答:子域名配置与主域名类似,只需重复“虚拟主机配置”步骤,新建一个配置文件(如blog.example.com.conf),修改ServerNameblog.example.comDocumentRoot指向子域名对应的网站目录(如/var/www/blog.example.com),其余流程一致,注意需在域名解析后台为子域名添加A记录(与主域名指向同一IP)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38275.html

(0)
酷番叔酷番叔
上一篇 2025年10月8日 10:54
下一篇 2025年10月8日 11:13

相关推荐

  • linux如何启动root权限

    Linux 中,可通过切换到 root 用户(如 su 或 sudo -i)

    2025年8月16日
    13400
  • Linux中如何查看文件及目录的权限信息?

    Linux文件权限是系统安全的核心机制,决定了不同用户对文件的访问操作,查看文件权限是日常管理和排查问题的基础操作,本文将详细介绍Linux中查看文件权限的各种方法、权限位含义及关联知识,基础查看命令:lsls是Linux中最常用的文件列表命令,结合不同选项可查看详细的权限信息,ls -l:显示长格式权限ls……

    2025年8月23日
    16900
  • 如何从零开始系统学习kali linux?新手必学的实用技巧有哪些?

    学习Kali Linux需要系统的方法和明确的目标,首先要明确Kali Linux是一款专为渗透测试和安全审计设计的Linux发行版,其工具集强大但必须在合法授权下使用,严格遵守法律法规和道德准则是学习的前提,基础准备:掌握Linux核心知识Kali Linux基于Debian,因此扎实的Linux基础是入门关……

    2025年9月25日
    13300
  • linux如何开启rsa和dsa

    Linux 中,可以使用 ssh-keygen 命令生成 RSA 和 DSA 密钥对。,“`bash,# 生成 RSA 密钥,ssh-keygen -t rsa,# 生成 DSA 密钥,

    2025年8月16日
    15000
  • Linux端口如何开启?

    开放端口前的准备确认需要开放的端口号HTTP服务:80/TCPHTTPS服务:443/TCPSSH服务:22/TCP自定义服务:如3000/TCP检查端口是否已被监听运行命令查看当前监听端口的服务:sudo ss -tuln | grep LISTEN# 或使用传统命令sudo netstat -tuln……

    2025年7月10日
    18100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信