2017-08-29 21 views
3

私の開発サーバー(XAMPP Apache 2.4.17およびPHP 5.6.23)で動作するupload_filesスクリプトがありますが、これを運用サーバー(Synology Diskstation、Apache 2.2 .31 php 5.6.30)mkdirでディレクトリを作成できません

データディレクトリにディレクトリSY2017_18を作成できません(データディレクトリは存在します)。データディレクトリは、次の権限があります。

drwxrwxr-×1人の管理者ユーザ234のAug29午前9時59分のデータを、私は、php.iniチェックしています

file_uploads = On 
upload_tmp_dir = "var/services/tmp" 

大歓迎任意のヘルプを。

// upload_files script 
if(isset($_FILES['my_file'])){  
    $errors= array(); 
    $file_name = $_FILES['my_file']['name']; 
    $file_size =$_FILES['my_file']['size']; 
    $file_tmp =$_FILES['my_file']['tmp_name']; 
    $file_type=$_FILES['my_file']['type']; 
    $file_ext=strtolower(end(explode('.',$_FILES['my_file']['name']))); 
    $extensions= array("jpg","png"); 

if(in_array($file_ext,$extensions)=== false){ 
    $errors[]="extension not allowed, please choose a Spreadsheet file."; 
} 

if($file_size > 2097152){ 
    $errors[]='File size must be less than 2 MB'; 
} 

if(empty($errors)==true){ 
    $folder = $_SERVER['DOCUMENT_ROOT']."/pdo/data/SY".$thisschoolyear; 
    if(!is_dir($folder)){ 
     if (mkdir($folder, 0755)) { 
     } else echo "NO luck creating the folder $folder<br>"; 
    } 
} 

}

+1

こんにちは、このスレッドを見てくださいhttps://stackoverflow.com/questions/927564/how-to-find-a-reason-when-mkdir-fails-from-php、それは理由を理解するのを助けることができますmkdirはfalseを返します。 –

+0

権限の問題を素早く確認するには、ディレクトリを777に変更し、それが動作するかどうかを確認します。 –

+0

長いですが、私はこの問題に関するかなりの記事を読んできました。そしていつもmkdirは構文エラーのために失敗します。上記のように、私のコードはXAMPP上で完全に動作するので、私はいつも問題がパーミッションであると確信していました。残念ながら私はLinuxの初心者だから、これは私のための新しい領域です。 – Crookers

答えて

2

あなたのコードは$フォルダを作成されているディレクトリを確認してください、それはApacheに設定し、所有者のしています。

ini_settingのように、あなたのスクリプトの上にあなたが許可などの通知を受け取っているかどうかをチェックするのは、(エラーがない場合のみ)チェックすることです。

ini_set("display_errors", 1); 
error_reporting(E_ALL & ~E_NOTICE); 

これにも注意が表示されます。

幸運を祈る!

+0

OK、私は表示エラーをオンにして、私が予想していたエラーを受け取りました - 許可が拒否されました。 Linuxの価値があることを知らずに、動作するようにしてください。最初に私はあなたが示唆したように、これをユーザーが「すぐに使える」と思ってApacheに設定しようとしましたが、無効なuser:aApacheaがあります。私はユーザ(sudo useradd Apache)を作成しましたが、エラーメッセージが表示されました:useradd:command not found – Crookers

+0

あなたが使ったコマンドのスタックがわかりません。 これはあなたにとって役に立ちます。 https://askubuntu.com/questions/520634/giving-ownership-of-the-directory-to-the-apache-user –

+0

ノーマン、私が理解していないことこのユーザー(Apache - このディレクトリにアクセス権を持つユーザー)とファイルをアップロードするユーザーの間の接続です。私は現在ユーザー(管理者)がいるので、なぜそれを変更しますか? – Crookers

関連する問題