我遇到了客户的 Drupal 站点的问题。他安装了许多 D6,还有一个他刚刚开始的新 D7。所有这些站点都在同一个共享主机包上。
问题是仅在 D7 站点上运行某些drush
命令时。D6 站点上没有问题。D7网站上的具体错误如下:drush up
foo@bar [~/www/foo]# drush up
Command pm-update needs a higher bootstrap level to run - you will need to invoke drush [error]
from a more functional Drupal environment to run this command.
Command pm-update needs the following modules installed/enabled to run: update. [error]
The drush command 'up' could not be executed. [error]
Drush was not able to start (bootstrap) the Drupal database. [error]
Hint: This may occur when Drush is trying to:
* bootstrap a site that has not been installed or does not have a configured database. In
this case you can select another site with a working database setup by specifying the URI
to use with the --uri parameter on the command line. See `drush topic docs-aliases` for
details.
* connect the database through a socket. The socket file may be wrong or the php-cli may
have no access to it in a jailed shell. See http://drupal.org/node/1428638 for details.
Drush was attempting to connect to:
Drupal version : 7.28
Site URI : http://default
Database driver : mysql
Database username : username_foo
Database name : database_foo
PHP configuration :
PHP OS : Linux
Drush version : 7.0-dev
Drush temp directory : /tmp
Drush configuration :
Drush alias files :
Drupal root : /home/foo/www/foo
Site path : sites/default
我能找到的所有内容(实际上是错误消息中的链接host
)都说解决方案是将文件中的值settings.php
从localhost更改为127.0.0.1。然而,这并不是我们的解决方案。
- 前端站点连接到数据库没有问题,而且
drush
它本身在很多情况下似乎也是如此。 drush sql-connect
将生成一个可用于连接 MySQL 的字符串。drush sql-cli
将成功连接到 MySQL- 该
settings.php
文件肯定在一个名为default
(path: ) 的文件夹中,我在指定和选项www/foo/sites/default
时得到完全相同的错误。--root
--uri
- Drush 最初是一个 ~5.x 版本,它也有同样的问题。我们更新到 ~7.x 以尝试消除错误。主机值
settings.php
一直localhost
以及127.0.0.1
同样糟糕的结果。
我们已经验证 MySQL 可以通过 PHP CLI 中的套接字使用。Drush 是最新的并且是全新安装的。Drupal 7 站点是全新安装的。
我不知所措。为什么这适用于 D6 站点,而不适用于 D7?有什么建议么?