私はデフォルトのUbuntu Desktop 11.04を使用しており、ランプサーバーを使用してランプスタックをインストールしました。 NetbeansをIDEとして使用しようとしています。
現在、すべての仮想ホストが実行されています/var/www/vhostname
。ただし、グループまたは権限を構成していないため、Netbeansを介してファイルを開こうとすると書き込み権限がありません。
次のように権限を正しく設定する方法(またはApacheまたはNetbeansの構成)は次のとおりです。
- PHPスクリプトで生成されたファイルは
rw
Netbeansで生成できます。 - Netbeansで生成されたファイルは
rw
Apacheで生成できます。
私のユーザー/グループにNetbeansの書き込み権限を付与しようとしましたが、chown
Apacheに書き込み権限がありません。
注:これは純粋に開発用です。本番では使用するためのものではありません。そして私はこのボックスの唯一のユーザーです。
修正する
私は承認されたとマークされた答えの方法を使用しましたが、今はもっと簡単なことをします。
- 私のユーザーと私のグループとして実行するようにApacheを設定しました(配布版に応じてhttpd.conf、apache2.conf、またはenvvarsで実行できます)。
- 私のユーザーとグループに/ var / wwwをchownします。
見て、Apacheには読み取り/書き込みアクセス権があり、プロジェクト作業中も読み取り/書き込みアクセス権があります。
答え1
私が推奨するほとんどのことはUbuntuに質問するには説明しています。。
この特別な場合には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とは何ですか?どうやって使うの?)
無効mod_php5
と有効mod_suphp
sudo a2enmod suphp
sudo a2dismod php5
下部に次の行を含めるように仮想ホストを更新します。
suPHP_UserGroup youruser youruser
youruser
サーバー上のファイルを編集するために使用されるユーザーに置き換えます。 Apacheを再起動します。
この時点から、ApacheはユーザーのためにすべてのPHPスクリプトを実行します。つまり、そのスクリプトはユーザー/グループが所有でき、使用する必要はありません。777のようなクレイジー権限。すべてがあなたのユーザーとして実行されるので、PHPスクリプトで生成されたすべてのファイルもあなたの所有になります! suPHPでできる他の素晴らしいことがたくさんありますが、始めるために必要なのはこれがすべてのようです。
答え2
rw
他の人(グループと所有者だけでなく)がファイルを作成する必要があります。これにはセキュリティ上の問題がある可能性がありますが、chown
フォルダをApacheユーザー/グループに返し、chmod o+rw
Netbeensがファイルを読み書きできるようにフォルダで使用しました。まだテストしていませんが、うまくいきます。ビットマスキングを好むなら、chmod 766
フォルダでも同じ結果が得られます。
答え3
グループを再帰的/var/www/vhostname
に設定しますapache
。apache
グループに自分自身を追加してください。権限をvar/www/vhostname
775に設定してください。
chown -R apache /var/www/vhostname
chmod -R 775 /var/www/vhostname
usermod -a -g apache $USERNAME
これにより、ユーザー(およびapache
Apacheなどのグループの他のユーザー)はサーバーディレクトリに書き込むことができますが、他のユーザーは書き込めません。また、ランアウェイスクリプトがホームディレクトリに横説説を書くことができない、またはクラックされたスクリプトが書き込まれないことを保証します。echo PATH=/path/to/evil/script/directory:$PATH >> ~/.bashrc