簡體   English   中英

Drush:遠程服務器上的權限被拒絕

[英]Drush: permission denied on remote server

我正在嘗試在遠程服務器上設置drush (提供商的網絡服務器)

我通過 SSH 用 composer 安裝了drush ,但是當我嘗試運行它時,我得到了

-bash: /data/web/myusername/.composer/vendor/drush/drush/drush: Permission denied

drush-rwxr-xr-x權限

我將如何驗證是否只是提供程序不允許我執行drush或只是一個錯誤?

編輯:我發現我可以用bash drush運行 drush ,畢竟這似乎是一個權限問題。

現在我本地機器上的drush會在沒有bash的情況下調用遠程drush ,那么我該如何改變它/解決方法?

如果在運行 drush 命令時仍然有人面臨權限問題,請在命令下方運行 sudo chmod -R 777 /vendor/drush

注意 Drupal 8 Drush 命令行工具 9.5.2

我使用作曲家安裝了 drush 8 並且開箱即用,甚至嘗試了drush version我得到“權限被拒絕”,直到我執行 chmod + x on :

/vendor/bin/drush
/vendor/drush/drush
/vendor/drush/drush.launcher

接下來,我必須使用本地 drush.ini 覆蓋 php.ini:

disable_functions = 

列表中有任何禁用的功能會導致 drush 每次都發出錯誤。 這是在 Krystal 共享主機上。

使 drush 成為可執行文件:

chmod +x /data/web/myusername/.composer/vendor/drush/drush/drush

如果您是 centos 或 ubuntu 用戶,則默認/vendor/drush權限為 755,但 drush 需要權限 777

cd /var/www/html

查看供應商文件夾的權限

ll

這是默認權限是 755

chmod -R 777 /vendor/drush 

我得到了相同的錯誤輸出,但問題出在遠程 drush 路徑上,所以還要確保在別名定義中仔細檢查我們的腳本路徑:

'path-aliases' => array(
        '%drush-script' => 'your-server-path-here/.composer/vendor/drush/drush/drush'
      ),

drush 似乎會嘗試使用供應商安裝(如果存在)。 在 ProcessManager.php 中,方法 drushScript:

    // If the target is a local Drupal site that has a vendor/bin/drush,
    // then use that.

它在 ../vendor/bin/drush 中尋找 drush。

此處代碼: https ://github.com/drush-ops/drush/blob/11.x/src/SiteAlias/ProcessManager.php#L68

這可能會非常具有誤導性,因為我們認為我們正在運行全局 drush,但實際上它最終是正在運行的本地 drush,它可能具有不同的權限或被服務器安全策略阻止。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM