Apache-2.2

Plesk 文件權限 - Apache/PHP 與使用者帳戶衝突

  • December 13, 2010

我正在建構一個 Drupal 站點,該站點使用 apache 使用者(id=40)執行各種自動磁碟操作。

問題是該站點是在屬於使用者 ID 10001(即我的主 FTP 帳戶)的子域上設置的,因此文件系統屬於該使用者 ID。

所以我不斷收到這樣的錯誤:

warning: move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect. 
The script whose uid is 10001 is not allowed to access /var/www/vhosts/domain.com/httpdocs/sites/default/files/images/user owned by uid 48 in /var/www/vhosts/domain.com/httpdocs/includes/file.inc on line 579.

我嘗試將 httpd.conf 中的 apache 組更改為 apache:psacln,psacln 是所有 Web 使用者的預設組,但這沒有幫助。

現在的情況是:

  • …./files/images/ = 777 和 chown = ftplogin:psacln
  • …./files/images/user = 775 和 chown = apache:psacln
  • …./files/tmp = 777 和 chown = ftplogin:psacln

所以顯然 uid 40 和 10001 都有權寫入所涉及的 3 個目錄中的任何一個,但仍然不能。

我在這裡錯過了什麼嗎?任何人都可以幫忙嗎?

編輯

解決方案只是將域/子域設置為在 CGI 模式下使用 apache,而不是直接開箱即用模式。

謝謝!

您使用的是哪個版本的 Plesk?也許您可以更改站點以使用 PHP-CGI 作為站點,因此,任何 PHP 腳本都將以 FTP 使用者身份執行。然後,確保 httpdocs 層次結構中的所有文件都歸 FTP 使用者所有。也許這會有所幫助?

我對 Drupal 也有這個問題。

我通過禁用php的安全模式解決了這個問題。這可以通過 Plesk 或通過手動編輯您正在執行 drupal 的域的 conf 目錄中的 httpd.include 來完成,然後執行apache2ctl graceful

引用自:https://serverfault.com/questions/113748