Linux

Apache 2.4 で TLS を安全に設定する

概要

本番にはブラウザーが信頼する認証局の証明書を使います。自己署名証明書はローカル開発や検証に限定し、TLS設定はApache 2.4の公式資料に従います。

実施例

sudo a2enmod ssl
sudo apachectl configtest
sudo systemctl reload apache2

# 開発専用の短期自己署名証明書
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -days 30 \
  -keyout dev.key -out dev.crt -subj '/CN=localhost'

注意点

証明書更新、秘密鍵の権限、HTTPからHTTPSへの方針、TLSスキャナーによる定期確認を運用に組み込みます。

参考: 公式ドキュメント

続きを読む

Ubuntu で最小の Apache、PHP、MySQL 構成を作る

概要

小規模なWebアプリ用の基本構成は、OS標準パッケージ、最小権限のDBユーザー、HTTPS、バックアップ、更新管理を前提にします。

実施例

sudo apt update
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql
sudo systemctl enable --now apache2 mysql
sudo apachectl configtest

注意点

公開前にファイアウォール、DBの外部公開可否、管理画面のアクセス制限、復元テストまで確認します。

参考: 公式ドキュメント

続きを読む

Composer を使って Drupal 11 を Ubuntu に導入する

概要

Drupal本体・モジュール・DrushはComposerで管理します。Webサーバーの公開ディレクトリはプロジェクトのwebに限定します。

実施例

sudo apt update
sudo apt install php php-cli php-mysql unzip
composer create-project drupal/recommended-project site
cd site
composer require drush/drush

注意点

インストール後はファイル権限、データベース接続、公開ファイルのバックアップ、更新手順を運用文書に残します。

参考: 公式ドキュメント

続きを読む

Ubuntu 上で Drupal 11 を運用するための構成

概要

Drupal 11はComposerで依存関係を固定し、Webルート、公開ファイル、設定同期ディレクトリを分けます。OSやPHPのサポート期間も運用計画に含めます。

実施例

composer create-project drupal/recommended-project my_site
cd my_site
composer require drush/drush
php -d memory_limit=256M ../vendor/bin/drush status

注意点

本番へ直接手作業で変更せず、検証環境でComposer更新と設定同期を確認してからデプロイします。

参考: 公式ドキュメント

続きを読む

MySQL の旧文字コードを utf8mb4 へ安全に移行する

概要

文字コード移行は必ずバックアップと検証環境で行います。現在はutf8mb3や曖昧なutf8指定ではなくutf8mb4を明示します。

実施例

mysqldump --single-transaction --routines appdb > appdb-before-charset.sql
mysql appdb -e "ALTER TABLE articles CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;"
mysql appdb -e "SHOW FULL COLUMNS FROM articles;"

注意点

実データがlatin1として誤認識されているケースは別手順です。少量の実データで往復検証してから本番へ進めます。

参考: 公式ドキュメント

続きを読む

phpMyAdmin を安全に限定公開する

概要

phpMyAdminは管理用ツールです。インターネットへ無制限に公開せず、VPN、IP制限、多要素認証などで到達経路を限定します。

実施例

sudo apt update
sudo apt install phpmyadmin
sudo a2enconf phpmyadmin
sudo apachectl configtest
sudo systemctl reload apache2

注意点

rootでの直接ログインを避け、用途ごとに最小権限のDBユーザーを発行してください。

参考: 公式ドキュメント

続きを読む

Ubuntu で PHP を Apache と連携して使う

概要

PHPはOSがサポートするパッケージを使い、Web実行環境に必要な拡張だけを追加します。古いPHP固有の設定は引き継ぎません。

実施例

sudo apt update
sudo apt install php libapache2-mod-php php-mysql
php -v
sudo systemctl reload apache2

注意点

本番では表示エラーを無効にし、PHPとOSのセキュリティ更新を継続してください。

参考: 公式ドキュメント

続きを読む

Apache HTTP Server 2.4 を Ubuntu に導入して確認する

概要

Apache HTTP Server 2.4 系をOS標準パッケージで導入し、設定変更後は必ず構文検査を通してから再読み込みます。

実施例

sudo apt update
sudo apt install apache2
sudo apachectl configtest
sudo systemctl reload apache2

注意点

本番の設定変更は、VirtualHostごとに分離し、アクセスログとエラーログを確認します。

参考: 公式ドキュメント

続きを読む
Linux を購読