Before you develop a marketing strategy, you should ask yourself what your business strategy is. Your marketing strategy should be based on your business strategy and brand strategy. Your marketing strategy is not equal to your business strategy.
如何解决 drush command needs a higher bootstrap level to run
drush是一个命令行shell,是专门为drupal做的站点管理脚本。通过drush我们能方便的看到drupal站点的状态,启用或者禁用某个模块以及升级drupal的版本。在帮助客户升级drupal站点期间,我遇到一个问题,当我执行站点升级命令drupal up时,它会提示”Command pm-update needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command.”
如下图所示:
其中给了一个页面可能会有解决方案http://drupal.org/node/1428638。我在这个页面里看了半天,试过其中一些我认为可能的解决方案,例如其中有一个解决方案提到把settiing.php文件里的 'host' => 'localhost' 改为'host'=>' 127.0.0.1'。我试了,没有效果。
我仔细看了一下网站,运行正常!MySQL,PHP-FPM服务运行都正常!接下来通过网上搜索,查看drush的官方文档等。越来越多的文章将我引向PHP版本跟drush版本及drupal版本的适配问题上来。如下图所示:
我根据以上描述,尝试了其中的组合,都没能解决这个问题。之后又陆陆续续花了两天时间在网上搜索,寻找可能的解决方案,最后发现都是无用功。
为了能让客户的网站尽快升级到最新的版本,最后我采用了非常规的办法。先将客户的站点部署到本机环境中,即公司办公用的电脑。通过本机的drush up命令完成升级。之后再转移网站文件及数据到客户的站点服务器中。然后这个问题就被搁置了,也没找到原因。
直到后来再次遇到这个问题,我才开始重新思考原因。我是怎么又遇到这个问题的呢?我新买了个MacBookPro,有时需要在这台机器上工作,因此重新搭建了一个PHP、MySQL等环境,一切都是新的!安装的drupal测试站点运行也很正常!然而当我开始用drush脚本管理站点,例如用drush pml 查看站点中安装的模块信息时,这个问题再一次出现了,我非常的吃惊!但这次我并没有怀疑软件版本的问题,因为一切都是新的,一切都是我亲手打造的。
由于是我自己的电脑,所以软件的各项配置比较熟悉。在尝试了一些方法后,我突然意识到MySQL数据库程序并没有配置到PATH环境变量中。每次进入mysql,我都需要先执行 cd /usr/local/mysql/bin,然后 ./mysql -u root -p。会不会是这个原因引起的呢?有了这个猜测后我马上把 /usr/local/mysql/bin放入系统的环境变量PATH中,测试drush pml,报错信息果然消失了!在感叹自己机智的同时,我也感慨自己的无能,一个这么简单的问题,尽然能困扰我这么久。现在回过头来想想,也情有可原,客户服务器的环境多种多样,我不可能每个都记得一清二楚。
通过这个问题,我得到一个经验,使用drush维护drupal站点时,最好能先确认一下php、mysql、nginx等是否配置到了PATH环境变量中。这样可以避免出现一些类似于“drush command needs a higher bootstrap level to run”等问题。
检查的系统环境变量PATH的命令有env、printenv、echo $PATH。 例如:
查看上面的路径,确认一下是否包含了你要用到的php、mysql、nginx等。
或者用 which、whereis命令测试一下php、mysql等是否能被找到。
或者用 php —help,mysql —help等测试一下这些命令是否能够执行。