我知道这不是等价的,但我可以drush rsync @local @remote,但不能drush @remote status -v。所以我的ssh键就位了,我在正确的端口,等等。
我得到:
Loaded alias @remote from file /Volumes/Users/blah/.drush/aliases.drushrc.php
Begin redispatch via drush_invoke_process().
Calling proc_open(ssh -p 22009 BLAH@xxx.xxx.xxx.xxx 'env COLUMNS=238 drush --verbose --root=/home/REMOTE/d7 --uri=d7.REMOTE.co.uk core-status 2>&1' 2>&1);
env: drush: Permission denied为了让它工作,我需要在@remote上设置什么?Drush是安装在那里(相同的版本),并愉快地工作。
是否存在钻孔错误日志,还是需要让托管公司查看日志?
这是我的化名:
$aliases['REMOTE'] = array(
'root' => '/home/REMOTE/SUBDIRECTORY',
'uri' => 'http://REMOTE.co.uk',
'remote-host' => 'xx.xx.xx.xx',
'ssh-options' => '-p 22009',
'remote-user' => 'SSH_USER',
'path-aliases' =>
array (
'%drush' => '/home/REMOTE/.composer/vendor/drush/drush',
'%site' => 'sites/default/',
'%dump-dir' => '/home/REMOTE/drush.dbdumps',
),
'databases' =>
array (
'default' =>
array (
'default' =>
array (
'database' => 'xxx',
'username' => 'xxx',
'password' => 'xxx',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => '',
),
),
),
);发布于 2015-10-26 16:58:50
首先要做的是确保站点别名中的“远程用户”与登录到站点时使用的用户相同。
接下来要检查的是drush是否在远程站点上的$PATH上。您可能已经在一个.bashrc文件中显式地设置了它,因为它在本地登录时是工作的。但是,通常在非交互模式下调用时,.bashrc文件会提前退出,就像Drush所做的那样。
也许解决这个问题的最简单的方法是找出drush脚本的正确完整路径,并在站点别名的“路径别名”中设置'%drush- script‘,以指向正确的可执行文件。见example.aliases.drushrc.php。
更新:使用‘%drush-脚本’,而不是'%drush‘。
“远程用户”是Drush将用来通过ssh登录的用户。它应该是拥有使用Drush权限的用户。有些人为此使用web服务器用户,但是如果您有一个单独的web管理用户,这将是一个更好的选择。
https://drupal.stackexchange.com/questions/178749
复制相似问题