在宅ワークのリアルをベテランとビギナーにインタビュー>>

PHPが動作しているサーバAがあります。
そのサーバAから、別サーバ(Windows)に
クライアントより添付ファイルを保存しようとすると、
failed to open stream: Permission denied
と権限エラーになってしまいます。

IISのユーザ(IUSR_XXXX)を変更(偽装?)して、
サーバBに保存することはPHP内で可能でしょうか?

サーバA・BともWindowsXPで、
PHP4.4を使用しています。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

 予想されているとおりに、サーバBのIISサービスにファイル書き込みや実行権限を与えてやればうまくいくでしょう。

ただし、セキュリティレベルは低くなってしまいます。

 サーバB側で、[コントロールパネル]->[管理ツール]->[インターネットインフォメーション サービス]->[既定の Web サイト]->[プロパティ] とダイアログに潜り込んでいき、この既定のWebサイトのプロパティの[ディレクトリ セキュリティ]タブを選択し、[アクセスおよび認証コントロール]の項目の編集ボタンを押します。
 そして、この[認証方法]ダイアログの[匿名アクセス]の項目をチェックし、[参照]ボタンを押し、everyone レベルのユーザー名を[名前の確認]で確認の上、埋め込みます。そして、Administratorの[パスワード]を埋め込み、[OK]ボタンでいったんこのダイアログを閉じます。
 さらに開きっぱなしにいているはずの[インターネット インフォメーション サービス]ダイアログ上の[既定の Web サイト]を選択し、[メニュー]->[操作]->[停止]と[メニュー]->[操作]->[開始]を選択して、規定のWebサイトを再開します。

 私はネットブックのローカルホスト環境でAdministrator 権限のユー
ザーに匿名アクセスを許可してIIS & Appache & PHP5 で開発していますが、この[アクセスおよび認証コントロール]まで見つけるのに大変手こずりました。

この回答への補足

ご回答ありがとうございます。

実際に上記設定を行い動作させて見ましたが、解決できませんでした。
ほかに何か原因があると思われますので、調査してみたいと思います。

何か予想されることなどありましたら、
引き続き回答をお願いいたします。

補足日時:2010/01/13 15:28
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QPermission denied in

PHPを実行するとWarning: fopen failed to open stream Permission denied inと
表示されてしまいます。
インターネットを使い、調べてはいますが、
上記のように表示してしまいます。
ファイルです。パーミッションは606にしました。

このWarningを表示させないようにするには、どのようにすれば
良いのか教えて頂けると嬉しいです。

Aベストアンサー

あとは
> PHPを実行するユーザーとそのグループはどうなってますか?

PHPを直接コマンドラインから実行するのなら、ユーザーはあなたですが、httpサーバーでモジュールやCGIとして実行するなら別の権限(nobodyとか)になっていると思います。

あとは
ディレクトリのパーミッションを 707 にする
ディレクトリとファイルのオーナーをPHPを実行するユーザーにする
とかでしょうか。

Qweb.configとは?(初心者です)

Web開発をしております。友人がweb.configの話をするのですが、私はそれは、使っておりません。web.configとは、ASP.NETを使用するときにのみ、使う設定ファイルなのでしょうか?
また、ASP.NET開発にて、web.configを使用しないと代替するものってなんなのでしょうか?
どうか、教えてください。お願いします。

Aベストアンサー

"web.config" で検索すればいくらでも出てくると思うのですが・・・

http://www.google.com/search?num=50&hl=ja&q=web.config%E3%81%A8%E3%81%AF&lr=lang_ja

http://www.google.com/search?num=50&hl=ja&q=%22web.config%E3%81%A8%E3%81%AF%22&lr=lang_ja

これらの数件を読むだけで解決すると思いますよ。
特に「今は使っていない」に対する解決は
http://www.atmarkit.co.jp/fdotnet/aspnet/aspnet18/aspnet18_01.html
の Page1~Page3 あたりで済むかもしれませんね。

Qillegal string offset

php5.3では動いていたプログラムをphp 5.4 で動かしたらwarning illegal string offsetが出て困っています。以下のプログラムでwarningが出ないようにするにはどのようにコーディングすればよいのでしょうか?


$a = array('exists' => 'foo');
if ($a['exists']['non_existent']) {
print 1;
}
print 2;
exit;

Aベストアンサー

isset()を使えばいいと思います

QIISでローカル内からhttp://localhostと入れても表示されない

windows2000 server で「既定のWebサイト」上でサービスを開始させました。
ちゃんと表示されるかと思いインターネットエキスプローラを開き
http://localhost と入力して表示されるか試したのですが、下記のようなメッ
セージが表示され閲覧する事ができません。
何か打開策はありますでしょうか?





エラー
リクエストされた URL は取得できませんでした

--------------------------------------------------------------------------------

以下の URL を取得した際に: http://localhost/

次のエラーが発生しました:

以下のホスト名の IP address を調べられません. localhost
DNS サーバが以下のエラーを返しました:

Name Error: The domain name does not exist.
この意味は次の通りです:

キャッシュは URL 中のホスト名から IP address を調べることができませんでした.
アドレスが間違っていないか確認してください.

windows2000 server で「既定のWebサイト」上でサービスを開始させました。
ちゃんと表示されるかと思いインターネットエキスプローラを開き
http://localhost と入力して表示されるか試したのですが、下記のようなメッ
セージが表示され閲覧する事ができません。
何か打開策はありますでしょうか?





エラー
リクエストされた URL は取得できませんでした

--------------------------------------------------------------------------------

以下の URL を取得した際に: http://localhost/ ...続きを読む

Aベストアンサー

>しかしなぜlocalhostでは表示されないのでしょうか?

DNSの仕組みに関係します。
localhostと言う名前から127.0.0.1というIPアドレスを求めるのがDNSの役割です。
その際、WindowsNT/2000/XPのDNSサーバはhostsファイルを参照します。(hostsにない名前は、さらに上位のDNSサーバに問い合わせます。)
localhostという名前は特殊なので、hostsがその情報を持っていなくてはならないのです。

今回のケースではhostsが存在しないようなので、hostsをメモ帳で作成する手順をご紹介しておきます。 (説明の都合上、Cドライブのルートディレクトリで作業します。)
(1)次のファイルが存在するか確認してください。
C:\WINNT\system32\drivers\etc\hosts.sam
 ・存在する→Cドライブのルートディレクトリにhosts.txtと言う名前でコピーし、メモ帳で開く。
   copy C:\WINNT\system32\drivers\etc\hosts.sam c:\hosts.txt
   notepad c:\hosts.txt
 ・存在しない→メモ帳でc:\hosts.txtを新規作成する。
   notepad c:\hosts.txt

(2)次の1行をhosts.txtの最後に追加します。127.0.0.1とlocalhostの間には半角スペースを7つ以上入れ、行のおしりには改行を入れます。
127.0.0.1 localhost
     ↑     ↑
     |    改行
 半角スペースx7

(3)hosts.txtを上書き保存します。

(4)hosts.txtをシステムディレクトリに移動します。この際に拡張子txtを取り除きます。
move c:\hosts.txt C:\WINNT\system32\drivers\etc\hosts

(5)Windowsを再起動します。

以上がその手順です。
これでlocalhostが127.0.0.1として認識されるはずですが、システムディレクトリをいじりますので慎重に作業してください。
作業手順が理解できない場合、作業に不安を感じる場合はやらないほうが無難です。

>しかしなぜlocalhostでは表示されないのでしょうか?

DNSの仕組みに関係します。
localhostと言う名前から127.0.0.1というIPアドレスを求めるのがDNSの役割です。
その際、WindowsNT/2000/XPのDNSサーバはhostsファイルを参照します。(hostsにない名前は、さらに上位のDNSサーバに問い合わせます。)
localhostという名前は特殊なので、hostsがその情報を持っていなくてはならないのです。

今回のケースではhostsが存在しないようなので、hostsをメモ帳で作成する手順をご紹介しておきます。 (説明の...続きを読む

Q配列をファイルに書き込む方法

下記($dataに入ってる)配列をファイルに書き込みたいのですが、書き込み方法が分かりません、教えていただけませんでしょうか・・・。
$dataの中身は
Array
(
[0] => あいうえお
[1] => かきくけこ
[2] => さしすせそ
[3] => たちつてと
)
これを
$fp=fopen("1.txt","w");
fputs($fp,$data);
fclose($fp);
にするとArrayとだけ表示されます。
あいうえお\n
かきくけこ\n
さしすせそ\n
たちつてと\n
と書き込みたいのですが・・・、お願いします。

Aベストアンサー

<?php
$data = Array(
0 => 'あいうえお',
1 => 'かきくけこ',
2 => 'さしすせそ',
3 => 'たちつてと'
);
$fp=fopen("1.txt","w");
foreach ($data as $a){
fputs($fp,$a."\n");
}
fclose($fp);
?>

↑これでいかがでしょうか?

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

Qrequire_once()でファイルが読み込めません

すいません、色々やったみたのですがよく分からなかったので教えてください。

PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。

その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、

failed to open stream: No such file or directoryや
Failed opening required 'Smarty.class.php'

というエラーが出て読み込めません。また、phpinfo()を見る限りではphp.iniはきちんと読みにいっているようでした。

ためしに/usr/にSmartyを置き、include_pathもそのように変更してみたのですが読み込めません。カレントディレクトリに配置した場合は上手く読み込めました。また、Smartyでなくてもどのファイルでも読み込めない状況です。

環境はFedora6、Apache2.0、PHP5です。何かアドバイスよろしくお願いします。

すいません、色々やったみたのですがよく分からなかったので教えてください。

PHPのテンプレートのSmartyを使いたいと思い、公式サイトからダウンロードして/usr/local/lib/php/Smartyにコピーしました。

その後、php.iniのinclude_pathにて".:/usr/local/lib/php/Smarty"と設定し、require_once("Smarty.class.php");としたのですが、

failed to open stream: No such file or directoryや
Failed opening required 'Smarty.class.php'

というエラーが出て読み込めません。また、phpinfo()を見る限...続きを読む

Aベストアンサー

Smarty.class.phpのパーミッションはどうですか?

include_path上にファイルが存在しても、Webサーバを動かしているユーザから読めなければ、ファイルが読めずエラーになります。

一時的に
chmod 755 Smarty.class.php
としてみてはどうでしょう?

これで動くようなら、所有者を変更するかして正しいパーミッションに戻せばよいと思います。

QSQL Server のキャラクターセット(内部文字コード)は何処で定義するのでしょうか?

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問させていただきます。
以下2点についてどなたかコメント願います。
1.(Oracleでいうキャラクターセット)はどこで定義するのでしょうか?
2.OracleでいうNLS_LANGに相当するものはあるのでしょうか?
 (ひょっとしたらマイクロソフト製品なのでサーバもクライアントもCP932固定なのでしょうか?)

根本的にはシステム構築する上で『極力文字化けに遭遇したくない』思い出このような質問をさせていただきました。
『文字化け』について注意点などありましたら合わせてコメントいただければ助かります。
以上よろしくお願いします。

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問...続きを読む

Aベストアンサー

Windowsのロケールの設定を日本語にした状態でSQLServerをインストールした場合、cp932がデフォルトの照合順序になります。照合順序については参考URLをご覧下さい。

SQLServerではわかりませんが、PostgresではJDBCドライバ部分で変換していたように記憶しています。ODBCドライバではAutoTranslateという機能があります。

このため、ODBC接続で何も考えずにvarcharを使用するとcp932になります。

参考URL:http://www.microsoft.com/japan/msdn/sqlserver/sql2005/bb330962.aspx

Qcssで「下よせ」ってどうやっていますか?

フロートのレフト、ライトはいいとして、

あるボックス要素内(A)に異なるボックス要素(B)をいれます。
この(B)を(A)の一番そこにはりつかせたい時にどうすれば
最もよいのでしょうか?

いいアイデアをご教授ください。

Aベストアンサー

こんなのはどうかな?

position: absolute;
bottom: 0px;

Qtable 幅固定で、端までいったら自動折り返し タグ

クリックありがとうございます、また質問させて頂きます。
今メモ帳でホームページを作成中です。
素人質問かもしれませんが、お力貸して下さると助かります。

小説ページを作成しているのですが、その中でTABLEを幅固定して自動折り返しさせる方法がわかりません。
色々なサイト様を巡らせて頂き、

<table width="750" cellpadding="20" border="0" style="table-layout:fixed;">

↑こういうタグを打った所(勿論最後に</table>とかつきます)、幅は固定されるものの、width=750の大きさのラインで文字が折り返されず途切れてしまいました。
(メモ帳には「テストテストテストテスト」と打っていても、ページを開くと「テストテストテス」で文章が終了してたりする、ということです。)
また、table width="数字"や、パーセンテージで設定すると幅自体が固定されません。

検索で、半角英数字の連打(例:aaaa)は普通の設定だと折り返しされないと知ったため、「テストテストテスト」などの単語を連続して試しています。
最終手段の、<br>使用はなるべく控えたいと思っています。
上手く固定出来るタグを教えて頂けると嬉しいです。
宜しくお願いします。

クリックありがとうございます、また質問させて頂きます。
今メモ帳でホームページを作成中です。
素人質問かもしれませんが、お力貸して下さると助かります。

小説ページを作成しているのですが、その中でTABLEを幅固定して自動折り返しさせる方法がわかりません。
色々なサイト様を巡らせて頂き、

<table width="750" cellpadding="20" border="0" style="table-layout:fixed;">

↑こういうタグを打った所(勿論最後に</table>とかつきます)、幅は固定されるものの、width=750の大きさのラインで文...続きを読む

Aベストアンサー

以下のように指定すると改行されました。
ちょっと今のところ他に方法が思いつきません・・・

td {
word-break:break-all;
}

独自拡張なのでちょっと迷いますね。


人気Q&Aランキング