
いつもお世話になっております。
PHP初心者です。
現在、Linuxでサーバー構築をしているのですがWindowsでは問題の無かった画像のアップロードができません。
WindowsではXAMPP1.7.3を使用していました。
LinuxはCentOS5.4でXAMPP for Linux1.7.4を使用しています。
Windowsでは出ない以下のエラーが出ます。
●Warning: move_uploaded_file(./book_picture/digi.jpg) [function.move-uploaded-file]: failed to open stream: 許可がありません in /opt/lampp/htdocs/sample23.php on line 24
●Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpGDHAL8' to './book_picture/digi.jpg' in /opt/lampp/htdocs/sample23.php on line 24
php.iniのfile_uploadsはOnになっています。
php.iniのupload_max_filesize とpost_max_sizeは2Mと8Mになっています。
php.iniのupload_tmp_dirは設定されていないのでデフォルトの場所になっていると思います。
apacheを実行しているユーザで書き込みできなくなっているのでしょうか?一般ユーザではなく
rootで入っていっるのですが。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> ●Warning: move_uploaded_file(./book_picture/digi.jpg) [function.move-uploaded-file]: failed to open stream: 許可がありません in /opt/lampp/htdocs/sample23.php on line 24
このメッセージからすると、文字通り
> apacheを実行しているユーザで書き込みできなくなっているのでしょうか?
が原因でしょう。
WWWサーバ(apache)は、「ユーザー apache」の権限で動いています。
ですから、そのWWWサーバの元で動くPHPプログラムからファイルを作成(書き込み)を行うためには、
ディレクトリ 「book_picture」は「ユーザー apache」が書き込むことができるようにしなければなりません。
(Windows の場合、デフォルトのパーミッション設定では書き込めるようになっているため、問題になりませんが、
UNIX系OSでは、デフォルトではディレクトリの所有者以外の権限ではファイルの書き込みが出来なくなっているのが普通です)
方法は2択
・ディレクトリ「book_picture」の所有者を apache にする
・ディレクトリ「book_picture」のパーミッションを777にする
このどちらかの設定をすればいけます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
MkDir関数
-
Makefile.inとMakefile.am
-
現在位置より2つ上のディレク...
-
Subversionのリポジトリの削除
-
VB2008でFTPでのディ...
-
CFileDialogの最初のディレクト...
-
Permission denied in
-
visualstudioでc#のdllができない
-
バッチを用いたフォルダの自動移動
-
VB.NET 最下位のディレクトリ名...
-
Smarty includeでテンプレート...
-
LoadLibraryの戻り値(HMODULE)...
-
asp.netのクラスについて
-
phpのheader("Location:#pos")...
-
PHPのif文でその処理を途中で抜...
-
.htaccessにphp_valueが使用できな
-
mysql→EUC-JP、php→UTF-8の時の...
-
2つの画像ファイルが異なるファ...
-
require_once()でファイルが読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPコマンドでディレクトリごと...
-
CFileDialogの最初のディレクト...
-
Subversionのリポジトリの削除
-
バッチを用いたフォルダの自動移動
-
makefile でファイルをコピーす...
-
rmdirでフォルダが消せません
-
visualstudioでc#のdllができない
-
Visual C++ 2005 Express Editi...
-
ロケットBBSについて
-
phpのftp_putについて
-
現在位置より2つ上のディレク...
-
define でのルートディレクト...
-
ハッスルサーバーで海外からWP...
-
VB.NET 最下位のディレクトリ名...
-
絶対パス?絶対アドレス?意味...
-
レンタルサーバーでPDF出力
-
MkDir関数
-
図に示す階層構造で,現在のデ...
-
【BAT(バッチ)ファイル】Web...
-
http://localhost/に.htaccess...
おすすめ情報