0

フォルダーを作成し、特定のファイルをそこにコピーする単純な PHP スクリプトがあります。フォルダー (およびコピーされたファイル) には、すべて 755 のアクセス許可があります。問題は、ユーザーを Apache として設定することです。現在、FTP を介して権限を削除または変更できません。DirectAdmin で「所有権をリセット」することしかできません。ここで、ユーザーが「Apache」から「matthdc58」に変更されていることがわかります。

ユーザーとして「matthdc58」を使用してPHPにフォルダーを作成させるにはどうすればよいですか? 私は試しましたchown()- 失敗しました:

Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 78

Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 79

Warning: chown() [function.chown]: Operation not permitted in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 80

Warning: Cannot modify header information - headers already sent by (output started at /home/matthdc58/domains/hiddendomain.com/public_html/Home.php:78) in /home/matthdc58/domains/hiddendomain.com/public_html/Home.php on line 90

php_flag safe_mode off私も.htaccessで試しました(他の人の問題を解決したようです)が、うまくいきませんでした。


私のPHPスクリプト全体:

$dirtocreate = 'userdata/'.$_SESSION['uname'];
$oldumask = umask(0); 
mkdir($dirtocreate, 0755);
umask($oldumask);

copy('img/100x100.png', $dirtocreate.'/100x100.png');   
copy('img/64x64.png', $dirtocreate.'/64x64.png');   

//Verify correct owner
chown($dirtocreate, 'matthdc58');
chown($dirtocreate.'/100x100.png', 'matthdc58');
chown($dirtocreate.'/64x64.png', 'matthdc58');

//Verify correct permissions, just to be sure               
chmod($dirtocreate,0755);
chmod($dirtocreate.'/100x100.png',0755);        
chmod($dirtocreate.'/64x64.png',0755);

したがって、明確にするために:

  • 私の PHP スクリプトは、新しいフォルダーの所有者を「Apache」に設定します。
  • PHP スクリプトは、所有者を「matthdc58」に変更できません。
  • 現在、所有者が「Apache」であるため、FTPを介してフォルダーを編集できません。
  • 「所有権の復元」ボタンを使用して DirectAdmin からのみ所有権を復元できます。
4

2 に答える 2

1

ディレクトリ /home/matthdc58/domains/hiddendomain.com/public_html/ をユーザー名に chmod して chown したことを確認してください。:)

于 2013-12-07T15:58:47.443 に答える
0

私が使用していたPHPのバージョンに関連していることが判明しました。
私のホストである Versio の勧めで、追加して PHP のバージョンを変更しました。

<FilesMatch "\.php$">
AddHandler x-httpd-php54 .php
</FilesMatch>

私の .htaccess ファイルに。


これは権利に関係していたため、他の人には関係ないと思いますが、いつでも試すことができます。
繰り返しますが、私を助けてくれた @LeSamAdmin に感謝します!

于 2013-12-09T13:45:02.120 に答える