2017-11-07 17 views
0

私はApache/2.4.6サーバをRedHatサーバ上で実行しています。私は/var/www/html/のweberサーバーのルートでスリムなアプリケーションを実行しています。Apacheアップロードパスは書き込み不可能

指定したフォルダに画像をアップロードして保存します。私は、私のローカルのApache環境で完璧にアプリケーションを実行することができます。

public function test($request, $response, $args) 
{ 

$files = $request->getUploadedFiles(); 


if (empty($files['file'])) 
    return $response->withJson(['message' => 'Could not find file'])->withStatus(400); 

$file = $files['file']; 
$fileName = $file->getClientFilename(); 

//app and images folder both ahve 777 permissions 
$file->moveTo('/var/www/html/app/images/{$fileName}'); 

return $response->withStatus(200)->write('Test Method'); 

} 

私は、ファイル名をエコーし​​、それはちょうど私が書き込み不可のパスを取得し、ファイルを移動している見ることができます:

は、ここに私の簡単なコントローラ機能です。なぜか分からない。

+0

Slimフレームワークを使用しているとしますか?その場合、取得している_exact_エラーメッセージは何ですか?ここで試してみてください:https://github.com/slimphp/Slim/blob/f6884a7425e4ccf031ff8dda30c14e196bb67156/Slim/Http/UploadedFile.php#L223-L253 – jaswrks

答えて

0

これは、RedHatでアクティブ化されたSEL(Security Enhanced Linux)によって発生した問題です。どうやらSELは、フォルダのアクセス権に関係なく、デフォルトでどの宛先にもアップロードを許可しないため、手動で許可する必要があります。私は、このソリューションは私のために働いていたよりも、この他に詳細を追加することはできませんので、残念ながらSELについて多くを知らない

chcon -R unconfined_u:object_r:httpd_sys_rw_content_t:s0 /var/www/app/images 

:私は最終的に、次のコマンドを使用してアップロードすることができました。

関連する問題