Drupal8のインストール時にエラーがでた。

ブラウザでDrupal8の設定を行おうとしたら次のエラーがでました。

The translations directory does not exist.
The installer requires that you create a translations directory as part of the installation process. Create the directory sites/default/files/translations . More details about installing Drupal are available in INSTALL.txt.

エラーに表示されたディレクトリの所有権をrootからnginxにしたら次に進むことができました。

cd /var/www/drupal/sites/default/
ls -l
chown nginx files
ls -l

その後再びエラーが。

設定ファイル は書き込み可能ではありません。
Drupal インストーラーはインストール時 ./sites/default/settings.php への書き込み権限を必要とします。これに関するヘルプやその他のトピックがオンラインドキュメント (英語) の ホスティングサーバー上の問題の章に記載されています

というわけでエラー内容を解消するため作業を進めました。
フォルダdefaultにいる状態でパーミッションを確認し書き込み権限がないことを確認してから
chmod 666 settings.php
にて書き込み権限を付与しました。

次にエラーではないが警告があった。そのまま無視して進めるのもなんでしたので調べてみた。
エラー内容は次の通りです。

PHP OPCODE キャッシング
無効
PHP OPcode キャッシングはサイトのパフォーマンスを大幅に改善します。OPcache がサーバーにインストールされていることをお勧めします。

OPcacheを導入すれば処理が速くなることがわかったのでやってみることにしました。
上のエラーはOPcacheに加えAPCuパッケージも導入する必要があることがわかりました。
私はRemiリポジトリからPHP7.4を導入したのでそれらがあるかどうか確認してみる。

yum info --enablerepo=remi,remi-php74 php-opcache php-pecl-apcu

存在が確認できたので導入してみます。

yum install --enablerepo=remi,remi-php74 php-opcache php-pecl-apcu

OPcacheが動作しているかの確認する。
php -v
Zend OPcacheの表記に変わったことが確認できました。


次に便利なコマンドで設定を確認します。
php -i | egrep 'apc|opcache’
APCuとOPcacheの設定ファイルがどこにあるかを確認することができました。
私の場合前者が/etc/php.d/40-apcu.iniに、後者が/etc/php.d/10-opcache.iniにあることが確認できますし、設定内容もスクロールすることで確認できます。


nginxとphp-fpmの両方の再起動が必要となります。←これ重要
systemctl restart nginx
systemctl restart php-fpm

その後データベースの入力画面に進むことができました。
データベースを作成します。

mysql -uroot -p
Enter password:
MariaDB [(none)]> create database drupal;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> grant all privileges on drupal.* to 'username’@’localhost’ identified by 'password’;
Query OK, 0 rows affected (0.013 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.003 sec)

上で作成した情報を入力します。

入力したら保存して次へ進みます。
ウィザードに従って進めます。

セットアップが終了しました。


指示通りsetting.phpの書き込み権限を禁止にしておきましょう。

教育

Posted by admin