記錄LNMP多主機架構Wordpress博客實施過程中的一些坑

**首先來介紹一下LNMP**
  • LNMP就是:Linux系統下Nginx+MySQL+PHP網站服務器架構
  • Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。
  • Mysql是一個小型關係型數據庫管理系統。
  • PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
  • lnmp都是免費開源軟件,組合到一起,就是一個免費、高效、擴展性強的網站服務系統。

**整個框架我們可以部署的方式有以下幾種**:
  1. 使用rpm包逐個主機進行安裝及部署;
  2. 使用編譯源代碼的方式逐個主機進行安裝及部署;
  3. 使用運維工具(如:ansible)在各個主機上安裝rpm包並部署;
    這裏我是用編譯源碼的方式部署。

**毫無疑問,分機部署能夠提高服務效率,幾臺機器一起幹活總比一臺強多了。**

記錄LNMP多主機架構Wordpress博客實施過程中的一些坑


部署過程:

在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)

記錄LNMP多主機架構Wordpress博客實施過程中的一些坑
網上搜了好久,沒解決,後來看日誌發現沒路由,我去又是防火牆的鍋

之後沒問題了,初始的wordpres起來了
記錄LNMP多主機架構Wordpress博客實施過程中的一些坑


第二階段就是在nginx和php主機上搭建wordpress環境,仍然源碼編譯安裝,過程不多講了;

之後配置數據庫主機,我在這踩了不少坑,我首先裝的是MySQL8的發行版,但是我在配置時是按照5的書寫風格來書寫配置文件的,後果可想而知,一連的報錯啊,步步艱辛啊,在這記錄倆印象最深的:
記錄LNMP多主機架構Wordpress博客實施過程中的一些坑
我是這麼寫的:
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起來了,接下來就是配置環節了。

配置完成果圖展示:
記錄LNMP多主機架構Wordpress博客實施過程中的一些坑

雖然搭建成功,但是我還是沒有解決爲什麼wordpress連不上MySQL8的問題,百度已經無用,若是和各位大佬有相關的解決信息,求教!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章