CentOS 7 LAMP/LNMP 环境搭建:新手也能快速建站 – wiki基地


CentOS 7 LAMP/LNMP 环境搭建:新手也能快速建站

对于希望搭建自己网站的开发者和技术爱好者来说,拥有一个稳定、高效的 Web 服务器环境是第一步。LAMP 和 LNMP 是两种最流行、最经典的技术栈,它们为全球数百万个网站提供了强大的动力。本文将作为一份详细的新手指南,一步步教你如何在 CentOS 7 系统上从零开始搭建 LAMP 或 LNMP 环境,并完成基础配置,让你也能快速拥有属于自己的网站。

什么是 LAMP 和 LNMP?

在开始之前,让我们先简单了解一下这两个术语:

  • LAMP 代表 Linux / Apache / MariaDB (或 MySQL) / PHP。这是 Web 开发的“黄金组合”,Apache 作为老牌的 Web 服务器,以其稳定和强大的模块化功能而著-名。
  • LNMP 代表 Linux / Nginx / MariaDB (或 MySQL) / PHP。Nginx 是一个后起之秀,以其轻量级、高并发处理能力和低资源消耗而闻名,特别适合处理大量静态内容和高流量网站。

总的来说,两者都能出色地完成任务。Apache 更像一个功能齐全的瑞士军刀,而 Nginx 则更像一把锋利的手术刀,专注于性能和效率。


准备工作

在开始安装之前,请确保你已经准备好以下条件:

  1. 一台安装了 CentOS 7 的服务器:可以是物理机,也可以是任何云服务商提供的 VPS。
  2. 拥有 root 或 sudo 权限:本教程中的所有命令都需要管理员权限来执行。
  3. 一个 SSH 客户端:如 PuTTY, Xshell 或 macOS/Linux 自带的终端,用于连接你的服务器。

让我们开始吧!首先,用你的 SSH 客户端登录到服务器。


Part 1: 搭建 LAMP 环境

第 1 步:更新系统

在安装任何新软件之前,保持系统更新是一个好习惯。这可以确保你获得最新的安全补丁和软件包。

bash
sudo yum update -y

第 2 步:安装并配置 Apache

Apache 在 CentOS 7 上的软件包名为 httpd

  1. 安装 Apache:

    bash
    sudo yum install httpd -y

  2. 启动并设置开机自启:

    bash
    sudo systemctl start httpd
    sudo systemctl enable httpd

  3. 配置防火墙:
    CentOS 7 默认使用 firewalld 防火墙。我们需要允许 HTTP (80) 和 HTTPS (443) 的网络流量。

    bash
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

  4. 验证 Apache:
    现在,在你的浏览器中输入服务器的 IP 地址 (http://你的服务器IP)。如果看到 Apache 的默认欢迎页面,恭喜你,Apache 已经成功运行了!

第 3 步:安装并保护 MariaDB

MariaDB 是 MySQL 的一个流行分支,并且在 CentOS 7 中是默认的数据库。

  1. 安装 MariaDB:

    bash
    sudo yum install mariadb-server -y

  2. 启动并设置开机自启:

    bash
    sudo systemctl start mariadb
    sudo systemctl enable mariadb

  3. 安全加固:
    新安装的 MariaDB 需要进行安全配置。运行下面的脚本,它会引导你完成设置 root 密码、删除匿名用户、禁止 root 远程登录等重要步骤。

    bash
    sudo mysql_secure_installation

    根据提示操作即可,对于所有安全建议,输入 Y 并回车通常是最佳选择。

第 4 步:安装 PHP

CentOS 7 的默认源提供的 PHP 版本(5.4)已经非常陈旧。我们强烈建议使用 Remi 仓库来安装较新的 PHP 版本(如 PHP 7.4)。

  1. 安装 EPEL 和 Remi 仓库:

    bash
    sudo yum install epel-release -y
    sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

  2. 启用 PHP 7.4:

    bash
    sudo yum-config-manager --enable remi-php74

  3. 安装 PHP 及常用模块:
    php-mysqlnd 是让 PHP 连接 MariaDB 的驱动,其他是一些常用扩展。

    bash
    sudo yum install php php-mysqlnd php-cli php-fpm php-gd php-mbstring php-xml -y

  4. 重启 Apache:
    为了让 Apache 能够识别并处理 PHP 文件,需要重启 Apache 服务。

    bash
    sudo systemctl restart httpd

第 5 步:测试 LAMP 环境

所有组件都已安装完毕,让我们来验证一下它们是否协同工作。

  1. 创建测试文件:
    在 Apache 的网站根目录 /var/www/html 下创建一个 info.php 文件。

    bash
    echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

  2. 在浏览器中访问:
    现在,访问 http://你的服务器IP/info.php。如果你看到了一个详细展示 PHP 配置信息的页面,那么你的 LAMP 环境已经搭建成功!

安全提示: phpinfo() 页面会暴露服务器的敏感信息。确认环境正常后,请务必删除此文件:sudo rm /var/www/html/info.php


Part 2: 搭建 LNMP 环境

如果你更青睐 Nginx 的高性能,可以按照以下步骤搭建 LNMP 环境。

第 1 步:安装并配置 Nginx

  1. 安装 Nginx:
    Nginx 位于 EPEL 仓库中,确保你已经完成了 Part 1 中安装 EPEL 的步骤。

    bash
    sudo yum install nginx -y

  2. 启动并设置开机自启:

    bash
    sudo systemctl start nginx
    sudo systemctl enable nginx

  3. 配置防火墙:
    和 Apache 一样,也需要为 Nginx 打开防火墙端口。

    bash
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --reload

  4. 验证 Nginx:
    在浏览器中访问你的服务器 IP。如果看到 Nginx 的欢迎页面,说明 Nginx 已成功安装。

第 2 步:安装并保护 MariaDB

这一步与 LAMP 环境完全相同。如果你已经完成了 LAMP 的 MariaDB 安装,可以跳过此步。如果尚未安装,请参照 Part 1, 第 3 步

第 3 步:安装并配置 PHP-FPM

Nginx 不像 Apache 那样内置 PHP 解释器,而是通过 PHP-FPM (FastCGI Process Manager) 来处理 PHP 请求。

  1. 安装 PHP 和 PHP-FPM:
    同样,我们使用 Remi 仓库来安装 PHP 7.4 和相关组件。

    “`bash

    如果尚未安装 Remi 仓库,请先执行

    sudo yum install epel-release -y
    sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
    sudo yum-config-manager –enable remi-php74

    安装 PHP-FPM 及常用模块

    sudo yum install php php-fpm php-mysqlnd php-cli php-gd php-mbstring php-xml -y
    “`

  2. 配置 PHP-FPM:
    默认情况下,PHP-FPM 的运行用户是 apache。我们需要将其改为 nginx

    编辑配置文件:
    bash
    sudo vi /etc/php-fpm.d/www.conf

    找到 usergroup 这两行,将 apache 修改为 nginx:
    ini
    ; ...
    user = nginx
    ; ...
    group = nginx
    ; ...

    保存并退出 (在 vi 中按 Esc,输入 :wq 并回车)。

  3. 启动 PHP-FPM:

    bash
    sudo systemctl start php-fpm
    sudo systemctl enable php-fpm

第 4 步:配置 Nginx 与 PHP-FPM 协同工作

现在,我们需要告诉 Nginx 如何将 PHP 请求发送给 PHP-FPM。

  1. 编辑 Nginx 配置文件:

    bash
    sudo vi /etc/nginx/nginx.conf

  2. 修改 server 块:
    找到默认的 server 配置部分。

    • 首先,在 index 指令中添加 index.php
    • 然后,取消 location ~ \.php$ 块的注释,并进行修改,确保 root 指向正确的网站根目录,fastcgi_paramSCRIPT_FILENAME 设置正确。

    修改后的 server 块应该类似这样:
    “`nginx
    server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name _;
    root /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    
    index index.html index.htm index.php; # 添加 index.php
    
    location / {
    }
    
    # ...
    
    # 将 PHP 脚本传递给 FastCGI 服务器
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    # ...
    

    }
    “`

  3. 测试配置并重启 Nginx:

    bash
    sudo nginx -t # 测试配置文件语法是否正确
    sudo systemctl restart nginx # 重启 Nginx 使配置生效

第 5 步:测试 LNMP 环境

与 LAMP 测试类似,我们在 Nginx 的根目录 /usr/share/nginx/html 创建一个测试文件。

bash
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php

访问 http://你的服务器IP/info.php,如果看到 PHP 信息页面,你的 LNMP 环境就大功告成了!同样,记得事后删除这个文件。


额外步骤:配置虚拟主机

如果你想在一个服务器上托管多个网站(例如 site1.comsite2.com),你需要配置虚拟主机。

Apache 虚拟主机

  1. 创建网站目录:sudo mkdir -p /var/www/site1.com/html
  2. 创建配置文件:sudo vi /etc/httpd/conf.d/site1.com.conf
  3. 添加以下内容:
    apache
    <VirtualHost *:80>
    ServerName www.site1.com
    ServerAlias site1.com
    DocumentRoot /var/www/site1.com/html
    ErrorLog /var/log/httpd/site1.com_error.log
    CustomLog /var/log/httpd/site1.com_requests.log combined
    </VirtualHost>
  4. 重启 Apache:sudo systemctl restart httpd

Nginx 虚拟主机 (Server Blocks)

  1. 创建网站目录:sudo mkdir -p /usr/share/nginx/site1.com
  2. 创建配置文件:sudo vi /etc/nginx/conf.d/site1.com.conf
  3. 添加以下内容:
    “`nginx
    server {
    listen 80;
    server_name site1.com www.site1.com;
    root /usr/share/nginx/site1.com;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
    
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    

    }
    ``
    4. 重启 Nginx:
    sudo systemctl restart nginx`


总结

无论是选择稳定可靠的 LAMP,还是追求极致性能的 LNMP,按照本指南的步骤,你都可以轻松地在 CentOS 7 上完成基础环境的搭建。这为你后续安装 WordPress、Laravel、Typecho 等应用程序,或者开发自己的项目奠定了坚实的基础。

接下来,你可以开始学习如何为你的网站配置 HTTPS(使用 Let’s Encrypt 是一个免费且不错的选择),以及如何优化数据库和 Web 服务器的性能。祝你的建站之旅一切顺利!

滚动至顶部