投稿者 メッセージ
<  PHPプログラミング  ~  フォルダ生成について
mco
投稿1時間: 火 2月 28, 2006 1:40 pm  引用
ゲスト





はじめまして。
PHPの初心者ですが質問させて下さい。

フォルダの生成とその中にファイルのアップロードを行ないたいのですが
ローカルではうまくいくのにサーバーにアップするとエラーがでてきます。

以下エラー文
Warning: mkdir(./222): Permission denied in /var/www/html3/test/m/library_add.php on line 16
ディレクトリが作成できません

パーミッションの指示が必要なのでしょうか?
どのような指示を与えればよいのか教えてください。

宜しくお願いします。
トップに移動
ゲスト
投稿1時間: 火 2月 28, 2006 5:56 pm  引用






ディレクトリを作成する位置のパーミッションを与えてあげないといけません

例えば、

aaa/ というディレクトリ以下に bbb を aaa/bbb のように作るのなら
aaaのパーミッションを777にする必要があります
トップに移動
mco
投稿1時間: 土 3月 04, 2006 11:31 am  引用
ゲスト





すみません、パーミッションの与え方がよくわかりませんでした。

if(!file_exists($condition))
{
mkdir($condition) or die("ディレクトリが作成できません!\n");
echo "ディレクトリを作成しました\n<br>";
}

現在上記のように記述していますがどう変更すればうまくいくでしょうか?

よろしくお願いします。
トップに移動
ゲスト
投稿1時間: 土 3月 04, 2006 7:48 pm  引用






mkdir関数をマニュアルで見ましょう。
パーミッション指定の引数があるはず
トップに移動
mco
投稿1時間: 土 3月 04, 2006 9:57 pm  引用
ゲスト





mkdir関数を調べました。
フォルダの生成まではうまくいくのですが、その中にファイルアップが出来ません。

パーミッションも色々変更して試しましたがなぜか777にだけは指定できません。
705や755、などには変更できます。
下記のような設定の場合だと、755になります。

<?php
$ta = $_POST['ta'];


if ($ta == ""){
exit ("タイトルが入力されていません");
}

$condition = "./test/$ta";
if(!file_exists($condition))
{
mkdir($condition,0777) or die("ディレクトリが作成できません!\n");

echo "ディレクトリを作成しました\n<br>";
}
else
{
echo "同名のディレクトリがるためディレクトリを作成しませんでした\n";
}
$updir = "./test/$ta/";
$filename1 = $_FILES['pic1']['name'];
if($filename1 != ""){

if (copy($_FILES['pic1']['tmp_name'], $updir.$_FILES['pic1']['name']) == FALSE){
print("Upload failed...");
print($_FILES['upfile']['error']);
}else {
print("<b>" . $filename1 . "</b> uploaded!<br>");
}

}


またフォルダの所有者がapacheになっているようです。
これはなぜなのでしょうか?
トップに移動
mco
投稿1時間: 土 3月 04, 2006 11:07 pm  引用
ゲスト





いろいろやってみて、以下の方法でフォルダを無事に777にすることができました。

mkdir($condition) or die("ディレクトリが作成できません!\n");
chmod ($condition, 0777);

しかし、やはり所有者がapacheになっています。

生成したフォルダにファイルをアップしたいのですが、フォルダのパーミッションは777になっても、アップロードがうまくいきません。

これは所有者がapacheになっているからなのでしょうか?

よろしくお願いします。
トップに移動
ゲスト
投稿1時間: 日 3月 05, 2006 12:24 am  引用






プログラム実行者がapacheだから恐らく変えることは出来ません。
あらかじめ作っておく必要があるでしょうね。
トップに移動
mco
投稿1時間: 日 3月 05, 2006 11:37 am  引用
ゲスト





Anonymous wrote:
プログラム実行者がapacheだから恐らく変えることは出来ません。
あらかじめ作っておく必要があるでしょうね。


あらかじめフォルダを作っておく、という意味でしょうか?

フォルダを生成し、そこにファイルをアップする、という作業はPHPでは不可能ということでしょうか?

何か他に手はないのでしょうか?

このアップしてやりたい事は・・・
同じ名前、例えば(index.html /index.gif/index.css)のファイルがあり、testというフォルダの中のローカルにおいてあります。同じようにtest2というフォルダがあります。
中身のファイル名は同じ(index.html /index.gif/index.css)です。
これをサーバーにアップしたいのですが同じフォルダにあげるとファイル名が同じ為上書きされてしまいます。

このようなフォルダを複数あげたいのです。
フォルダごとアップできればもっと簡単なのですが・・・。

何かいい案があれば、アドバイスよろしくお願いします。
トップに移動
ゲスト
投稿1時間: 日 3月 05, 2006 6:03 pm  引用






アップロードの処理をPHPで行えば同じユーザなのでアップは出来ますよ
トップに移動
mco
投稿1時間: 火 3月 07, 2006 8:56 am  引用
ゲスト





Anonymous wrote:
アップロードの処理をPHPで行えば同じユーザなのでアップは出来ますよ


処理の方法があれば教えてください。
色々調べていますが、行き詰ってしまっています・・・。 Crying or Very sad
トップに移動
特定期間内の記事を表示:   
All times are GMT +9:00

次のトピックを表示
前のトピックを表示
Page 1 of 1
フォーラム一覧  ~  PHPプログラミング

トピックの新規投稿   返信


 
移動先:  

新規投稿: 不可
返信: 不可t
自分の記事の編集: 不可
自分の記事の削除: 不可
投票への参加: 不可




Powered by phpBB
customized by phpspot.