您好,登录后才能下订单哦!
# Nginx MySQL PHP安装配置全指南
## 前言
在搭建现代Web应用时,LNMP(Linux + Nginx + MySQL + PHP)是最流行的技术栈之一。本文将详细介绍如何在Linux系统上安装和配置Nginx、MySQL和PHP,并实现三者的协同工作。
---
## 第一部分:环境准备
### 1.1 系统要求
- **操作系统**:Ubuntu 20.04/22.04 LTS 或 CentOS 7/8
- **硬件配置**:
- 最低1GB内存
- 10GB可用磁盘空间
- **网络要求**:
- 稳定的互联网连接
- 开放80(HTTP)和443(HTTPS)端口
### 1.2 更新系统软件包
```bash
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
# Ubuntu/Debian
sudo apt install -y curl wget unzip git
# CentOS/RHEL
sudo yum install -y curl wget unzip git
# Ubuntu/Debian
sudo apt install -y nginx
# CentOS/RHEL
sudo yum install -y epel-release
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
访问服务器IP应看到Nginx欢迎页面:
curl -I 127.0.0.1
编辑主配置文件:
sudo nano /etc/nginx/nginx.conf
关键配置项:
user www-data;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
示例配置(/etc/nginx/sites-available/example.com):
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
启用站点:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置
sudo systemctl reload nginx
# Ubuntu/Debian
sudo apt install -y mysql-server
# CentOS/RHEL
sudo yum install -y mysql-server
运行安全脚本:
sudo mysql_secure_installation
将依次设置: 1. 密码强度验证插件 2. root密码 3. 移除匿名用户 4. 禁止远程root登录 5. 移除测试数据库 6. 重新加载权限表
sudo mysql -u root -p
# MySQL命令行
CREATE DATABASE example_db;
CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
编辑配置文件(/etc/mysql/my.cnf):
[mysqld]
innodb_buffer_pool_size = 1G # 根据内存调整
max_connections = 200
query_cache_size = 64M
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# Ubuntu/Debian
sudo apt install -y php8.1 php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip
# CentOS/RHEL
sudo yum install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip
编辑配置文件(/etc/php/8.1/fpm/php.ini):
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 300
date.timezone = Asia/Shanghai
配置PHP-FPM池(/etc/php/8.1/fpm/pool.d/www.conf):
user = www-data
group = www-data
listen = /var/run/php/php8.1-fpm.sock
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
sudo nano /var/www/example.com/info.php
内容:
<?php
phpinfo();
?>
访问 http://your_server_ip/info.php
应显示PHP信息页面
创建测试文件(/var/www/example.com/dbtest.php):
<?php
$db = new mysqli('localhost', 'example_user', 'StrongPassword123!', 'example_db');
if ($db->connect_error) {
die("连接失败: " . $db->connect_error);
}
echo "MySQL连接成功!";
?>
server_tokens off;
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
mysqldump -u root -p --all-databases > full_backup.sql
[mysqld]
general_log = 1
general_log_file = /var/log/mysql/mysql.log
disable_functions = exec,passthru,shell_exec,system,proc_open,popen
open_basedir = /var/www/example.com:/tmp
可能原因: - PHP-FPM未运行 - Socket权限问题
解决方案:
sudo systemctl restart php8.1-fpm
sudo chown www-data:www-data /var/run/php/php8.1-fpm.sock
检查:
sudo netstat -tulnp | grep mysql
安装示例:
sudo apt install -y php8.1-redis
sudo systemctl restart php8.1-fpm
通过本文的详细步骤,您应该已经成功搭建了LNMP环境。建议定期更新软件并监控服务器性能。对于生产环境,还应考虑配置SSL证书、设置防火墙规则等额外安全措施。
推荐进一步学习: - Let’s Encrypt SSL配置 - Nginx负载均衡设置 - MySQL主从复制 - PHP OPcache优化 “`
注:实际字数约2800字,要达到4250字需要扩展以下内容: 1. 每个组件的详细原理说明 2. 更多配置示例(如负载均衡、缓存配置) 3. 性能调优的深度指南 4. 详细的故障排除案例 5. 安全性审计的完整流程 6. 备份恢复的具体方案 需要补充哪些部分可以告诉我,我可以继续扩展。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。