蒼天家 本家
Digital Ocean 環境安裝 LNMP 環境 - Debian 10 , 安裝筆記 2021-03-11
######################################################
# 帳號配置相關
######################################################

建立帳號
- useradd -m {帳號}
- grep {帳號} /etc/passwd /etc/shadow /etc/group (查看)
- passwd {帳號}
- id {帳號} (查看)

建立金鑰
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- ssh-keygen
- cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
- chmod 600 ~/.ssh/authorized_keys
- id_rsa 透過 winscp 抓下來並轉換成 id_rsa.ppk

將特定帳號設定為 root 權限, 並確認是否可用
- visudo
root ALL=(ALL:ALL) ALL
{帳號} ALL=(ALL:ALL) ALL (指定帳號新增)

NOTE: visudo 預設使用 Joe's Own Editor

關閉密碼認證
- vi /etc/ssh/sshd_config

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

- systemctl restart sshd
- 開另外一組 shell 嘗試登入並確定 sudo -i 權限可過

######################################################
# 套件安裝
######################################################

更新 apt 套件
- apt update

安裝 acl (setfacl)
- apt install acl

安裝 nginx
- apt install nginx
- systemctl start nginx
- systemctl enable nginx

安裝 php8 前導準備
- apt-get install apt-transport-https lsb-release ca-certificates
- wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
- echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
- apt update

NOTE: 參考網址「https://www.kjnotes.com/devtools/82」

安裝 php8
- apt install php8.0
- apt install php8.0-cli
- apt install php8.0-fpm
- apt install php8.0-mysqlnd
- apt install php8.0-zip
- apt install php8.0-devel
- apt install php8.0-gd
- apt install php8.0-mbstring
- apt install php8.0-curl
- apt install php8.0-xml
- apt install php8.0-pear
- apt install php8.0-bcmath
- apt install php8.0-json
- php --version (查看版本)

NOTE: 乾淨移除指令「apt autoremove」

啟動 php-fpm
- systemctl enable php8.0-fpm
- systemctl start php8.0-fpm

取消註解
- /etc/php/8.0/fpm/pool.d/www.conf, pm.status_listen = 127.0.0.1:9001

調整資料夾寫入權限
- setfacl -Rm user:www-data:rwx /var/www/html

重啟 php-fpm
- systemctl restart php8.0-fpm

安裝 mariadb10
- apt update
- apt install mariadb-server

啟動與確認版本
- systemctl start mariadb
- systemctl enable mariadb

安全性設置
- mysql_secure_installation

NOTE:
如果透過 GUI 無法登入, 請用下列方式
- sudo mysql -u root -p
- GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '';
FLUSH PRIVILEGES;

######################################################
# 資料搬移
######################################################

資料庫搬移
- 資料庫搬移
- 使用者搬移

NOTE: 需要修改 php.ini, 調整上傳檔案限制
NOTE: 建議透過 GUI 比對新舊環境設置, 如: 資料表編碼

打包檔案
- tar -cvf {filename.tar} {dir}

複製金鑰
- 從舊環境複製 ssh 私鑰, 並設置權限為 700

傳輸檔案
- scp -i {私鑰} -r {舊環境帳號}@{舊環境位置}:{舊環境檔名路徑} {新環境檔名}

展開檔案
- tar -xvf {filename.tar} -C {dir}
關於我

隨手用部落格

紀錄平時學習用到的東西

考慮想重改版

Github 自學倉庫

我的 Github 帳號

PHP開發

公司: 原生PHP

個人: Slim -> Flight