Media Temple(共有ホスティング)にDrush 9をインストールしようとしています。サーバーにはDrupal 7(D7)サイトがいくつかありますが、最近Drupal 8(D8))に移行し始めました。 DrushはD7サイト用にすでにグローバルにインストールされているため、.bash_profileで次の行を使用して、D8サイト用にエイリアス「drush9」を作成しました。
alias drush9="~/domains/sitename.com/vendor/bin/drush"
しかし、drush9を実行すると、次のエラーが返されました。
Failed loading /usr/local/php-5.6.21/lib/php/20131226/php_opcache.so: /usr/local/php-5.6.21/lib/php/20131226/php_opcache.so: cannot open shared object file: No such file or directory
The following restricted PHP modes have non-empty values: [error]
open_basedir. This configuration is incompatible with drush. Please
check your configuration settings in /home/999/etc/php.ini or in
your drush.ini file; see examples/example.drush.ini for details.
Execute a drush command. Run `drush help [command]` to view command-specific help. Run `drush
topic` to read even more documentation.
少し前にopcacheを有効にしようとしましたが、そのライブラリはサーバー上に存在しないようです。そこで、このエラーを解消するために、php.iniでopcacheを無効にしました。
無効にしたら、drush9を再度実行したところ、次のエラーが発生しました。
The following restricted PHP modes have non-empty values: {open_basedir}. This configuration is incompatible with drush. {Please check your configuration settings in /home/999/etc/php.ini or in your drush.ini file; see examples/example.drush.ini for details.}
Stack Exchangeを検索した後、このエラーの解決策を見つけました: Drush Open_BaseDir Error したがって、drush9エイリアスを次のように変更しました:
alias drush9="/usr/bin/php5 -c ~/domains/sitename.com/vendor/bin/drush"
今、drush9を実行すると、PHP deprecations:
PHP Deprecated: Comments starting with '#' are deprecated in /nfs/c11/h04/mnt/999/domains/sitename.com/vendor/drush/drush/drush on line 1 in Unknown on line 0
このエラーは私には適切ではないようです。私はどのDrushファイルも変更していないので、それらに問題はないはずです。また、drushは私のローカル環境で完全に動作します。それでも、「#」を「;」に置き換えてみました。非推奨エラーはなくなりましたが、drush9コマンドは実行されません。エラーは発生せず、アイドル状態になります。
行方不明のものはありますか? Drush 9を運用サーバーにインストールするためのベストプラクティスはありますか?ヒントがあれば大歓迎です。
便利な場合は、ローカルでdrupalvmを使用しています。 Drushは、VMが起動するとcomposerで自動的にインストールされます。次に、生成されたDrushファイルをgit経由でサーバーに転送しました。
編集:Gregのアドバイスに従って、drushエイリアスを修正しました。現在はalias drush9='/usr/bin/php5-latest -c /home/###/etc/php.ini /home/###/domains/sitename/vendor/bin/drush
として入力されています。残念ながら、それは私の問題を解決しませんでした。 drush9を実行してもエラーはスローされませんが、コマンドは正常に実行されません。それは無限に回転します。
drushランチャー もインストールしてみました。サーバーでwgetを実行した後、エイリアス "drush90"にファイルdrush.pharファイルの場所を指定しました。サイトディレクトリの外でdrush90を実行すると、次が返されます。
The Drush launcher could not find a Drupal site to operate on. Please do *one* of the following:
- Navigate to any where within your Drupal project and try again.
- Add --root=/path/to/drupal so Drush knows where your site is located.
- Add a site alias so Drush knows where your site is located.
何が返されたかを考えると、適切に接続されているようですが、サイトディレクトリで実行しても機能しません。私のdrush9エイリアスと同様に、drush90を実行してもdrushは正常に実行されません。それは無限に回転し、実行に失敗し、エラーをスローしません。
編集:drush9 -vvv -d status
をウェブサイトのディレクトリの外で実行すると、次が返されます:
[bootstrap] Drush bootstrap phase: bootstrapDrupalDatabase() [0.41 sec, 9.89 MB]
[bootstrap] Successfully connected to the Drupal database. [0.41 sec, 9.89 MB]
[bootstrap] Drush bootstrap phase: bootstrapDrupalFull() [0.41 sec, 9.89 MB]
[debug] Start bootstrap of the Drupal Kernel. [0.41 sec, 9.89 MB]
[debug] Finished bootstrap of the Drupal Kernel. [0.57 sec, 14.94 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\config\ConfigCommands [0.68 sec, 17.47 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\config\ConfigExportCommands [0.69 sec, 17.53 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\config\ConfigImportCommands [0.7 sec, 17.56 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\BatchCommands [0.7 sec, 17.59 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\CliCommands [0.7 sec, 17.6 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\DrupalCommands [0.71 sec, 17.61 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\ImageCommands [0.71 sec, 17.64 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\LocaleCommands [0.71 sec, 17.66 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\QueueCommands [0.72 sec, 17.68 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\RoleCommands [0.72 sec, 17.71 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\StateCommands [0.73 sec, 17.76 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\UserCommands [0.73 sec, 17.79 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\ViewsCommands [0.74 sec, 17.86 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\core\WatchdogCommands [0.74 sec, 17.92 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\pm\PmCommands [0.75 sec, 17.97 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\pm\ThemeCommands [0.76 sec, 18.01 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeCommands [0.76 sec, 18.02 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeCommentsCommands [0.76 sec, 18.03 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeSessionsCommands [0.76 sec, 18.05 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeUserFieldsCommands [0.77 sec, 18.06 MB]
[debugnotify] Add a commandfile class: Drush\Drupal\Commands\sql\SanitizeUserTableCommands [0.77 sec, 18.07 MB]
Drupal version : 8.4.2
Site URI : default
DB driver : mysql
DB hostname : internal-db.s###.gridserver.com
DB port :
DB username : db###
DB name : db###_analytics
Database : Connected
Drupal bootstrap : Successful
Default theme : nellek
Admin theme : seven
PHP binary : /usr/local/php-7.0.6/bin/php
PHP config : /nfs/c11/h04/mnt/###/etc/php.ini
/nfs/c11/h04/mnt/###/users/.home/.drush/drush.ini
PHP OS : Linux
Drush script : /home/###/domains/sitename/vendor/bin/drush
Drush version : 9.0.0-beta7
Drush temp : /tmp
Drush configs : /nfs/c11/h04/mnt/###/domains/sitename/vendor/
drush/drush/drush.yml
Drush aliases :
Install profile : standard
Drupal root : /nfs/c11/h04/mnt/###/domains/sitename/web
Site path : sites/default
Files, Public : sites/default/files
Files, Temp : /tmp
Webサイトディレクトリの外でdrush9 cr
を実行すると、エラーが発生します。
drush9 cr
Fatal error: Uncaught TypeError: Return value of Doctrine\Common\Annotations\AnnotationRegistry::reset() must be an instance of Doctrine\Common\Annotations\void, none returned in /nfs/c11/h04/mnt/###/domains/sitename/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php:55
Stack trace:
#0 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php(113): Doctrine\Common\Annotations\AnnotationRegistry::reset()
#1 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Core/Entity/EntityTypeManager.php(106): Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery->getDefinitions()
#2 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(174): Drupal\Core\Entity\EntityTypeManager->findDefinitions()
#3 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Componen in /nfs/c11/h04/mnt/###/domains/sitename/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php on line 55
[error] Drush command terminated abnormally due to an unrecoverable error.
Error: Uncaught TypeError: Return value of Doctrine\Common\Annotations\AnnotationRegistry::reset() must be an instance of Doctrine\Common\Annotations\void, none returned in /nfs/c11/h04/mnt/###/domains/sitename/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php:55
Stack trace:
#0 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Component/Annotation/Plugin/Discovery/AnnotatedClassDiscovery.php(113): Doctrine\Common\Annotations\AnnotationRegistry::reset()
#1 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Core/Entity/EntityTypeManager.php(106): Drupal\Component\Annotation\Plugin\Discovery\AnnotatedClassDiscovery->getDefinitions()
#2 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Core/Plugin/DefaultPluginManager.php(174): Drupal\Core\Entity\EntityTypeManager->findDefinitions()
#3 /nfs/c11/h04/mnt/###/domains/sitename/web/core/lib/Drupal/Componen in /nfs/c11/h04/mnt/###/domains/sitename/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationRegistry.php, line 55
複数の構成の問題があり、1つずつ解決する必要があります。
エラー2002(HY000):ソケット
/var/run/mysqld/mysqld.sock
を介してローカルMySQLサーバーに接続できません。
MySQLサーバーが稼働中であり、ソケットファイルが/var/run/mysqld/mysqld.sock
に存在することを確認してください。サービスは正常に実行されているが、ソケットパスが正しくない場合は、php.ini
または設定ファイルで変更できます。
次の方法でSQL接続を確認します。
drush sql-connect
正しい詳細を使用していることを確認してください。
また、MySQLとPHPが同じソケットファイルを使用していることを確認してください。次のコマンドで確認してください。
mysql_config --socket
php -i | grep -w default_socket # Use /usr/bin/php5 in your case.
参照: drushを使用する場合、 `PDOException:SQLSTATE [HY000] [2002] No such file or directory`があります
致命的なエラー:キャッチされなかったTypeError:Doctrineの戻り値...
これは、DrushをPHP 7.0.xで実行していることと関連しています。ここで、Doctrine\Common\Annotations
はPHP 7.1。ソース
これはまた、エイリアスが実際にDrushをPHP5.6で実行していないことを示しています。
drush
プロセスはスタックしたままです。
drush
を-vvv
(詳細)および-d
(デバッグ)フラグを付けて実行して、問題がないか確認する必要があります。
それでもプロセスが完全にスタックしている場合は、Linuxでstrace
などのデバッガーを使用して、プロセスの詳細を確認できます。
strace -f /path/to/php drush status
上記のエイリアスにタイプミスがあります。 -c
フラグの後には、php.iniファイルへのパスを指定する必要があります。
alias drush9='/usr/bin/php5 -c /path/to/php.ini ~/domains/sitename.com/vendor/bin/drush