Actions
設定作業 #13
open機能 #7: 次の一手ver1
次の一手ver1 サーバー作成(テストサーバー)
Added by K Okuda about 1 month ago. Updated about 1 month ago.
Updated by K Okuda about 1 month ago
- Subject changed from 次の一手サーバー作成 to 次の一手ver1 サーバー作成
Updated by K Okuda about 1 month ago
- Subject changed from 次の一手ver1 サーバー作成 to 次の一手ver1 サーバー作成(テストサーバ)
Updated by K Okuda about 1 month ago
- Subject changed from 次の一手ver1 サーバー作成(テストサーバ) to 次の一手ver1 サーバー作成(テストサーバー)
Updated by K Okuda about 1 month ago
サーバー構成セットアップ手順(AlmaLinux 9.5)¶
OS・基本設定¶
- AlmaLinux 9.5 を使用
- 初期セットアップ
sudo dnf update -y
sudo dnf install -y epel-release
Webサーバー:Nginx + PHP-FPM¶
- Nginx を使用(軽量・高速)
- PHP-FPM により PHP 実行を分離
sudo dnf install -y nginx
sudo systemctl enable --now nginx
PHP 8.2 + 拡張モジュール¶
- Remiリポジトリで PHP 8.2 をインストール
- 拡張:mbstring / pdo_pgsql / opcache
sudo dnf install -y dnf-utils https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module enable php:remi-8.2 -y
sudo dnf install -y php php-fpm php-mbstring php-pdo php-pgsql php-opcache
データベース:PostgreSQL 15¶
- PostgreSQL 公式リポジトリからインストール
- ローカルで起動
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-almalinux15-15-2.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql15 postgresql15-server
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl enable --now postgresql-15
HTTPS・SSL証明書(Let's Encrypt)¶
- Certbot + Nginx で無料SSL証明書を取得
- 独自ドメイン対応(例: yourdomain.com)
sudo dnf install -y certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com
- HTTPSリダイレクト設定(Nginx)
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
独自ドメインの設定(例:Xdomain)¶
- ドメイン取得
- DNS AレコードにサーバーIPを設定
- Nginxの server_name に反映
デプロイ・更新方法(SSH + Git)¶
- Git による手動デプロイ
sudo dnf install -y git
cd /var/www/
git clone git@github.com:your/repo.git project
- データベース更新は update.sql を実行
セキュリティ対策¶
- HTTPS通信を強制(HTTPから自動リダイレクト)
- .env による機密情報管理
- アプリ側での対策:
- CSRF対策
- XSS対策
- SQLインジェクション対策
- コマンドインジェクション対策
- ファイアウォールで 80/443 のみ開放
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
ログ管理・死活監視¶
- Nginxログ: /var/log/nginx/
- PHP-FPMログ: /var/log/php-fpm.log など
- UptimeRobot による死活監視設定(URLモニタリング)
バックアップ(自動SQLダンプ)¶
- cron による定期バックアップ設定例:
crontab -e
0 2 * * * pg_dump -U postgres yourdb > /home/user/db_backup_$(date +\%F).sql
PHP OPcache の有効化¶
- パフォーマンス向上のため OPcache を有効にする
- 設定ファイル: /etc/php.d/10-opcache.ini
環境別設定管理(.env)¶
- .env ファイルを使って環境別に設定
- vlucas/phpdotenv を導入
composer require vlucas/phpdotenv
// config.php
require_once __DIR__ . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
- .env の例:
APP_ENV=production
DB_HOST=localhost
DB_NAME=yourdb
DB_USER=youruser
DB_PASS=secret
Nginx + PHP-FPM の連携設定¶
- /etc/php-fpm.d/www.conf にて user = nginx を設定
- Nginx設定例:
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Actions