プレーンなUbuntuDesktop11.04を使用しており、lamp-serverを使用してランプスタックをインストールしました。 NetbeansをIDEとして使用しようとしています。
現在、すべての仮想ホストは/var/www/vhostname
から実行されています —ただし、グループまたは権限を設定していないため、Netbeansを介してファイルを開こうとすると、書き込み権限がありません。
次のように権限を適切に設定(またはApacheまたはNetbeansを構成)するにはどうすればよいですか?
- phpスクリプトによって作成されたファイルは
rw
にすることができます Netbeansによる - Netbeansによって作成されたファイルは
rw
にすることができます Apacheによる
chown
を試みました Netbeansに書き込み権限を与えたが、Apacheには書き込み権限がなかったユーザー/グループへのすべて。
注:これは純粋に開発マシン用であり、本番環境では使用されません。このボックスのユーザーは私だけです。
更新
以前は、承認済みとしてマークした回答でこの方法を使用していましたが、最近はもっと簡単なことをしています:
- Apacheをユーザーおよびグループとして実行するように設定しました(これは、ディストリビューションに応じてhttpd.conf、apache2.conf、またはenvvarsのいずれかで実行されます)
- / var/wwwをユーザーとグループにchownします
出来上がり、Apacheには読み取り/書き込みアクセス権があり、プロジェクトの作業中は読み取り/書き込みアクセス権があります。
承認された回答:
私がお勧めすることは、主にこのAskUbuntuの質問で説明されています。
この特定のケースでは、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-common
をインストールします およびlibapache2-mod-suphp
このppaから(PPAとは何ですか、どのように使用しますか?)
mod_php5
を無効にする mod_suphp
を有効にします
sudo a2enmod suphp
sudo a2dismod php5
仮想ホストを更新して、仮想ホストの下部に次の行を含めます:
suPHP_UserGroup youruser youruser
youruser
を置き換える サーバー上のファイルを編集するために使用するユーザーと。 Apacheを再起動します。
この時点から、Apacheはすべてのphpスクリプトをユーザーとして実行します。つまり、ユーザー/グループが所有でき、777のようなクレイジーな権限を使用する必要はありません。すべてがユーザーとして実行されるため、phpによって作成されたすべてのファイルスクリプトもユーザーが所有します。 suPHPでできるクールなことは他にもたくさんあります。ただし、このように聞こえるから、始めるために必要なのはこれだけです。
関連:Ubuntu –「ハッシュサムの不一致」エラーが原因でパッケージリストをダウンロードする際に問題が発生しましたか?