lnmp wordpress建设多网站 避坑指南:从0到1搞定多站分离,省钱又省心
lnmp wordpress建设多网站
说实话,刚搞服务器那会儿,我真是被LNMP环境给整懵了。那时候不懂啥叫虚拟主机,以为装好WordPress就能随便加站,结果一搞,数据库连不上,Nginx还报错403。折腾了整整三天,头发掉了一把,最后才明白,多站的核心就在于“分离”和“配置”。今天就把我踩过的坑,还有现在正用的这套方案,掏心窝子跟大家说说。你要是也在琢磨 lnmp wordpress建设多网站 ,这篇绝对能帮你省不少电费和时间。
第一步,得把目录结构理清楚。别把所有站都扔在 /var/www/html 里,那样后期维护简直是一场灾难。我在 /home/wwwroot 下面建了个文件夹,每个网站一个子目录,比如 /home/wwwroot/site1, /home/wwwroot/site2。这样每个站的文件、数据库、日志都分得清清楚楚。记得给每个目录设置权限,chown -R www:www /home/wwwroot/your_site,不然Nginx读不到文件,你会怀疑人生的。
第二步,数据库别共用。虽然理论上可以共用一个数据库,但一旦某个站被黑或者数据出错,牵连太大。我现在的做法是,每个WordPress站对应一个独立的数据库用户和密码。在MySQL里新建用户时,权限只给那个特定的库,这样安全系数直接拉满。这一步虽然麻烦点,但为了数据安全,值了。
第三步,也是最关键的,Nginx配置文件。这是 lnmp wordpress建设多网站 的核心。你得去 /usr/local/nginx/conf/vhost/ 目录下,为每个域名新建一个.conf文件。比如 site1.com.conf。内容大致长这样:
server {
listen 80;
server_name site1.com www.site1.com;
root /home/wwwroot/site1;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
注意看,root路径一定要写对,不然访问就是空白页。还有,location ~ \.php$ 这块,很多新手容易漏掉 fastcgi_param SCRIPT_FILENAME 这行,导致PHP无法解析,直接下载文件或者500错误。我当初就是在这卡了半天,最后发现是路径变量没写对。
第四步,重启Nginx和PHP。改完配置别急着访问,先执行 nginx -t 测试配置语法有没有错,没报错再 nginx -s reload 重载配置。这时候,打开浏览器输入域名,如果能看到WordPress的安装界面,恭喜你,第一步成了。
第五步,WordPress后台设置。进入后台,设置->常规,把WordPress地址和站点地址都改成你的新域名。然后去伪静态设置,把刚才Nginx里的 try_files 规则复制进去,保存。这一步如果不做,你的文章链接全是404,那就尴尬了。
我试过用宝塔面板,确实方便,但对于想深入理解底层逻辑的人来说,手动配置LNMP多站点更有成就感。而且,手动配置能让你更清楚资源占用情况。比如,我发现两个站共用一个PHP-FPM进程池时,如果其中一个站流量大,另一个站就会变慢。所以,建议每个站单独起一个PHP-FPM池,虽然多占点内存,但稳定性好多了。
现在,我手里跑了5个站,都是这么配的。每个月服务器成本控制在50块以内,比买虚拟主机划算多了。而且,这种架构扩展性极强,想加站直接复制配置文件改域名就行。
当然,过程中肯定会有报错。比如权限问题、SSL证书配置、数据库连接超时等。遇到报错别慌,先看错误日志,/var/log/nginx/error.log 和 /var/log/php-fpm.log 是你的好朋友。大部分问题都能在里面找到答案。
最后提醒一句,定期备份!定期备份!定期备份!重要的事情说三遍。我有一次误删了配置文件,差点哭死。所以,写个简单的Shell脚本,每天凌晨自动备份数据库和网站文件到OSS或者本地硬盘,这才是长久之计。
如果你还在为 lnmp wordpress建设多网站 发愁,不妨试试这套手动配置法。虽然前期有点门槛,但一旦跑通,后面就是躺赢。毕竟,自己掌控的服务器,用起来才踏实。