Ubuntu

如何配置權限以允許 gedit、apache 和 IDE 一起玩?

  • June 30, 2016

我正在使用普通的 Ubuntu Desktop 11.04 並使用 Lamp-server 安裝了我的燈堆棧。我正在嘗試使用 Netbeans 作為我的 IDE。

目前,所有虛擬主機都在執行/var/www/vhostname——但由於我沒有配置任何組或權限,如果我嘗試通過 Netbeans 打開任何文件,它沒有寫權限。

如何正確設置權限(或配置 Apache 或 Netbeans),以便:

  • 由 php 腳本創建的文件可以rw由 Netbeans
  • Netbeans 創建的文件可以rw由 Apache

我嘗試了chown對我的使用者/組賦予 Netbeans 寫權限的所有內容,但後來 Apache 沒有寫權限。

注意:這純粹是用於開發機器——不用於生產,我是這個盒子上唯一的使用者。

更新

我曾經在我標記為已接受的答案中使用該方法,但現在我做的事情要簡單得多:

  1. 我將 Apache 設置為作為我的使用者和我的組執行(這可以在 httpd.conf、apache2.conf 或 envvars 中完成,具體取決於您的發行版)
  2. 我 chown /var/www 給我的使用者和組

瞧,Apache 具有讀/寫訪問權限,而我在處理項目時具有讀/寫訪問權限。

我建議做的事情主要在這個 Ask Ubuntu question 中進行了描述。

對於這種特殊情況,我將安裝 suPHP,簡而言之,它允許您在 Apache 下以您的使用者身份執行 PHP 腳本。

通過執行以下操作:

sudo chown -R youruser:youruser /var/www
find /var/www/ -type d -exec chmod 0755 {} \;
find /var/www/ -type f -exec chmod 0644 {} \;

安裝suphp-commonlibapache2-mod-suphp從此ppa什麼是 PPA 以及如何使用它們?

禁用mod_php5和啟用mod_suphp

sudo a2enmod suphp
sudo a2dismod php5

更新您的虛擬主機以在它們的底部包含這一行:

suPHP_UserGroup youruser youruser

替換youruser為您用來編輯伺服器上文件的使用者。重啟阿帕奇。

從這一點開始,Apache 將以您的使用者身份執行所有 php 腳本,這意味著它們可以由您的使用者/組擁有,並且無需使用像 777 這樣的瘋狂權限。由於一切都以您的使用者身份執行,因此由 php 腳本創建的所有文件也將歸您的使用者所有!你可以用 suPHP 做很多其他很酷的事情;但是,從聽起來這就是您開始所需的全部內容。

引用自:https://unix.stackexchange.com/questions/22268