Linux 实用命令与工具使用指南

简介: 本文详解在CentOS 7上搭建LNMP环境的完整流程,涵盖网络配置、组件安装、Nginx与PHP联动设置、网站部署及常见问题排查,帮助新手从零掌握Web服务器搭建核心技能。

LNMP(Linux+Nginx+MySQL+PHP)是企业级 Web 开发的经典环境组合,也是 Linux 运维与开发入门的核心实战项目。掌握 LNMP 环境搭建,能快速理解“Web 服务器-后端脚本-数据库”的协同工作原理,为后续部署动态网站、开发 Web 应用打下基础。本文针对新手,梳理从“环境准备”到“网站部署”的完整步骤,补充详细操作命令、配置细节与问题排查技巧,同时提供扩展方向,帮助新手从 0 到 1 独立完成 LNMP 环境搭建。

一、项目核心目标与前置认知

核心目标:在 CentOS 7 系统中搭建可正常运行的 LNMP 环境,实现“浏览器访问服务器 IP 能看到静态页面,访问 PHP 测试页能显示 PHP 信息,且 PHP 能正常连接 MySQL 数据库”。

前置认知:明确 LNMP 各组件的作用——1. Linux(CentOS 7):作为基础运行环境,提供进程管理、资源调度等核心能力;2. Nginx:Web 服务器,负责接收浏览器请求,处理静态资源(HTML、CSS、图片),将动态请求(PHP 脚本)转发给 PHP 解析器;3. MySQL:关系型数据库,存储网站动态数据(如用户信息、文章内容);4. PHP:后端脚本语言,负责解析动态脚本,与 MySQL 交互获取数据,生成动态页面内容。

二、完整搭建步骤(详细实操)

(一)第一步:环境准备——CentOS 7 虚拟机部署与网络配置

新手优先选择虚拟机练习,避免直接操作物理机导致故障,推荐工具:VMware Workstation(Windows/Mac)或 VirtualBox(免费开源)。

1. 虚拟机安装 CentOS 7:下载 CentOS 7 镜像(推荐 Minimal 最小化版本,轻量且专注命令行),通过 VMware 新建虚拟机,按向导选择镜像文件、设置磁盘大小(建议 20GB 以上)、内存(建议 2GB 以上);安装过程中设置 root 密码(记住密码,后续登录用),等待安装完成后重启虚拟机。

2. 网络配置(关键:确保虚拟机可联网):登录 CentOS 7(用户名 root,输入设置的密码),执行命令 vi /etc/sysconfig/network-scripts/ifcfg-ens33(ens33 是默认网卡名,若不同可通过 ip addr 命令查看),修改以下配置:

BOOTPROTO=static  # 静态IP(避免IP变动)
ONBOOT=yes        # 开机启动网卡
IPADDR=192.168.1.105  # 自定义IP(需与主机在同一网段,如主机IP是192.168.1.100,则设置为192.168.1.xxx)
NETMASK=255.255.255.0  # 子网掩码
GATEWAY=192.168.1.1    # 网关(与主机网关一致)
DNS1=8.8.8.8           # DNS(谷歌DNS,确保能解析外网)

修改完成后,按 Esc 键,输入 :wq 保存退出;执行 systemctl restart network 重启网络服务,再执行 ping www.baidu.com,若能正常接收数据包,说明网络配置成功。

(二)第二步:安装核心组件——Nginx、MySQL、PHP

CentOS 7 可通过 yum 包管理器快速安装组件,无需手动编译,新手友好。

1. 安装 Nginx:先安装 Nginx 官方源(CentOS 默认源无 Nginx),执行以下命令:

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx  # 安装Nginx
systemctl start nginx  # 启动Nginx
systemctl enable nginx  # 设置开机自启
systemctl status nginx  # 查看Nginx状态,显示active则正常

2. 安装 MySQL(CentOS 7 默认是 MariaDB,兼容 MySQL):执行命令 yum install -y mariadb-server mariadb,安装完成后启动并设置自启:

systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb  # 查看状态

初始化 MySQL 安全配置(必做,避免空密码登录风险):执行 mysql_secure_installation,按提示操作——设置 root 密码(输入 2 次)、删除匿名用户、禁止 root 远程登录(新手先禁止,后续需要再开启)、删除测试数据库,最后输入 y 确认配置。

3. 安装 PHP:安装 PHP 及与 Nginx、MySQL 联动的扩展组件:

yum install -y php php-fpm php-mysql php-gd php-cli
# 启动PHP-FPM(PHP解析器,与Nginx协同)
systemctl start php-fpm
systemctl enable php-fpm
systemctl status php-fpm  # 查看状态

(三)第三步:关键配置——Nginx 关联 PHP

默认情况下,Nginx 无法解析 PHP 脚本,需修改配置文件,让 Nginx 识别 PHP 请求并转发给 PHP-FPM 处理。

1. 编辑 Nginx 主配置文件:执行 vi /etc/nginx/nginx.conf,找到 server 块,修改以下内容(核心是添加 PHP 解析规则):

server {
    listen       80;  # 监听80端口(默认Web端口)
    server_name  localhost;  # 服务器名,新手用localhost即可
    root   /usr/share/nginx/html;  # 网站根目录(静态文件存放位置)
    index  index.html index.php;  # 优先访问index.html,其次index.php
    # PHP解析规则(新增/修改)
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;  # PHP-FPM默认端口
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

2. 配置验证与重启 Nginx:执行 nginx -t 验证配置文件是否有误,若显示“test is successful”则正常;执行systemctl restart nginx 重启 Nginx,使配置生效。

(四)第四步:部署网站与测试验证

1. 部署静态页面:Nginx 网站根目录默认是 /usr/share/nginx/html,执行 echo "<h1>LNMP 环境搭建成功!</h1>" > /usr/share/nginx/html/index.html,创建简单的静态页面。

2. 创建 PHP 测试文件:执行 vi /usr/share/nginx/html/info.php,输入以下内容:

<?php
phpinfo();  // 输出PHP信息
?>

保存退出后,执行 chmod 644 /usr/share/nginx/html/info.php,确保文件权限正确。

3. 测试访问:在主机浏览器中输入虚拟机的 IP 地址(即之前配置的 192.168.1.105),若能看到“LNMP 环境搭建成功!”的标题,说明静态页面正常;输入 http://192.168.1.105/info.php,若能显示 PHP 版本、扩展等信息,说明 PHP 解析正常。

三、常见问题排查(新手必看)

1. 浏览器无法访问虚拟机 IP:检查虚拟机网络配置是否正确(IP、网关、DNS);检查 CentOS 7 防火墙是否关闭,新手可临时关闭防火墙:systemctl stop firewalldsystemctl disable firewalld(生产环境需配置防火墙规则,而非直接关闭);

2. PHP 页面无法显示:检查 PHP-FPM 服务是否正常运行;检查 Nginx 配置文件中的 PHP 解析规则是否正确;检查 info.php 文件路径与权限是否正确;

3. MySQL 登录失败:确认初始化时设置的 root 密码正确;执行 mysql -u root -p,输入密码后若能进入 MySQL 命令行,则正常。

四、扩展方向:搭建完整动态网站

基础 LNMP 环境搭建完成后,可通过以下扩展提升项目实战价值:

1. PHP 连接 MySQL 测试:创建 PHP 脚本连接 MySQL,验证数据交互能力。示例脚本(创建 test.php):

<?php
$link = mysqli_connect('localhost', 'root', '你的MySQL密码');
if ($link) {
    echo "PHP 连接 MySQL 成功!";
    mysqli_close($link);
} else {
    echo "连接失败:" . mysqli_connect_error();
}
?>

2. 部署 WordPress 博客系统:下载 WordPress 安装包(wget https://wordpress.org/latest.tar.gz),解压到网站根目录(tar -zxvf latest.tar.gz -C /usr/share/nginx/html/);进入 MySQL 命令行,创建 WordPress 数据库(create database wordpress;);浏览器访问 http://虚拟机IP/wordpress,按向导输入数据库信息、设置网站名称与管理员账号,完成部署后即可拥有完整的动态博客网站。

总结来看,LNMP 环境搭建的核心是“组件安装+配置联动”,新手需重点掌握网络配置、Nginx 与 PHP 的关联配置、权限设置这三个关键环节。通过本项目实战,不仅能熟悉 Linux 命令行操作,更能理解 Web 环境的核心工作逻辑。从基础搭建到部署动态网站,逐步进阶,可快速提升 Linux 实战能力,为后续运维或开发工作奠定基础。

相关文章
|
前端开发 NoSQL Java
谷粒学苑笔记整理
谷粒学苑笔记整理
488 0
|
23天前
|
传感器 算法 物联网
室内定位无线技术的分类和原理全解析(一)
室内定位无线技术通过射频、声波、光信号等解决卫星信号无法覆盖的盲区,实现人员、物资精准定位。主流技术分射频、声波、光学及新兴四大类,涵盖蓝牙、UWB、Wi-Fi、红外、可见光、毫米波等,适用于工业、医疗、园区等多场景,各具精度、成本与部署优势。
|
5天前
|
存储 人工智能 数据可视化
阿里云万小智 AI 建站系统全解析:版本功能、价格体系与场景适配
在企业数字化转型与个人建站需求增长的背景下,阿里云基于通义大模型推出的万小智 AI 建站系统,以 “低门槛、高效率、全集成” 为核心优势,成为无需专业开发能力用户的重要选择。该系统分为基础版、标准版、企业版三个层级,覆盖从个人博客到中大型企业官网的全场景需求,且购买即赠 CN 域名,进一步降低建站成本。本文结合今年最新官方文档与实测体验,从核心特性、版本差异、价格规则、场景适配等维度展开解析,为用户提供客观选型参考。
|
6月前
|
存储 JSON API
Python与JSON:结构化数据的存储艺术
Python字典与JSON格式结合,为数据持久化提供了便捷方式。通过json模块,可轻松实现数据序列化与反序列化,支持跨平台数据交换。适用于配置管理、API通信等场景,兼具可读性与高效性,是Python开发中不可或缺的数据处理工具。
252 0
|
Java 数据安全/隐私保护 Python
业务对象
确定业务对象 首先需要确定应用程序的业务对象,例如用户、订单、商品等。一般情况下,业务对象应该与业务域相对应,并符合业务场景的特点。 定义业务对象属性 在确定业务对象之后,可以定义其属性,如用户包含用户名、密码、邮箱等属性。属性应该满足业务需求,并且尽可能地避免冗余和不必要的信息。 设计业务对象方法 业务对象还应该定义一些方法,例如在用户对象中,可以定义登录、注册、修改密码等方法。方法应该满足业务需求,具有一定的复用性和可扩展性。 考虑业务对象关系 在设计业务对象时,还需要考虑业务对象之间的关系,例如一个订单对象可能包含多个商品对象。可以使用关联属性、外键等方式来实现业务对象之间的关系。
|
Java
Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
【10月更文挑战第14天】Java开发实现图片地址检验,如果无法找到资源则使用默认图片,如何编码?
312 2
|
9月前
|
JSON 监控 API
1688 商品列表 API 深度拆解:从参数配置到数据获取
1688 是重要的批发采购平台,其商品列表 API 接口为开发者、商家和数据分析人员提供批量获取商品基础信息(如名称、价格、销量等)的能力。该接口支持市场调研、竞品分析等场景,助力商业决策与效率提升。接口基于 HTTPS 协议,采用 GET 或 POST 请求方式,需提供通用参数(如 app_key、timestamp 等)和业务参数(如 category_id、page_no 等)。响应数据以 JSON 格式返回,包含商品详情及分页信息。
312 13
|
10月前
|
存储 监控 安全
Hyper-V装系统后的配置要点
在Hyper-V上安装系统后,需进行多项配置以确保虚拟机的性能与安全。包括基本设置(名称、存储位置、处理器与内存分配、虚拟硬盘配置)、网络配置(虚拟交换机、网络适配器)、存储配置(控制器与磁盘类型、存储I/O优化)、安装集成服务、安全设置(更新补丁、BitLocker加密、防火墙规则)、性能监控与优化(监视器、资源调整、电源计划)及备份与恢复(定期备份、创建快照)。合理配置可提升虚拟机性能和安全性。
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
291 0
|
存储 网络协议 Shell
KVstore :键值映射存储服务器
KVstore :键值映射存储服务器
442 0