跳到主內容

設定主機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_';