サーバ

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の外部公開可否、管理画面のアクセス制限、復元テストまで確認します。

参考: 公式ドキュメント

続きを読む

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として誤認識されているケースは別手順です。少量の実データで往復検証してから本番へ進めます。

参考: 公式ドキュメント

続きを読む

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ごとに分離し、アクセスログとエラーログを確認します。

参考: 公式ドキュメント

続きを読む

CentOS 5.3 で、yum が python 失敗する。

次のようなエラーでお嘆きのあなたは、 --> Missing Dependency: /usr/lib64/python2.4 is needed by package libxml2-python-2.6.26-2.1.2.8.x86_64 (updates) libxslt-python-1.1.17-2.el5_2.2.x86_64 from installed has depsolving problems --> Missing Dependency: /usr/lib64/python2.4 is needed by package libxslt-python-1.1.17-2.el5_2.2.x86_64 (installed) gamin-python-0.1.7-8.el5.x86_64 from installed has depsolving problems --> Missing Dependency: /usr/lib64/python2.4 is needed by package gamin-python-0.1.7-8.el5.x86_64 (installed) Error: Missing Dependency: /usr/lib64/python2.4 is needed by package libxslt-python-1.1.17-2.el5_2.2.x86_64 (installed) Error: Missing Dependency: /usr/lib64/python2.4 is needed by package gamin-python-0.1.7-8.el5.x86_64 (installed) Error: Missing Dependency: /usr/lib64/python2.4 is needed by package libxml2-python-2.6.26-2.1.2.8.x86_64 (updates) yum clean metadata してメタデータをきれいにすれば解決!
続きを読む

Linux (Ubuntu)で、ループバックデバイス(loop back device)の数を増やす方法

Eucalyptus 1.5.1 を Ubuntu 9.04 (Jaunty) にインストールすると、確実に You should have at least 32 loop devices というエラーが出て Front-end (eucalyptus-cloud)が起動できない。 # ls -la /dev/loop* としてみると、loop back device が 0~7 の 8つしかないことに気づく。じゃ増やすには?と、いろいろとググっても /etc/modules の loop の行を loop max_loop=255 にしろとかしか書いてない。 ところが最近の Linux はカーネルに loop back device のモジュールがマージされているようなので、Ubuntu 9.04 (Jaunty) では、 rmmod loop; modprobe loop max_loop=256 としてもダメだった。なので結論から言うと # vi /boot/grub/menu.lst
続きを読む

Ubuntu で、Eucalyptus 1.5RC1 を動かす方法

<span style="color: #000000; font-family: Verdana; font-size: 13px; line-height: normal;"> <div style="margin-top: 0px; margin-bottom: 0px;"> <ul style="margin-top: 0px; margin-bottom: 0px;"> <li style="margin-top: 0px; margin-bottom: 0px;">ver.1.5 から kvm on Ubuntu に力を入れている模様。kvm は簡単にインストールできる印象。 <li style="margin-top: 0px; margin-bottom: 0px;">apt-get install eucalyptus-cloud eucalyptus-cc は、同じマシンでよい。MANAGED モードを考えるなら eucalyptus-nc だけは別のマシンにインストールする。よりアマゾンの環境に近づけたいなら MANAGED モードにする(Elastic IP が利用できるから)。

続きを読む

Ubuntu の Apache で、PHP を有効にする方法

Ubuntu の Apache の設定ファイルの場所は /etc/apache2/site-available/default である。従って、 PHP をデフォルトのディレクトリ /var/www で動かすには、PHP と Apache の関連モジュールを apt-get でインストールした後、次のようにする。 # vi /etc/apache2/site-available/default Options Indexes FollowSymLinks MultiViews +ExecCGI # ここと DirectoryIndex index.php index.cgi # ここを追加。index.cgi はおまけ。 AddHandler cgi-script .cgi .pl # もし Perl (拡張子は .cgi か .pl)を有効にしたい場合はこの行を追加、「.php」はこの行に追記してはいけない(Internal Server Error となる) AllowOverride None Order allow,deny allow from all
続きを読む
サーバ を購読