Thursday, March 11, 2021

Wordpress 架站筆記

好久沒更新了,其實主要是因為現在線上資源太多,基本上資訊唾手可得,也就懶惰了。但是Covid疫情的關係,閒著也是閒著,來嘗試架個站,放一點心得筆記好了。

目標: 試著架個 Wordpress server,順便把這個多年來使用 Linux 的興趣拿來實作。

主要就是參考這個網頁 https://restorebin.com/wordpress-on-digitalocean/

照著說明設定好 Digitalocean 和 Domain Name 之後,正式進入架站。我用 Ubuntu 20 (Debian對不起)

所需軟體為 Nginx, MySQL, and PHP (也就是所謂的 LEMP Stack)。我對這些都完全沒經驗,所以就是走一步算一步。

1. Nginx


聽說是個小巧可愛的 Webserver,設定十分容易。

apt-get update
apt-get install nginx
service nginx restart

裝完應該可以看到網頁 homepage

2. PHP 7.4


我沒有改 Source,直接裝下列 package:

apt-get install php7.4 php7.4-cli php7.4-common php7.4-fpm php7.4-curl php7.4-mbstring php7.4-mysql php7.4-zip php7.4-xml php7.4-gd php7.4-intl php7.4-soap

3. MySQL 8.0


apt-get install mysql-server php7.4-mysql

因為版本不同,所以開始 database 的指令改成

mysqld --initialize
mysql_secure_installation


這邊會被要求設定mysql的root密碼和一些安全設定,照步驟做就可以了

4. 接下來照步驟設定一個資料庫給 Wordpress 用,沒什麼大問題


用這個指令進入 mysql

mysql -u root -p

輸入密碼之後,在 mysql 之下,下下面的指令新增一個使用者給 Wordpress 的資料庫

CREATE DATABASE wpdatabase;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppassword';
GRANT ALL ON wpdatabase.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
exit;


上述安全性的設定 (wpdatabase, wpuser, wppassword) 記得改掉啊....

5. 接下來設定 nginx


vim /etc/nginx/sites-available/default

重點如下:

server { 
listen 80 default_server; 
listen [::]:80 default_server; 
root /var/www/demo; 
index index.php index.html index.htm index.nginx-debian.html; 
server_name demo.yourdomain.com;  
 
location / { 
try_files $uri $uri/ /index.php$is_args$args; 
}  
 
location ~ \.php$ { 
include snippets/fastcgi-php.conf; 
fastcgi_pass unix:/run/php/php7.4-fpm.sock; 
} 
 
location ~ /\.ht { 
deny all; 
} 
}

存檔後重啟 nginx:

nginx -t
service nginx restart

6. 安裝 Wordpress:

把 Wordpress 抓到 /tmp 然後解安裝

cd /tmp
curl -LO https://wordpress.org/latest.tar.gz
tar zxvf latest.tar.gz

用提供的檔案來做設定,之後把整個 Wordpress 複製到網頁的目錄下

cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
sudo cp -a /tmp/wordpress/. /var/www/demo


接下來需要改權限

chown -R www-data:www-data /var/www/demo

7. 設定 Wordpress

用 Wordpress 提供的工具製作密鑰:

curl -s https://api.wordpress.org/secret-key/1.1/salt/

會得到如下資料:

把上面這些東西複製起來,取代 /var/www/demo/wp-config.php 裡面的相關部分,另外設定好MySQL的資料庫和使用者

define('DB_NAME', 'wpdatabase');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'wppassword');


並且加入這行

define('FS_METHOD', 'direct');

重新開機之後,用網頁開啟伺服器的網址,就可以在線上設定部落格了。







No comments: