LoginSignup
0
0

More than 1 year has passed since last update.

【PHP】ファイルアップロードにおけるPermission設定について

Posted at

【PHP】ファイルアップロードにおけるpermission設定について
この記事ではCentOS Linux 7にインストールしたPHP 7.1.29を使っています。
Server version: Apache/2.4.6 (CentOS)

はじめに

画像ファイルをアップロードしようとしたところ、permissionエラーが発生。
原因とエラー解決までを纏めました。

自分の置かれた状況

画像アップロード

upload.html
    <form method="POST" action="img_save.php" enctype="multipart/form-data">

        <input type="file" name="img" accept="image/*">
        <input type="submit">

    </form>

画像をimagesディレクトリに保存

img_save.php
    $img_name = $_FILES['img']['name'];

    //画像を保存
    move_uploaded_file($_FILES['img']['tmp_name'], './images/' . $img_name);

エラー発生
Warning: move_uploaded_file(./images/$img_name): failed to open stream: Permission denied

原因

アップロードのディレクトリ(images)に書き込み権限が与えられていなかった為でした。

$ ls -l
-rw-rw-r-- ハードリンク数 所有者とグループ ファイルサイズ タイムスタンプ  images

-rw-rw-r--は下記の状態となっています。

Owner ・・・読み取り・書き込み
Group ・・・読み取り・書き込み
Other ・・・読み取り

解決策

「Apache」はPermissionのユーザー分類としては、「Other」に分類されます。
Apacheの書き込みを許可を与えるために、権限を変更を行いました。

$ chmod 666 images

-rw-rw-rw-

Owner ・・・読み取り・書き込み
Group ・・・読み取り・書き込み
Other ・・・読み取り・書き込み

おわりに

画像アップロード処理エラーで二日ぐらい頭を抱えていました。
分かりにくい箇所あるかと思いますが、誰かの役に立てたら嬉しいです。
これから引き続き投稿していきます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0