wordpress, nginx and CentOS

前言

第一篇文章就來記錄一下架站的過程吧,先說明這篇文章不會是手把手的教學文,這種文章應該夠多了,只是記錄一下中間遇到的問題。 原本決定要架blog時是打算要找個Django的framwork(Django packages)來用,因為wordpress每年的CVE真的太多了XDD,但後來看來看去還是跑回來用wordpress,主要考量是懶的寫前端,畢竟wp的使用者應該還是多很多,template應該比較好找到適合的,CVE什麼的,出現再修就好XD。

安裝wordpress

跟著官網的文件應該非常容易就可以完成安裝,中間的障礙只有忘記mariadb的root密碼,但跟著教學也是快速解決。

Reset the MariaDB Root Password

$ sudo systemctl stop mariadb
$ sudo mysqld_safe --skip-grant-tables &
$ mysql -u root
MariaDB> use mysql;
MariaDB> update user SET PASSWORD=PASSWORD("mynewpassword") WHERE USER='root';
MariaDB> flush privileges;
MariaDB> exit
$ sudo systemctl start mariadb

2019/03/31 update. using mysql

# before mysqld_safe
~ sudo mkdir -p /var/run/mysqld
~ sudo cown mysql:mysql /var/run/mysqld
# change password
mysql> update user set authentication_string=PASSWORD("mynewpassword") where User='root';

設定wordpress

這個部分弄最久的應該就是server裡的權限,雖然沒有什麼困難的內容,只是有些東西之前沒有注意到。 最一開始發現的問題是沒有辦法上傳檔案,查了一下應該就是檔案目錄權限的問題,可是一直沒看到問題在哪裡,索性直接把wp-content目錄改成777,然後就成功了,接下來改回來755還是可以上傳就沒管他了。 但接下來發現要更新plugins時,wordpress都跟我說要FTP才能使用,雖然覺得有點莫名,但我還是不疑有他跑去架ftp server。

vsftpd

一開始當然先找鳥哥大大的教學看要用什麼ftp server,但後來發現裡面的東西有點老了,都還沒開始用systemctl,就又另外找了教學文教學文2,東弄西弄,把Firewall、SSL Certificate、TLS、Passive mod(pasv_address都弄好了(這個部分以後還是直接man vsftpd.conf比較快…)

但我弄完ftp後還是不知道怎麼在wordpress上面使用,在那個頁面輸入帳號密碼之後,他就卡住了,可能我沒有很仔細去看他的文件吧(其實後來我在查看權限的時候發現wp有用我給的那個ftp user在wp-content裡面創了一個upgrade folder,也不知道他怎麼找到目錄在哪裡的…),但我google的時候突然發現有人寫到wp會要求ftp也是因為權限沒有設定好的關係,跑去/etc/php-fpm.d/www.conf一看,發現user = apache, group = apache阿Orz,趕快把apache改回nginx就好了。

404 after change permalink settings

正式開始用wordpress後我就發現他預設的網址長的好醜,連about page都是?p=6之類的東西,在設定翻找一下,馬上就發現有permalink的設定,開心地改完之後就發現除了Home page都404了XDDDD。 還好網路上已經有前輩遇過這個問題了 簡單來說就是在nginx的conf裡面加上rewrite的設定(把下面這段放在location ~.php$ {前)

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

  # Add trailing slash to */wp-admin requests.
  rewrite /wp-admin$ $scheme://$host$uri/ permanent;

tips

主文的部分大概結束了,這邊放一些有用到的command,畢竟我的記憶力真的很爛..。

some SQL syntax (文件)

MariaDB> select User, Host, Password from mysql.user;

change all the directories or files permission

find ./ -type d -exec chmod 755 {} \;
find ./ -type f -exec chmod 644 {} \;

Fix http error while upload image

修復遷移/複製網站後跳回原網址

WP_database_name > wp_options中把siteurlhome改成新的網址。

Leave a Reply

Your email address will not be published. Required fields are marked *