无法从符号链接运行php shell脚本

时间:2017-08-02 03:45:16

标签: php shell symlink acquia

我在Windows 10上使用了Acquia的DevDesktop。对于shell,我使用了babun的zsh。 Acquia为Drupal提供了drush命令行界面。

命令本身似乎没问题:

{ drush }  » pwd                                                                                /cygdrive/c/Program Files (x86)/DevDesktop/tools/vendor/drush/drush 
{ drush }  » ./drush                                                                            /cygdrive/c/Program Files (x86)/DevDesktop/tools/vendor/drush/drush 
Execute a drush command. Run `drush help [command]` to view command-specific help.  Run `drush topic` to read even more documentation.
...

我为它创建了一个符号链接,但它不起作用:

{ drush }  »  ls -lha /home/username/bin/drush                                                    /cygdrive/c/Program Files (x86)/DevDesktop/tools/vendor/drush/drush
lrwxrwxrwx 1 username None 73 Aug  1 23:29 /home/username/bin/drush -> '/cygdrive/c/Program Files (x86)/DevDesktop/tools/vendor/drush/drush/drush'

{ drush }  » cd ~                                                                                 /cygdrive/c/Program Files (x86)/DevDesktop/tools/vendor/drush/drush
{ ~ } master »                                                                                                                                              
{ ~ } master » drush                                                                                                                                               
Could not open input file: /home/username/bin/drush

我尝试更改权限,并根据this answer确保行结尾是正确的,但它仍然无法正常工作。

{ ~ } master » chmod 775 /home/username/bin/drush   
{ ~ } master » dos2unix -F /home/username/bin/drush                                                                                                               
dos2unix: converting file /home/username/bin/drush to Unix format...
{ ~ } master » drush                                                                                                                                               
Could not open input file: /home/username/bin/drush

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我的经验是,即使linux / windows bash路径合适,php命令行解释器也无法在符号链接下找到脚本,并且您可以轻松地对其进行“ cd”,因为它自动在内部进行符号链接翻译,当您执行此操作时,就不再存在符号链接原始位置的相对引用(相对于符号链接原点的“实际位置”而言)。