suPHPのPHPセッションを設定しようとしています(here参照)。 suPHPが起動したときに正しいユーザーのために実行するように、私は自分のPHP検証ファイルを所有する必要があります。しかし、私はまた、ユーザーがそのファイルo.wにアクセスすることを望まない。実際にはデータベースをチェックするのではなく、単にtrueを返すように編集することができます。他のユーザーのフォルダに入ることを許可しない
私の最初の試みは、(Apacheはユーザーwww-data
として実行)このようなもの
/etc/validate
├── [drwx------ www-data ] user1
│ └── [-rwx------ user1 ] validate.php
/var/www/
└── [drwx------ user1 ] user1
└── [-rwx------ user1 ] index.html
が続いてWebページが/var/www/user1/index.html
RewriteCond %{REQUEST_URI} !^/xyz
RewriteRule ^(.*) /etc/validate/user1/validate.php?uri=$1
を返し、その後、検証します検証ページにリダイレクトしていました
しかし、suPHPは私のdocroot(/var/www/user1
)の外に何かにアクセスしていると訴えています。 docrootをに設定し、check_vhost_docroot=false
が更新されないように3210ファイルを更新しないようにしたいと思います(これを修正するつもりはありません)。そのため、代わりに私はドキュメントルート内だから今検証ファイルが
- である(それは私が知っている、少し厄介だ)ので、同じよう
/var/www
にuser1の - が所有
- を
/var/www/ └── [drwx------ user1 ] user1 ├── [-rwx------ user1 ] index.html └── [dr-x------ www-data ] validate └── [-rwx------ user1 ] validate.php
を
/etc/validate
を移動しましたuser1で編集できない
しかし、今ページを読み込もうとすると、 e。次のエラー
Directory /var/www/user1/validate is not owned by user1
私がロードしようとすると、この時点で私は私の忍耐を失っていますので、ファイル構造がそう
今/var/www/
└── [drwx------ user1 ] user1
├── [-rwx------ user1 ] index.html
└── [dr-x------ www-data ] validate
└── [drwx------ user1 ] dummy
└── [-rwx------ user1 ] validate.php
のように見えるので、私はそこに別のダミーのフォルダを貼り付けApacheは、「あなたはこのサーバ上のxyzにアクセスする権限がありません」と言っています。ここでxyz
は私のドメイン名の後ろのものです。私はではないので、はファイル/フォルダとして末尾の値にアクセスしようとしているので、なぜApacheが私に言っているのかわかりません。私は、リダイレクトは失敗していると思うし、Apacheは単にそれが失敗しているハードリンクだと仮定します。
私が間違っていることを教えてくれる人や、ユーザーがファイルを編集できないようにする別の方法を教えてもらえますか?ディレクトリdummy
にアクセスできませんでした。そのアクセス許可はrwx------
で、user1
しかcd
になりませんでした。アクセス許可を0700
から0755
に変更したとき、suPHPエラーに戻りました。ですから、疑問は次のようになります。舞台裏ディレクトリの1つが他の誰かによって所有されている場合、suPHPにスクリプトを実行させるにはどうすればよいですか?
EDIT: Apacheが文句を言った理由を私は今、実現しています。
私はsuPHPがrootとして実行されていることを確認してから、実行する前にファイルのユーザーに切り替えます。どちらの場合でも、 'chmod 0777 validate /'を実行しても問題は解決されませんでした。所有者を 'user1'に戻してから、他人(' 0755')の書き込み権限を取り除くと問題は解決します(*私の*問題ではありません) – puk