趣合网络科技工作室之前跟大家分享了“怎么安装WordPress?新手入门指南”和“VPS推荐与购买全攻略:如何选择最适合你的虚拟私人服务器”两篇文章,今天这篇文章主要跟大家分享如何在小内存的VPS上安装LNMP环境并且搭建WordPress网站。
何为小内存VPS?
早些年512MB内存以下的,都算小内存VPS,随着WordPress和各种软件的升级,512MB内存的VPS基本上已经很少用来搭建WordPress了,本文说提到的小内存VPS主要针对的是1核CPU和1G内存的VPS,比如我们在VPS推荐一文中推荐的Vultr和DigitalOcean这两个厂家。他们的价格比其他小商家的要贵上一些,同时1G内存和2G内存的配置价格会高不少,不过他们的服务稳定,还支持按使用时长收费,对于才开始接触WordPress建站的个人或者企业来说,我们先购买他们1核1G的入门配置来学习和搭建WordPress网站,等到网站有一定流量VPS性能不够之后再升级VPS配置是一个比较节约且靠谱的自建站方案。(升级不会影响网站数据而且很快能完成)
那么,下面我们就以1核CPU和1G内存的VPS来安装LNMP环境以及搭建WordPress网站吧。
什么是LNMP环境?
LNMP环境指的是“Linux+Nginx+MySQL+PHP”,代表的是Linux系统上安装Nginx、MySQL、PHP这3个软件。只有安装完毕这些软件,才能满足安装WordPress的基础条件。
安装前的准备
1、一台VPS,如果你还没有VPS,可以考虑买一台Vultr或者DigitalOcean家的VPS,他们都是按使用时长计费,不用不收费,可以随时删除和创建VPS,非常适合新手练习。
VPS购买时配置选择1核CPU和1G内存,系统选择Debian12,其他付费项目都不选择,6美元一个月。
2、一个连接VPS的软件,这里推荐xShell,从下方链接可以免费下载和使用。
小内存VPS安装LNMP环境
系统更新
当你使用xShell连接上VPS之后,我们第一部要做的就是做系统更新,复制下方命令后粘贴到xShell控制面板内回车。(一次复制一行,后面碰到命令行依然一次复制一行。)
apt update && sudo apt full-upgrade -y
apt install -y curl wget unzip git htop
上面的两行命令,第一行是对系统进行更新,第二行是安装后面会用到的基础软件。

如果你更新系统的时候碰到上面图片中的提示,直接回车即可。
配置SWAP交换空间
#号所在行的代码是注释,不要复制进vps执行。
# 创建2GB交换文件
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# 永久生效配置
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
# 优化内存管理
sysctl vm.swappiness=20
sysctl vm.vfs_cache_pressure=50
echo 'vm.swappiness=20' | sudo tee -a /etc/sysctl.conf
echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.conf
可以通过free -h命令来查看是否创建成功,当VPS物理内存不足时会使用交换空间充当虚拟内存。
安装Nginx以及配置优化
apt install -y nginx
通过编辑/etc/nginx/nginx.conf文件对nginx做一些性能优化,如果你会使用VI编辑器,可以使用下面的命令,如果不会,可以使用SFTP下载文件到本地编辑后上传覆盖(截图参见下方绑定域名部分)。

vi /etc/nginx/nginx.conf
打开nginx.conf文件之后,对照下面的内容修改或者增加,然后上传到网站服务器覆盖。
# /etc/nginx/nginx.conf 主配置文件
user www-data;
worker_processes 1; # 明确指定1个工作进程
worker_rlimit_nofile 2048; # 文件描述符限制适配低内存环境
events {
worker_connections 1024; # 单进程连接数上限
multi_accept off; # 关闭批量接收连接(降低CPU负载)
use epoll; # 保持epoll高效IO模型
}
http {
# 基础性能优化
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30s;
keepalive_requests 100;
types_hash_max_size 2048;
# 限制缓冲区防止内存溢出
client_body_buffer_size 16k;
client_header_buffer_size 1k;
client_max_body_size 10m; # 限制上传文件大小
large_client_header_buffers 4 4k;
# Gzip压缩优化(CPU与带宽平衡)
gzip on;
gzip_comp_level 3; # 压缩级别从5降为3
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript text/xml;
gzip_vary off; # 关闭Vary头节省内存
# 静态文件缓存策略
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_errors off;
# SSL会话缓存优化
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 24h;
ssl_session_tickets off;
include /etc/nginx/sites-enabled/*;
}
覆盖完毕之后,执行下面的命令重启nginx。
systemctl restart nginx
安装MariaDB并配置
对于1G内存VPS,建议使用MariaDB替代MySQL,会更加节省资源一些。
apt install -y mariadb-server
mysql_secure_installation
上面的mysql_secure_installation是一个数据库安全工具,运行后会碰到下面这些提示:
- Enter current password for root (enter for none):让你输入当前的root密码,直接回车。
- Switch to unix_socket authentication [Y/n] 切换到unix_socket认证,直接回车。
- Change the root password? [Y/n] 修改root密码,直接回车,然后设置一个root密码。
- Remove anonymous users? [Y/n] 删除匿名用户,直接回车。
- Disallow root login remotely? [Y/n] 禁止root远程登录,直接回车。
- Remove test database and access to it? [Y/n]删除测试数据库并访问,直接回车。
- Reload privilege tables now? [Y/n] 重新加载权限表,直接回车。
出现All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!就代表配置完毕。
接下来我们为WordPress创建一个数据库备用。
mysql -u root -p
输入上面命令后,会让你输入数据库root密码(Enter password:),成功输入密码之后出现下面的命令:
MariaDB [(none)]>
这个时候复制下面的命令后回车:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
命令中的wordpress是数据库名,你可以自己修改为其他的。
创建数据库用户:
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'your_strong_password';
your_strong_password请修改为你自己的密码,尽量复杂一点避免被机器破解。
wpuser就是数据库用户名,可以自己修改。
授权数据库用户访问数据库的权限:
GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
输入exit退出数据库管理界面:
exit
对数据库做一些性能优化:
vi /etc/mysql/mariadb.conf.d/50-server.cnf
编辑上面这个文件,同样的建议还是使用SFTP下载到本地编辑,增加以下内容:
# /etc/mysql/mariadb.conf.d/50-server.cnf
[server]
[mysqld]
#
# * 基础设置
#
pid-file = /run/mysqld/mysqld.pid
basedir = /usr
bind-address = 127.0.0.1 # 只允许本地连接
#
# * 内存与连接优化
#
key_buffer_size = 8M # MyISAM索引缓存(WordPress建议禁用MyISAM)
max_allowed_packet = 16M # 限制单包大小防止OOM
thread_stack = 192K # 每个线程栈大小
thread_cache_size = 4 # 线程缓存数=CPU核心数×2
max_connections = 30 # 最大连接数(每个连接约消耗4MB内存)
table_open_cache = 200 # 表缓存数= max_connections × 2
#
# * 查询与日志配置
#
query_cache_type = 0 # 完全禁用查询缓存(WP写操作频繁)
query_cache_size = 0 # 避免查询缓存争用
slow_query_log = 1 # 启用慢查询日志
long_query_time = 2 # 记录超过2秒的查询
log_queries_not_using_indexes = 1 # 记录未使用索引的查询
#
# * InnoDB引擎优化
#
innodb_buffer_pool_size = 160M # 缓冲池大小(物理内存的15-20%)
innodb_log_file_size = 32M # 日志文件大小(缓冲池的25%)
innodb_flush_log_at_trx_commit = 2 # 1=完全ACID,2=折衷性能
innodb_flush_method = O_DIRECT # 避免双缓冲
innodb_file_per_table = 1 # 独立表空间便于管理
innodb_thread_concurrency = 2 # CPU核心数
#
# * 临时表与内存表
#
tmp_table_size = 16M # 内存临时表最大尺寸
max_heap_table_size = 16M # 内存表最大尺寸
#
# * 字符集配置
#
character-set-server = utf8mb4 # 完整Unicode支持
collation-server = utf8mb4_unicode_ci
#
# * 二进制日志(主从复制用,单机可关闭)
# skip-log-bin
#
# * 其他安全配置
#
performance_schema = OFF # 关闭性能监控表(节省内存)
skip-name-resolve # 禁用DNS反查加速连接
重启服务
systemctl restart mariadb
安装并优化PHP
apt install -y php8.2-fpm php8.2-{mysql,curl,gd,mbstring,xml,zip,opcache,redis,exif,fileinfo,imagick,intl}
优化PHP-FPM配置文件
vi /etc/php/8.2/fpm/pool.d/www.conf
修改或者增加下方配置:
; /etc/php/8.2/fpm/pool.d/www.conf
pm = dynamic
pm.max_children = 8 # 计算公式: (总内存 - 系统保留) / 单个进程内存 ≈ (1024MB - 300MB)/80MB = 9 → 保守取8
pm.start_servers = 3 # 初始进程数 (max_children × 0.25)
pm.min_spare_servers = 1 # 最小空闲进程
pm.max_spare_servers = 4 # 最大空闲进程
pm.max_requests = 500 # 防止内存泄漏,子进程处理500请求后重启
优化Opcache
; /etc/php/8.2/mods-available/opcache.ini
opcache.enable=1
opcache.memory_consumption=128 # 分配128MB给OPcache
opcache.interned_strings_buffer=16 # 节省重复字符串内存
opcache.max_accelerated_files=10000 # 足够缓存所有PHP文件
opcache.revalidate_freq=180 # 3分钟检查文件变更
opcache.enable_cli=1 # CLI模式也启用加速
opcache.jit_buffer_size=64M # PHP8+ JIT编译器内存
修改PHP上传文件大小
vi /etc/php/8.2/fpm/php.ini
搜索max_file_uploads,把后面的数值改为你需要的之后保存即可。
最后重启服务
systemctl restart php8.2-fpm
配置Nginx绑定网站域名
在配置Nginx时请同时去域名解析里面把域名解析修改为服务器IP地址,不会域名解析请留言我教你。
提示,下面这个是命令行编辑界面,如果你不会操作,可以直接通过xftp把对应的default文件下载到本地使用记事本修改后再上传到服务器。

vi /etc/nginx/sites-available/default
把default文件修改为下面的内容:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
your_domain.com修改为你自己的域名,例如quhenet.com,同时要绑定www的,就输入quhenet.com www.quhenet.com
测试并重启Nginx:
nginx -t
systemctl restart nginx
给网站安装SSL安全证书
apt install -y certbot python3-certbot-nginx
certbot --nginx -d yourdomain.com -d www.yourdomain.com
第二条命令中yourdomain.com替换成你自己的域名,回车后会让你输入一个邮箱地址。后面出现的提示都输入Y后回车。

这个证书是免费90天,到期会自动续期。
安装WordPress
下载WordPress安装包
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress/* /var/www/html
chown -R www-data:www-data /var/www/html
接着打开你的域名,就会出现WordPress的安装界面。

优化WordPress缓存性能
安装Redis缓存
apt install -y redis-server
phpenmod redis
systemctl restart php8.2-fpm
编辑网站根目录的wp-config.php文件
// 添加以下内容
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_TIMEOUT', 1);
完毕之后WordPress网站后台插件搜索“W3 Total Cache”安装,根据插件提示设置好缓存配置即可。
