記錄LNMP多主機架構Wordpress博客實施過程中的一些坑
**首先來介紹一下LNMP**
- LNMP就是:Linux系統下Nginx+MySQL+PHP網站服務器架構
- Nginx是一個高性能的HTTP和反向代理服務器,也是一個IMAP/POP3/SMTP代理服務器。
- Mysql是一個小型關系型數據庫管理系統。
- PHP是一種在服務器端執行的嵌入HTML文檔的腳本語言。
- lnmp都是免費開源軟件,組合到一起,就是一個免費、高效、擴展性強的網站服務系統。
**整個框架我們可以部署的方式有以下幾種**:
- 使用rpm包逐個主機進行安裝及部署;
- 使用編譯源代碼的方式逐個主機進行安裝及部署;
- 使用運維工具(如: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
[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 =”如果有有一行是這個,而且沒有值,就會提示這個錯誤了, 把這行註釋就可以了;
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
和第三個一樣,配置文件改的神煩~
- 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博客實施過程中的一些坑