ローカル PC に LAMP 環境の Drupal テストサイトをつくる

ふと気がついた。Drupal にサイトを移行してから今まで Apache 関連の記事を書いてないことに。
ということで Drupal のローカルテストサイトをつくるメモとして初めて Apache の記事を残してみる。
ユーザー/グループ名は hogehoge。
なお hosts ファイルに必要な項目を追加しておく。
cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 T14.jisaba.life T14
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Apache
インストールする。
sudo apt install -y apache2
モジュールを有効化する。
sudo a2enmod http2 rewrite ssl headers
Drupal をインストールするディレクトリを作成、パーミッションを設定する。
sudo mkdir /var/www/t14.jisaba.life
sudo chown -R hogehoge:hogehoge /var/www/t14.jisaba.life
sudo chmod -R 755 /var/www/t14.jisaba.life
仮想ホストを設定する。
sudo vi /etc/apache2/sites-available/t14.jisaba.life.conf
<VirtualHost *:80>
ServerName t14.jisaba.life
DocumentRoot /var/www/t14.jisaba.life/web
ErrorLog ${APACHE_LOG_DIR}/t14.jisaba.life_error.log
CustomLog ${APACHE_LOG_DIR}/t14.jisaba.life_access.log combined
<FilesMatch \.(php|phar)$>
SetHandler "proxy:unix:/run/php/hogehoge-fpm.sock|fcgi://localhost"
</FilesMatch>
<Directory /var/www/t14.jisaba.life/web>
Options FollowSymlinks Includes
AddType text/html .html
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
作成した VirtualHost の設定を有効にして、デフォルトサイトの設定を無効にする。
sudo a2ensite t14.jisaba.life.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2.service
MariaDB
インストールする。
sudo apt install mariadb-server
初期設定を行う。詳細は mariadb.com のとおり。
sudo mysql_secure_installation
何故か上のコマンドでは root のパスワードが設定されなかったから改めて次のとおり設定する。
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootのパスワード';
FLUSH PRIVILEGES;
exit
Drupal 用のデータベース(t14.jisaba.life)と一般ユーザー(db-server)を作成する。
データベース名に「 . 」を含むから「 ` (バッククウォート)」で括る。
sudo mysql -u root -p
CREATE DATABASE `t14.jisaba.life`;
CREATE USER 'db-server'@'localhost' IDENTIFIED BY 'パスワード';
GRANT ALL PRIVILEGES ON `t14.jisaba.life`.* TO 'db-server'@'localhost';
FLUSH PRIVILEGES;
exit
PHP
リポジトリを追加する。
sudo apt install apt-transport-https
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt update
諸々インストールする。
sudo apt install php8.4 libapache2-mod-php8.4 libgd3 php8.4-{apcu,cli,curl,fpm,gd,imagick,intl,mbstring,mysql,opcache,readline,uploadprogress,xml}
FPM(FastCGI Process Manager)関係モジュールなどを有効化する。
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.4-fpm
ユーザー毎の php-fpm を設定する。例では Apache の設定で指定したユーザー hogehoge。
sudo cp /etc/php/8.4/fpm/pool.d/www.conf /etc/php/8.4/fpm/pool.d/hogehoge.conf
sudo vi /etc/php/8.4/fpm/pool.d/hogehoge.conf
-[www]
+[hogehoge]
-user = www-data
+user = hogehoge
-group = www-data
+group = hogehoge
-listen = /run/php/php8.4-fpm.sock
+listen = /run/php/hogehoge-fpm.sock
アップロード可能なファイルサイズの上限などを変更する。
cd /etc/php/8.4/fpm/
sudo vi ./php.ini
;メモリ使用量の上限
memory_limit = 128M
;POSTデータの最大サイズ ※合計サイズ
post_max_size = 1000M
;1ファイルあたりの最大アップロードサイズ
upload_max_filesize = 1000M
PHP APCu caching サイズを設定する。
sudo vi /etc/php/8.4/cli/conf.d/20-apcu.ini
extension=apcu.so
;追加
apc.shm_size=128M
Apache 、php-fpm をリスタートする。
sudo systemctl restart php8.4-fpm.service
sudo systemctl restart apache2.service
SSL で接続したいときはこちらの記事を参考に certbot をインストール、設定する。
composer による Drupal のインストール
最後にこちらの記事を参考に composer で Drupal をインストールする。
ただし、php が新しくなったことで、Debian 公式パッケージの composer を使用すると沢山の警告がでる。
なので、次のコマンドで composer の最新版をインストールしてから Drupal をインストールする。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
php -r "unlink('composer-setup.php');"
今日時点のバージョンは次のとおり。
$ composer -V
Composer version 2.8.6 2025-02-25 13:03:50
PHP version 8.4.5 (/usr/bin/php8.4)
Run the "diagnose" command to get more detailed diagnostics output.
composer 自身をアップデートするときは、
sudo composer self-update
あとがき
今どきは AI に質問すればそれなりに手順を示してくれるから記事を残さなくても何とかなる。
ChatGPT で試してみたら php のリポジトリ追加方法が古い apt-key 方式で提案されたりしたけど、概ね大丈夫みたいだった。