Project

General

Profile

Actions

設定作業 #13

open

機能 #7: 次の一手ver1

次の一手ver1 サーバー作成(テストサーバー)

Added by K Okuda about 1 month ago. Updated about 1 month ago.

Status:
進行中
Priority:
通常
Assignee:
Start date:
05/14/2025
Due date:
% Done:

0%

Estimated time:
Spent time:
Actions #1

Updated by K Okuda about 1 month ago

  • Subject changed from 次の一手サーバー作成 to 次の一手ver1 サーバー作成
Actions #2

Updated by K Okuda about 1 month ago

  • Parent task set to #7
Actions #3

Updated by K Okuda about 1 month ago

  • Subject changed from 次の一手ver1 サーバー作成 to 次の一手ver1 サーバー作成(テストサーバ)
Actions #4

Updated by K Okuda about 1 month ago

  • Subject changed from 次の一手ver1 サーバー作成(テストサーバ) to 次の一手ver1 サーバー作成(テストサーバー)
Actions #5

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 #6

Updated by K Okuda about 1 month ago

  • Status changed from 新規 to 進行中
Actions #7

Updated by K Okuda about 1 month ago

テストサーバーにアカウント作成済み。

Actions

Also available in: Atom PDF