DrupalをAlpine Linux Dockerコンテナー内で動作させるようにしていますが、何らかの理由でdrush
を使用してWebサイトを管理することはできません。Webサイト自体は実際に正常に動作しますが、 Drushはブートストラップできません。
関連情報は次のとおりです。
/var/www/html # drush core-status
Drupal version : 7.56
Site URI : http://default
Database driver : mysql
Database hostname : vlp-dcimysql01.dhe.duke.edu
Database port :
Database username : tmp_drupal
Database name : tmp_drupal
PHP configuration : /etc/php7/php.ini
PHP OS : Linux
Drush script : /usr/bin/drush
Drush version : 8.1.14
Drush temp directory : /tmp
Drush configuration :
Drush alias files :
Drupal root : /var/www/html
Drupal Settings File : sites/default/settings.php
Site path : sites/default
/var/www/html # drush wd-show
PHP Fatal error: Uncaught Error: Call to undefined function cache_get() in /var/www/html/includes/module.inc:754
Stack trace:
#0 /var/www/html/includes/module.inc(954): module_implements('system_theme_in...')
#1 /var/www/html/modules/system/system.module(2511): module_invoke_all('system_theme_in...')
#2 /var/www/html/includes/theme.inc(798): _system_rebuild_theme_data()
#3 /var/www/html/includes/theme.maintenance.inc(57): list_themes()
#4 /var/www/html/includes/bootstrap.inc(2872): _drupal_maintenance_theme()
#5 /var/www/html/includes/errors.inc(179): drupal_maintenance_theme()
#6 /var/www/html/includes/bootstrap.inc(2609): _drupal_log_error(Array, true)
#7 [internal function]: _drupal_exception_handler(Object(Error))
#8 {main}
thrown in /var/www/html/includes/module.inc on line 754
Drush command terminated abnormally due to an unrecoverable error. [error]
Error: Uncaught Error: Call to undefined function cache_get() in /var/www/html/includes/module.inc:754
Stack trace:
#0 /var/www/html/includes/module.inc(954): module_implements('system_theme_in...')
#1 /var/www/html/modules/system/system.module(2511): module_invoke_all('system_theme_in...')
#2 /var/www/html/includes/theme.inc(798): _system_rebuild_theme_data()
#3 /var/www/html/includes/theme.maintenance.inc(57): list_themes()
#4 /var/www/html/includes/bootstrap.inc(2872): _drupal_maintenance_theme()
#5 /var/www/html/includes/errors.inc(179): drupal_maintenance_theme()
#6 /var/www/html/includes/bootstrap.inc(2609): _drupal_log_error(Array, true)
#7 [internal function]: _drupal_exception_handler(Object(Error))
#8 {main}
thrown in /var/www/html/includes/module.inc, line 754
前に述べたように、プラットフォームはAlpine Linux、PHPは7.1.9です。
不明な点があれば追加できます。私はPHPログを確認しましたが、それらは上記の出力を生成するだけです。モジュール/拡張機能が欠落しているだけですが、それを理解する方法は完全にはわかりません「undefined function extensionFunctionX」などのメッセージが表示されない場合、上記の未定義の関数はDrupalコア関数のようです。
ウェブサイトは機能するので、データベースと問題なく通信していることに注意してください。SHOW TABLES
MySQLでDrupalインストーラーのテーブルが作成されたことを確認します。
私の場合(本番ウェブサイトを新しいサーバーに移動する)、settings.phpでmemcachedが有効になりました、PHPデーモンがサーバーにインストールされて実行されていましたが、PHP拡張機能はありませんインストールされました
エラーは、Drupalが正しくブートストラップされていないために発生します。通常、drush status
を実行すると、次の行が表示されます。
Database : Connected
Drupal bootstrap : Successful
したがって、設定ファイル内のデータベース資格情報が正しいデータベースとホスト(コマンドラインからアクセス可能)を指しているかどうかを確認し、MySQLクライアントコマンドがインストールされて存在する(たとえば、apk add mariadb-client
を使用)かMySQLサーバーは稼働しています。
drush sql-connect
コマンドを使用してデータベース接続を確認できます。それが正しい場合は、シェルで$(drush sql-connect)
を実行してデータベースに接続してみてください。
問題が発生した場合は、まずdrush cc drush
を使用してDrushキャッシュをクリアしてください。
Webサイトが正常に機能する場合は、データベース資格情報の読み込み方法を再確認してください。場合によっては、ホストに基づいてさまざまな環境でif
またはswitch
/case
ステートメントを使用していて、含まれていないコマンドラインインターフェイスを忘れてしまうことがあります。