记录LNMP多主机架构Wordpress博客实施过程中的一些坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录LNMP多主机架构Wordpress博客实施过程中的一些坑相关的知识,希望对你有一定的参考价值。

**首先来介绍一下LNMP**
  • LNMP就是:Linux系统下nginx+mysql+php网站服务器架构
  • Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
  • Mysql是一个小型关系型数据库管理系统。
  • PHP是一种在服务器端执行的嵌入html文档的脚本语言。
  • lnmp都是免费开源软件,组合到一起,就是一个免费、高效、扩展性强的网站服务系统。

**整个框架我们可以部署的方式有以下几种**:
  1. 使用rpm包逐个主机进行安装及部署;
  2. 使用编译源代码的方式逐个主机进行安装及部署;
  3. 使用运维工具(如:ansible)在各个主机上安装rpm包并部署;
    这里我是用编译源码的方式部署。

**毫无疑问,分机部署能够提高服务效率,几台机器一起干活总比一台强多了。**

技术分享图片


部署过程:

在Nginx主机上安装nginx,在PHP主机上安装PHP,在数据库主机上安装MySQL,编译安装过程就不多讲,首先达到第一阶段:PHP测试页面测试成功之前遇到的问题:

安装nginx一切顺利,但是到了配置php这开始出问题:
1.Gracefully shutting down php-fpm . done Starting php-fpm [26-Oct-2018 19:35:
修改php-fpm.conf中的配置
[global]
; Note: the default prefix is
/usr/local/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes

修改php.ini
log_errors = On
error_log = "/usr/local/php/var/log/error_log"
重启即可;

2.PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/local/php/lib/php/extensions/no-debug-non-zts
打开php.ini文件,找下看看有没有一行“extension =”如果有有一行是这个,而且没有值,就会提示这个错误了, 把这行注释就可以了;
还有一种办法,将/etc/php.d/目录下的.ini文件全部重命名为.so也可以解决;

3.nginx: [emerg] "server" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:45
这是我在配置nginx.conf文件时少书写了一个}导致的;

4.测试页面502
这个就神烦了,什么都准备好了,满怀信心的打开浏览器输入网址结果502你莫不是在逗我,从昨天晚上开始×××器502有关的解决办法,一直到今天中午,很遗憾,没有解决,然后有提示是防火墙问题,我把防火墙关了,神奇的好了???

5.nginx: [emerg] “location” directive is not allowed here in /etc/nginx/conf.d/default.conf:1
和第三个一样,配置文件改的神烦~

  1. Gracefully shutting down php-fpm warning, no pid file found - php-fpm is not running ?
    Starting php-fpm ERROR: unable to bind listening socket for address ‘192.168.92.128:9000‘: Address already in use (98)

技术分享图片
网上搜了好久,没解决,后来看日志发现没路由,我去又是防火墙的锅

之后没问题了,初始的wordpres起来了
技术分享图片


第二阶段就是在nginx和php主机上搭建wordpress环境,仍然源码编译安装,过程不多讲了;

之后配置数据库主机,我在这踩了不少坑,我首先装的是MySQL8的发行版,但是我在配置时是按照5的书写风格来书写配置文件的,后果可想而知,一连的报错啊,步步艰辛啊,在这记录俩印象最深的:
技术分享图片
我是这么写的:
mysql> CREATE USER ‘fuboyuan‘@‘%‘ IDENTIFIED BY ‘123456‘;
mysql> GRANT ALL ON wordpress.* TO ‘fuboyuan‘@‘%‘ WITH GRANT OPTION;

没毛病把,就是起不来~就是报错~
之后我了解到,在使用mysql5的时候,在linux安装完成mysql后,习惯使用grant all privileges on . to ‘user‘@‘%‘;命令授权远程连接操作。但是最近linux安装mysql8后,再次使用这个命令,会有如下错误:

ERROR 1410 (42000): You are not allowed to create a user with GRANT

原来是Using GRANT to modify account properties other than privilege assignments. This includes
authentication, SSL, and resource-limit properties. Instead, establish such properties at account-creation
time with CREATE USER or modify them afterward with ALTER USER.
这个特性被移除了,解决办法是用alteruser和creatuser,格式如下:
alter user set user.host=‘%‘ where user.user=‘root‘
create user ‘userName‘@‘%‘ identified ...

然后就可以远程了。注释下:‘userName‘@‘%‘,%表示允许所有远程的地址
所以8是这么写的:
mysql> ALTER USER ‘fuboyuan‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘123456‘;

没毛病~

但是!!!!我wordpress还是连不上数据库啊啊啊啊啊!
我疯了, 我不玩8了, 我默默的打开了5,,,

第三阶段就是配置wordpress,我用MySQL5没事,数据库连上了,wordpress起来了,接下来就是配置环节了。

配置完成果图展示:
技术分享图片

虽然搭建成功,但是我还是没有解决为什么wordpress连不上MySQL8的问题,百度已经无用,若是和各位大佬有相关的解决信息,求教!!

以上是关于记录LNMP多主机架构Wordpress博客实施过程中的一些坑的主要内容,如果未能解决你的问题,请参考以下文章

LNMP架构

lnmp架构搭建Wordpress博客

实现LNMP架构,并部署WordPress以及配置NGINX虚拟主机

实现LNMP架构,并部署WordPress以及配置NGINX虚拟主机

lnmp架构搭建wordpress开源博客(centos 7)

如何搭建 LNMP环境