小内存VPS安装LNMP环境搭建WordPress教程

趣合网络科技工作室之前跟大家分享了“怎么安装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,从下方链接可以免费下载和使用。

xShell官方下载地址

Xshell 连接VPS教程

小内存VPS安装LNMP环境

系统更新

当你使用xShell连接上VPS之后,我们第一部要做的就是做系统更新,复制下方命令后粘贴到xShell控制面板内回车。(一次复制一行,后面碰到命令行依然一次复制一行。)

apt update && sudo apt full-upgrade -y
apt install -y curl wget unzip git htop

上面的两行命令,第一行是对系统进行更新,第二行是安装后面会用到的基础软件。

Wp blog 206

如果你更新系统的时候碰到上面图片中的提示,直接回车即可。

配置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下载文件到本地编辑后上传覆盖(截图参见下方绑定域名部分)。

Wp blog 211
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是一个数据库安全工具,运行后会碰到下面这些提示:

  1. Enter current password for root (enter for none):让你输入当前的root密码,直接回车。
  2. Switch to unix_socket authentication [Y/n] 切换到unix_socket认证,直接回车。
  3. Change the root password? [Y/n] 修改root密码,直接回车,然后设置一个root密码。
  4. Remove anonymous users? [Y/n] 删除匿名用户,直接回车。
  5. Disallow root login remotely? [Y/n] 禁止root远程登录,直接回车。
  6. Remove test database and access to it? [Y/n]删除测试数据库并访问,直接回车。
  7. 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文件下载到本地使用记事本修改后再上传到服务器。

Wp blog 207
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后回车。

Wp blog 209

这个证书是免费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的安装界面。

Wp blog 208

优化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”安装,根据插件提示设置好缓存配置即可。

Wp blog 212
Rate this post

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注