您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Linux如何安装LNMP
## 目录
1. [LNMP简介](#lnmp简介)
2. [准备工作](#准备工作)
- [系统要求](#系统要求)
- [环境检查](#环境检查)
3. [安装Nginx](#安装nginx)
- [通过包管理器安装](#通过包管理器安装)
- [源码编译安装](#源码编译安装)
4. [安装MySQL/MariaDB](#安装mysqlmariadb)
- [MySQL安装](#mysql安装)
- [MariaDB安装](#mariadb安装)
5. [安装PHP](#安装php)
- [基础安装](#基础安装)
- [PHP-FPM配置](#php-fpm配置)
6. [环境整合](#环境整合)
- [Nginx与PHP联动](#nginx与php联动)
- [测试PHP解析](#测试php解析)
7. [安全配置](#安全配置)
- [防火墙设置](#防火墙设置)
- [数据库安全](#数据库安全)
8. [常见问题解决](#常见问题解决)
9. [性能优化建议](#性能优化建议)
10. [附录:一键安装脚本](#附录一键安装脚本)
---
## LNMP简介
LNMP代表Linux+Nginx+MySQL+PHP组成的动态网站服务器架构,是LAMP的替代方案。相比传统LAMP:
- Nginx采用事件驱动架构,内存占用更低
- PHP通过FastCGI进程管理器(PHP-FPM)运行
- 适合高并发场景
## 准备工作
### 系统要求
- Linux发行版:CentOS 7+/Ubuntu 18.04+/Debian 10+
- 内存:≥1GB(生产环境建议4GB+)
- 磁盘空间:≥20GB
- root权限或sudo权限
### 环境检查
```bash
# 查看系统版本
cat /etc/os-release
# 检查内存
free -h
# 检查磁盘
df -h
sudo apt update
sudo apt install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
# 下载最新稳定版
wget http://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3
# 安装依赖
sudo apt install build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev -y
# 编译配置
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_gzip_static_module
# 编译安装
make && sudo make install
# 创建系统服务
sudo tee /etc/systemd/system/nginx.service <<EOF
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start nginx
wget https://dev.mysql.com/get/mysql-apt-config_0.8.28-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.28-1_all.deb
sudo apt update
sudo apt install mysql-server -y
sudo mysql_secure_installation
sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
sudo yum install mysql-community-server -y
sudo systemctl start mysqld
sudo grep 'temporary password' /var/log/mysqld.log
sudo mysql_secure_installation
# Ubuntu/Debian
sudo apt install mariadb-server mariadb-client -y
# CentOS/RHEL
sudo yum install mariadb-server -y
# 通用配置
sudo systemctl start mariadb
sudo mysql_secure_installation
# Ubuntu
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring -y
# CentOS
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php82
sudo yum install php php-fpm php-mysqlnd -y
sudo nano /etc/php/8.2/fpm/php.ini
关键参数修改:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 72M
max_execution_time = 300
启动服务:
sudo systemctl start php8.2-fpm
sudo systemctl enable php8.2-fpm
创建虚拟主机配置:
sudo tee /etc/nginx/conf.d/example.com.conf <<EOF
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location / {
try_files \$uri \$uri/ /index.php?\$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
}
}
EOF
# 测试配置并重载
sudo nginx -t
sudo systemctl reload nginx
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问 http://your_server_ip/info.php
查看PHP信息页
# Ubuntu
sudo ufw allow 'Nginx Full'
sudo ufw enable
# CentOS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
-- MySQL/MariaDB
SET GLOBAL port = 3307;
CREATE USER 'webapp'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON webdb.* TO 'webapp'@'localhost';
FLUSH PRIVILEGES;
可能原因及解决方案: 1. PHP-FPM未运行:
sudo systemctl status php-fpm
Socket路径不匹配:
# 检查Nginx配置中的fastcgi_pass路径
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
# 检查用户权限
mysql -u root -p -e "SELECT host, user FROM mysql.user;"
# 检查绑定地址
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
# 确保有:bind-address = 0.0.0.0(如需远程访问)
# /etc/nginx/nginx.conf
worker_processes auto;
worker_connections 4096;
keepalive_timeout 65;
gzip on;
; /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
# /etc/mysql/my.cnf
[mysqld]
innodb_buffer_pool_size = 1G
query_cache_size = 64M
thread_cache_size = 8
#!/bin/bash
# LNMP自动安装脚本(Ubuntu/CentOS通用版)
# 检测系统
if [ -f /etc/redhat-release ]; then
OS="centos"
elif [ -f /etc/lsb-release ]; then
OS="ubuntu"
else
echo "不支持的操作系统"
exit 1
fi
# 安装Nginx
install_nginx() {
if [ "$OS" == "centos" ]; then
yum install -y epel-release
yum install -y nginx
systemctl start nginx
systemctl enable nginx
else
apt update
apt install -y nginx
systemctl start nginx
systemctl enable nginx
fi
}
# 安装MySQL
install_mysql() {
if [ "$OS" == "centos" ]; then
yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
else
apt install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
fi
mysql_secure_installation
}
# 安装PHP
install_php() {
if [ "$OS" == "centos" ]; then
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php82
yum install -y php php-fpm php-mysqlnd
else
add-apt-repository -y ppa:ondrej/php
apt update
apt install -y php8.2-fpm php8.2-mysql
fi
systemctl start php-fpm
systemctl enable php-fpm
}
# 执行安装
install_nginx
install_mysql
install_php
echo "LNMP安装完成!"
注意:实际部署时请根据具体需求调整配置参数,生产环境建议分开安装各组件并进行详细调优。 “`
这篇文章共计约4500字,包含了LNMP环境部署的完整流程。要扩展到7000字,可以增加以下内容: 1. 各组件更详细的配置参数说明 2. 不同PHP版本的特性对比 3. 具体的性能测试数据 4. 常见Web应用的部署示例(如WordPress) 5. 监控和维护方案 6. 备份恢复策略 7. HTTPS证书配置细节 8. 负载均衡配置方法
需要补充哪部分内容可以告诉我,我可以继续扩展完善。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。