|

LNMP建站1:不依赖面板工具(宝塔)部署LNMP教程

本文介绍如何在不依赖宝塔等可视化面板的情况下,手动部署 LNMP(Linux + Nginx + MySQL …

在国内建站圈,宝塔面板凭借可视化操作和一键部署的便利,成为不少新手的首选。然而,随着项目体量扩大或对性能、安全性提出更高要求,许多用户开始思考一个问题:真的有必要依赖面板吗?
事实上,脱离宝塔等管理面板,手动部署 LNMP 环境不仅能让系统更加轻量干净,还能掌控每一个细节,打造最适合自己需求的建站环境。本文将带你理清 LNMP 的基本结构,并实际动手完成一次“手搓”部署,彻底告别黑盒化的建站方式。

本文适合 VPS 自建站用户收藏学习,掌握从零搭建 LNMP 的核心技能。

友情链接:使用宝塔可视化面板一键部署LNMP

1. 为什么要手动部署LNMP

图形化面板如宝塔虽然极大降低了建站门槛,但它并非没有代价。选择手动部署 LNMP,意味着你将获得更干净、更可控、更专业的服务器环境。以下是几点主要优势:

1. 资源占用低:宝塔会安装大量依赖组件和自身守护进程,占用内存和 CPU,不利于轻量级 VPS 的资源管理。手动部署可以只装自己需要的服务,系统运行更精简、响应更快。

2. 提高安全性:Web 面板往往是黑客重点扫描对象。即使设置强密码,暴露的端口(如 8888)依然可能成为攻击入口。而手动部署时只开放必要端口(如 80、443),极大降低了攻击面。

3. 灵活优化性能:通过手动编辑 Nginx 配置、PHP-FPM 参数、MySQL 缓存等,可以针对不同站点做出细致优化,而不是依赖面板预设的“通用模板”。

2. 资源准备

2.1 了解LNMP组成

LNMP 环境中的每一个组件都扮演着至关重要的角色:

1. Linux: 作为操作系统,Linux 提供了一个稳定、安全且高效的环境。我们可以选择常见的发行版,如 Ubuntu、CentOS 或 RedHat。每种发行版都有其特有的包管理工具和社区支持,选择适合的发行版能为我们的服务器管理带来便利。

2. Nginx: Nginx 是一款高性能的 HTTP 和反向代理服务器,特别适合处理高并发的请求。它的事件驱动模型使得资源消耗相对较低,适合用于大规模的 web 应用。

3. MySQL: MySQL 是一种流行的关系型数据库管理系统,广泛用于存储和管理数据。对于动态网站,MySQL 能够高效地处理数据存储和检索。

4. PHP: PHP 是一种广泛使用的开源脚本语言,专为 web 开发设计。它能够与 HTML 结合使用,方便地生成动态网页内容。

2.2 资源准备

2.2.1 购买域名

域名是互联网基础架构的关键部分,为可用的Web服务器提供了方便人类理解的地址。通过域名,用户可以方便地访问网站、发送电子邮件和进行其他在线交流。域名的作用包括网站标识、电子邮件、品牌建设、SEO优化和长期投资等。 

2.2.2 租用VPS

集稳定、性价比于一身的VPS服务商——搬瓦工

2.2.5 检查php源

##查看php模块列表
dnf module list php

## 手动安装EPEL9
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm  -y 
##安装Remi仓库
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm  -y
##重置php模块,避免冲突 
dnf module reset php -y
##启动PHP7.4 
dnf module enable php:remi-7.4 -y

3.2 PHP部署

3.2.1 PHP 7

推荐PHP8,目前7版本已经不再维护

Chevereto V3 PHP8不兼容

V4版本安装失败,Something With Wrong

##安装
dnf install -y php php-fpm php-cli php-common php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-opcache php-pecl-apcu

3.2.2 PHP 8

yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
yum module reset php
yum module enable php:remi-8.2

yum install -y php php-fpm php-cli php-common php-mysqlnd php-gd php-mbstring php-xml php-curl php-zip php-opcache php-pecl-apcu php-imagick php-pecl-redis php-pecl-memcached

3.2.3 PHP相关命令

systemctl status php-fpm
systemctl start php-fpm
systemctl stop php-fpm

获取模块信息:php -m

3.2.4 PHP性能优化

安装完 PHP 后,考虑性能优化也是至关重要的。可以通过修改 php.ini 文件来实现设置

vim /etc/php.ini
# 设置内存限制
memory_limit = 256M
# 开启 OPcache
opcache.enable=1

然后在浏览器中访问 https://your_domain/info.php,就能看到 PHP 的详细信息,这对调试十分有帮助。

3.2.5 配置修改

LNMP环境需要PHP对session有权限,统一到nginx用户

vim /etc/php-fpm.d/www.conf

listen = 127.0.0.1:9000
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx

chown -R nginx:nginx /var/lib/php

3.3 MySQL部署

3.3.1 便捷安装

yum install -y https://dev.mysql.com/get/mysql80-community-release-el9-4.noarch.rpm

yum install -y mysql-community-server

3.3.2 编译安装

详细参考文章:Linux编译安装MySQL

4. 总结

LNMP 环境的搭建过程虽然略显复杂,但通过手动部署,用户能够获得更高的自由度与控制权。掌握 LNMP 的搭建与优化技能,不仅能够提升个人的技术水平,更能为将来的项目打下坚实的基础。希望本文能为正在搭建 LNMP 环境的用户提供实用的参考和帮助。

4.1 测试Nginx

https://your_domain

验证结果:浏览器打开后,进入welcome to nginx 页面

4.2 测试PHP

echo "<?php phpinfo(); ?>" /etc/nginx/html/phpinfo.php
https://your_domain/phpinfo.php

验证结果:返回 PHP 版本和模块信息

类似文章