設定主機2025 (Ubuntu24.04筆記)
切換成root角色
sudo su
有些vps預設會直接用root,就不用切換。我是習慣全用root去執行操作,主機只有自己會管理,有時遇到權限的問題真的蠻雷的 XD
修改時區
dpkg-reconfigure tzdata
修改語系
vi /etc/locale.gen
把 zh_TW.UTF-8 mark打開
locale-gen
更新程式及更改主機名稱,然後重啟主機
apt update
apt dist-upgrade
vi /etc/hostname
reboot
重啟用,登入後再切到 root 角色
sudo su
安裝伺服器
apt install nginx php-fpm php-gd php-mbstring php-gd php-xml php-mysql mysql-server mysql-client certbot python3-certbot-nginx
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檔
[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 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
加入不同版本的php來源
add-apt-repository ppa:ondrej/php
aptitude update
apt install php7.4-fpm php7.4-gd php7.4-mbstring php7.4-gd php7.4-xml php7.4-mysql
apt install php5.6-fpm php5.6-gd php7.4-mbstring php5.6-gd php5.6-xml php5.6-mysql
安裝Docker
sudo apt install -y ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安裝Portainer
docker pull portainer/portainer-ce:latest
docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer-ce:latest
Nginx conf
server {
listen 80;
server_name docker.yoursite.com.tw;
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
安裝舊版本的Mysql
version: '3.8'
services:
mysql:
image: mysql:5.7
container_name: my_mysql57
restart: always
environment:
MYSQL_ROOT_PASSWORD: yourpassword # 請換成你自己的密碼
TZ: Asia/Taipei
ports:
- "43306:3306"
volumes:
- ./mysql57_data:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: my_phpmyadmin
restart: always
ports:
- "48081:80"
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=root
- PMA_PASSWORD=yourpassword # 要與上面一致
- UPLOAD_LIMIT=128M # 要與上面一致
depends_on:
- mysql
Nginx 設定檔( phpmyadmin ) (他會直接登入,使用完記得移掉)
server {
listen 80;
server_name pma2025.yoursite.com.tw;
client_max_body_size 128M; # <<< 這行最重要,數字請依需求調整
location / {
proxy_pass http://127.0.0.1:48081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Drupal 6 修改 port
$db_url = 'mysqli://root:yourpassword@127.0.0.1:43306/haccp';
$db_prefix = 'haccp_';