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

Apache

ふと気がついた。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 方式で提案されたりしたけど、概ね大丈夫みたいだった。

タグ