Apache + PHP + MySQL インストール
【関連する外部ページ】:
以下のコマンドは root 権限で実行する.
MySQL インストール
MySQL のインストールの手順は, 「MySQL インストール (UNIX の場合)」の Web ページ を見てください.
FreeBSD のパッケージでインストールする場合は次のコマンドを実行する. サーバの自動起動を有効にするため,/etc/rc.conf に mysql_enable="YES" を設定する.
pkg install mysql84-server mysql84-client
sysrc mysql_enable="YES"
service mysql-server start
初期状態の root パスワードは,エラーログ /var/db/mysql/<ホスト名>.err に一時パスワードとして記録される. 初期設定は mysql_secure_installation で行う.
mysql_secure_installation
Apache と PHP のインストール
Apache HTTP Server 2.4 と PHP,および PHP から MySQL を利用するための拡張モジュールをインストールする. PHP は,Apache との連携方式として PHP-FPM(FastCGI プロセスマネージャ)を使う. PHP-FPM は,Apache の動作方式(MPM)に依存せず,マルチスレッド型の event MPM とも組み合わせられる方式である.
pkg update
pkg install apache24 php84 php84-extensions php84-mysqli php84-pdo_mysql php84-mbstring
セキュリティ修正が随時公開されるため,導入後も pkg upgrade による更新を継続する. 導入済みパッケージに既知の脆弱性がないかは pkg audit -F で確認できる.
pkg upgrade
pkg audit -F
自動起動の設定と起動
Apache と PHP-FPM の自動起動を有効にするため,/etc/rc.conf に apache24_enable="YES" と php_fpm_enable="YES" を設定する.
sysrc apache24_enable="YES"
sysrc php_fpm_enable="YES"
service php-fpm start
service apache24 start
Apache と PHP-FPM の連携設定
設定ファイル /usr/local/etc/apache24/httpd.conf を編集し,次の 2 行のコメント記号「#」を外して mod_proxy と mod_proxy_fcgi を有効にする.
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
次に,設定ファイル /usr/local/etc/apache24/Includes/php-fpm.conf を新規作成し,拡張子 .php のファイルを PHP-FPM に渡す設定を書く. PHP-FPM は,FreeBSD の初期設定では 127.0.0.1:9000 で待ち受ける.
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
設定ファイルの文法を確認したうえで,Apache を再起動する.
service apache24 configtest
service apache24 restart
動作確認
Apache 24 の公開ディレクトリは /usr/local/www/apache24/data である. 動作確認用のファイルを置き,Web ブラウザで「http://<サーバのアドレス>/info.php」を開いて PHP の情報が表示されることを確認する. 確認が済んだら,サーバ構成の情報が外部に公開されないよう,このファイルは削除する.
echo '<?php phpinfo();' > /usr/local/www/apache24/data/info.php
rm /usr/local/www/apache24/data/info.php
Apache の各種設定
仮想ホスト,アクセス制御,SSI などの設定は, apache サーバ基本設定 (apache + PHP + SSI) の Web ページを参考に行ってください.
PHP 設定ファイル php.ini
PHP のパッケージには php.ini は含まれず,ひな型のみが配置される. 本番運用向けのひな型 php.ini-production をコピーして /usr/local/etc/php.ini を作成する.
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
設定例は次の通りである. 文字コードは UTF-8 を用いる. (mbstring.http_input, mbstring.http_output, mbstring.encoding_translation, mbstring.func_overload は PHP 8 では非推奨または削除されており,設定しない.)
default_charset = "UTF-8" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.detect_order = auto upload_max_filesize = 10M post_max_size = 10M expose_php = Off
php.ini を変更したあとは,PHP-FPM を再起動して設定を反映させる.
service php-fpm restart