新頁面
切換成root角色
sudo su
有些vps預設會直接用root,就不用切換。我是習慣全用root去執行操作,主機只有自己會管理,有時遇到權限的問題真的蠻雷的 XD
安裝伺服器
apt install nginx php-fpm php-gd php-mbstring php-gd php-xml mysql-server mysql-client certbot
Drupal或WordPress裝完後可以再檢查看看有沒有漏掉哪個php程式,再補齊安裝即可
不要用apt-install php,這樣會安裝apache2
設定MySQL
設定mysql密碼
以root進入mysql
mysql -u root
更改密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpassword'; exit;
yourpassword 記得改成你自己的密碼
如果你的資料庫有設定外連,那可能就要避免直接用root,不然就是務必把防火牆的限定做好
調整conf檔
在 /etc/mysql/mysql.cnf 最尾段加入
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
max_connections = 600
innodb_read_io_threads = 24
innodb_write_io_threads = 24
expire_logs_days = 7
max_binlog_size = 1G
加入後後重啟 server,binlog_size務必要設定,log檔可能會被你的空間佔滿
在 ~/.my.cnf 加入密碼
[client]
password = yourpassword
MySQL基本的管理指令
建立資料庫
mysqladmin -u root create site
刪除資料庫
mysqladmin -u root drop site
匯出資料庫
mysqldump -u root site > site.sql
匯入資料庫
mysql -u root site < site.sql
學會這幾招基本上就差不多可以不用裝phpMyAdmin XD
啟用及設定伺服器防火牆
ufw enable
ufw allow from xxx.xxx.xxx.xxx (填上自己連入的IP)
ufw allow 80/tcp
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
Nginx 設定檔
server {
## Your website name goes here.
server_name site.com;
## Your only path reference.
root /var/www/site;
## This should be in your http block and if it is, it's not needed here.
index index.php;
client_max_body_size 100M;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't break when using query string
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
#The following parameter can be also included in fastcgi_params file
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
}
設定SSL
certbot -d site.com
調整目錄權限
chown -R www-data:www-data /var/www/site
完成後就可以輸入 https://site.com 進站完安裝程序
安裝WordPress後的設定及我必裝的外掛
裝好後最好立即啟用防火牆外掛,並更換wp-admin預設路徑;永久連結設定選擇文章名稱,媒體設定為上傳的檔案建立以年份及月份命名的資料夾勾選取消
必裝外掛,安全相關:All In One WP Security、Falcon
必裝外掛,效能相關:APCu Manager、DecaLog、Cache Enabler
必裝外掛,SEO相關:Slim SEO、Super Socializer、XML Sitemap & Google News
圖片管理的部份,由於我是用圖床,採用 External Media without Import 處理圖的問題
使用wp-cli維護更新程式
#!/bin/bash
# 充許root使用WP CLI
export WP_CLI_ALLOW_ROOT=1
# 列出要更新的網站
SITES=("site" "site1" "site2" )
# 更新網站語法
for SITE in "${SITES[@]}"; do
SITE_DIR="/var/www/$SITE"
cd "$SITE_DIR"
# 執行更新動作
wp core update
wp plugin update --all
wp core language update
wp core update-db
wp theme update --all
# wp db optimize
echo "網站 $SITE 更新完成"
done
調整執行權限,之後執行 ./wpnew.sh 即可更新
chomd +x wpnew.sh
網站搬家
網站搬家可以分成2種來討論
不用換網址:直接把目錄及sql備份還原及可
需要換網址:由於WordPress的站如果網址有更動,就必須透過WPvivid這類的備份還原程式,成功率算蠻高的,當然還是加減有還原失敗的經驗,例如有些路徑沒成功還原,漏網之魚可以在登入phpmyadmin進行置換修改
※ 注意!每個人都有自己的管理操作習慣,這裡的資訊僅供參考