[英]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.