Ubuntuのサーバ設定で主なポイントをメモします。

TimezoneがUTCになっていたので東京に変更。

# timedatectl set-timezone Asia/Tokyo

ホスト名を正しくつける。

# hostnamectl set-hostname www.example.com

Firewallはincomingだけ制御できればいいので、ufwでお手軽設定。80と443を開け、22をlimit設定。limit設定で不正アタック時に自動でブロックする設定になる。

# ufw enable

# ufw allow 80

# ufw allow 443

# ufw limit 22

# ufw status numbered

MySQL 8.xをインストール。

# apt install mysql-common mysql-client mysql-server

PHPは必要なモジュールをあれこれインストール。

# apt install php-fpm php-mbstring php-mysql php-pgsql php-sqlite3 php-xml php php-all-dev php-apcu php-apcu-all-dev php-bcmath php-bz2 php-cli php-cgi php-common php-curl php-date php-dev php-gd php-imagick php-imap php-json php-mail php-mail-mime php-mbstring php-memcache php-memcache-all-dev php-mongodb php-mongodb-all-dev php-mysql php-pclzip php-pear php-pgsql php-php-gettext php-ramsey-uuid php-random-compat php-readline php-redis php-redis-all-dev php-soap php-snmp php-tidy php-uuid php-uuid-all-dev php-xml php-xml-rpc2 php-xmlrpc php-yaml php-yaml-all-dev php-zip php8.1-opcache

Webサーバはnginxをインストール。

# apt install nginx

php-fpmのインストール規定の設定がソケットになっているのでnginxからの接続をIPアドレスからソケットに変更。

#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;

/etc/nginx/conf.d/ssl.confから抜粋

MySQLはrootアカウントでアクセスしてユーザー設定する。MySQLのrootは初期状態でパスワードなし、Linuxのrootでアクセスするとそのまま繋がる。

# mysql -u root mysql

MYSQL> CREATE DATABASE データベース名;
MYSQL> CREATE USER ‘ユーザー名’ IDENTIFIED BY ‘パスワード’;

MYSQL> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,LOCK TABLES,CREATE VIEW, SHOW VIEW ON データベース名.* TO ‘ユーザー名’;