在服务器管理中,LNMP(Linux+Nginx+MySQL+PHP)环境因其高性能和稳定性被广泛应用,当需要修改虚拟机配置时,通常涉及对Nginx虚拟主机、MySQL数据库及PHP配置的调整,以下将从虚拟主机配置、数据库优化、PHP参数调整及安全加固四个方面,详细阐述LNMP环境下虚拟机修改的操作步骤与注意事项。

Nginx虚拟主机配置修改
Nginx的虚拟主机配置文件通常位于/usr/local/nginx/conf/vhost/目录下,以.conf为后缀,修改虚拟主机需重点关注域名绑定、目录权限及重写规则。
基础配置调整
以修改域名example.com的配置为例,首先编辑对应配置文件,使用vim或nano工具打开:
vim /usr/local/nginx/conf/vhost/example.com.conf
核心参数修改包括:
- 根目录:调整
root指令指向新的网站目录,如/data/www/example; - 域名绑定:在
server_name中添加或删除域名,支持通配符(如*.example.com)或泛域名(_); - 日志路径:修改
access_log和error_log至指定目录,确保目录权限正确。
重写规则与伪静态
若需修改URL重写规则,可在server块中调整location指令,将WordPress的伪静态规则修改为:
location / {
try_files $uri $uri/ /index.php?$args;
}
修改后需执行nginx -t检查语法,并使用nginx -s reload重新加载配置。
目录权限与安全
为确保安全性,需限制目录执行权限,禁止上传目录执行PHP文件:
location ~* ^/uploads/.*\.(php|php5)$ {
deny all;
}
MySQL数据库配置优化
虚拟机的数据库修改主要涉及用户权限、存储引擎及性能参数调整。
用户与权限管理
登录MySQL后,使用GRANT语句修改用户权限,为用户db_user赋予example_db数据库的全部权限,并限制其只能通过特定IP访问:

GRANT ALL PRIVILEGES ON example_db.* TO 'db_user'@'192.168.1.100' IDENTIFIED BY 'new_password'; FLUSH PRIVILEGES;
若需删除用户,可执行DROP USER 'db_user'@'localhost';。
存储引擎与字符集
修改数据库表的存储引擎,如将MyISAM转换为InnoDB:
ALTER TABLE table_name ENGINE=InnoDB;
调整字符集可在创建数据库时指定,如:
CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
性能参数调优
通过修改MySQL配置文件/etc/my.cnf优化性能,关键参数包括:
innodb_buffer_pool_size:建议设置为物理内存的50%-70%;max_connections:根据并发需求调整,默认151;query_cache_size:若查询缓存频繁命中可适当增大,否则建议关闭。
修改后需重启MySQL服务:systemctl restart mysqld。
PHP配置参数调整
PHP的配置文件php.ini通常位于/usr/local/php/etc/或/etc/php/7.x/fpm/,修改后需重启PHP-FPM服务生效。
常用参数修改
- 上传文件限制:调整
upload_max_filesize和post_max_size,确保两者一致,如设置为100M; - 执行超时时间:修改
max_execution_time为300(秒); - 时区设置:在
php.ini中取消注释date.timezone = Asia/Shanghai。
扩展模块管理
若需启用或禁用PHP扩展,可通过extension=模块名.so控制,启用Redis扩展:
extension=redis.so
修改后执行systemctl restart php-fpm重启服务。

PHP-FPM优化
调整PHP-FPM配置文件www.conf中的进程池参数:
pm.max_children:最大子进程数,根据服务器内存计算(如内存为2G,可设为50);pm.start_servers:启动时进程数,建议为max_children的20%-30%;pm.max_requests:单进程处理请求数,避免内存泄漏,可设为1000。
安全加固与日志管理
防火墙与端口设置
通过firewall-cmd限制访问端口,仅开放必要端口(如80、443、22):
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
日志分析与监控
定期分析Nginx和MySQL日志,可通过logrotate工具管理日志轮转,避免单个日志文件过大,配置Nginx日志每日轮转:
cat /etc/logrotate.d/nginx ``` 如下:
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 644 nginx nginx
}
#### 3. 系统更新与漏洞修复
定期执行系统更新,修复LNMP组件的安全漏洞:
```bash
yum update -y # CentOS系统
apt update && apt upgrade -y # Ubuntu系统
LNMP环境下虚拟机的修改需兼顾功能实现与安全性,重点围绕Nginx虚拟主机配置、MySQL权限管理、PHP参数调优及安全加固展开,操作前建议备份配置文件,修改后通过日志监控服务状态,确保系统稳定运行,合理的配置调整不仅能提升服务器性能,还能有效降低安全风险。



















