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 版本和模块信息