1

ここで関連するフォーラムからいくつかのヒントを調べて取得しましたが、それでも問題を解決できないため、親切に助けて投稿しています. ありがとうございます。

私は Linux ホスティングを共有しましたが、最近彼らがアップグレードを提案し、受け入れました。残念ながら、彼らは私の php アプリケーションを php バージョン 5.3 に微調整する必要があると主張しています。私のこのアプリケーションは、php バージョン 5.2 の以前のサーバーでうまく機能していました。問題は、ログインまたはログアウトの履歴、またはそのようなファイルの書き込みを登録しようとすると、ファイルのアクセス許可が拒否されたというエラーです。sample に遭遇した最初のエラーであるため、次のコードを強調表示しました。これが私のサンプルコードです。

特に file_put_contents と file_read_contents を使用します。以下は私のサンプルコードです。

// define('DATA_PATH_MEMB', dirname( __FILE__) ."/../docs/vendor/"."data/_memdata/");
// above constant is an include file 
function updateLogins() {
  $user = $_SESSION['thisuserName'];
  $filejsonread = DATA_PATH_MEMB.$user.".dat";
  $filejsonwrite = DATA_PATH_MEMB.$user.".dat";  
  $updateDataArr = json_decode(file_get_contents($filejsonread),true);
    $timenow =  array( "datetimestamp" => date("d-m-Y h:i") );
    array_push($updateDataArr["useracess"][0]["history"]["logins"], $timenow);
    array_push($updateDataArr["useracess"][0]["history"]["logouts"], $timenow);
    file_put_contents($filejsonwrite, json_encode($updateDataArr), LOCK_EX);    
 } 

file_put_contents を指す次のエラーが表示されます

file_put_contents(/home/mydomain/public_html/includes/../docs/gbo/data/_memdata/someusr.dat) [function.file-put-contents]: ストリームを開くことができませんでした: 許可が拒否されました

私は、自分のユーザー アカウントがファイルが割り当てられているグループの一部であり、書き込み権限があるかどうかを尋ねました。私のディレクトリは755で、ファイルは644で、以前のサーバーでは誠実にアプリケーションが機能していました。どのファイルにも書き込めない場合はどうすればよいかわかりません。

私はこれを試しました

echo exec('whomai'); // it displays nobody 

私は管理者ではなくプログラマーです。彼らに何を尋ねるべきか、自分自身を正すべきか。

4

2 に答える 2

0

ファイルには、

-rw-r--r-- (644) — Only the owner has read and write permissions; the group and others can read only.

このパーミッション ステータスは、ファイルの所有者には書き込みパーミッションがありますが、それ以外のユーザーはいないことを意味します。このファイルに書き込もうとしている PHP ファイルは、ユーザー名とは異なるユーザーとして実行されます。

したがって、エラー、Apache はこのファイルに書き込むことができません。しかし、sshあなたのサーバーとvi -file. 問題なくそのファイルを書き込むことができます。

解決 :

このファイルへの書き込み権限を Apache に付与します。chownこのファイルを開き、Apache に所有権を与えます。

于 2013-05-08T23:11:58.833 に答える
0

強制的にアクティブに設定している場合、これは問題になる可能性があります。

(Linux シェルで) 試してください: [root@ * ]# setenforce 0

私のためにそれを解決しました。

于 2013-10-21T11:12:25.283 に答える