質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

Q&A

解決済

3回答

4590閲覧

phpからLAN内共有サーバーの接続ができない

kasama517

総合スコア9

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Windows Server

Windows Serverとは、Microsoft社のサーバ用オペレーティングシステムの総称です。 企業内ネットワークなどで利用されるサーバ機へ導入することを想定して開発されているため高い安定性があり、 管理機能を提供するソフトウェアが多く含まれています。

0グッド

0クリップ

投稿2018/08/08 11:37

ご鞭撻お願いします。
中小企業の社内システムで、

サーバー1:iis+mysqlサーバー
サーバー2:ファイル(共有)サーバー
※2台とも windows2012server

クライアントはブラウザからサーバー1のデータベースを閲覧・編集し、
サーバー2は単なる共有ファイル(NAS)として使用してました。

実現したい事は、ブラウザでサーバー1のデータだけでなく、サーバー2も
覗きたいのですが、なかなかうまくいきません。

2台のサーバーはお互いネットワークから見ることができます。
お互いエクスプローラーでフォルダを覗くことも可能です。
しかし、下記phpソースコードでサーバー1からサーバー2をアクセスすると、
覗くことができません。

<?php $directory_path = "\サーバー2\hoge\data.txt"; if(file_exists($directory_path)){ echo "存在します"; }else{ echo "存在しません"; } ?>

LAN外のセキュリティを確保した上で、それぞれのサーバーのセキュリティをeveryoneもokまで
落としてみたり、それぞれのサーバーに「IUSR」「IIS_IUSRS」のアクセス許可を付けたりしても
"存在します"と言ってくれません。

無論、サーバー2の指定パスが間違っているのかと思い、

<?php echo __FILE__; ?>

で調べたのですが、
"\サーバー2\hoge\data.txt"
と表示され、合っていると思います。

この内容で1週間経ち、私の知能では万策尽きてしまいました。
何が原因なのか、教えて頂けないでしょうか?
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

\サーバー2
をドライブレターをつけてマウントしてください。
https://www.server-world.info/query?os=Windows_Server_2012&p=smb&f=2

Z:\hoge\data.txt
のようにアクセスしてみてください

投稿2018/08/08 12:06

編集2018/08/08 12:08
namda

総合スコア705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2018/08/09 00:40

サーバー名ではなく、公開ディレクトリをマウントします 「\サーバー2\hoge」→Z: Z:\data.txt
namda

2018/08/09 01:46

そのほうが良いですね。できるだけ見える範囲を限定するのは好ましいので。
kasama517

2018/08/13 10:27

コメントありがとうございます。 未だ解決できていませんが、こちらの方法でも「可能なはず」とのことで、やはり疑うはサーバー側の 設定を再度細かく見てみます。 こちらの内容から「疑うべき箇所が違う」事が分かったため、こちらの回答をBAとさせて頂きます。 また、他の皆様のコメントもとても参考になりました。 無論、見える範囲はフォルダを限定して、LAN内のみ可を想定してます。 社内システムなので、業務内容を社内共有しやすくするため、必要な機能です。 現在は、AccessVBAで構築したシステムを運用しているのですが、上からの鶴の一声で、 ブラウザでの同じ管理システムを作る事になり、ドツボにハマっております。
guest

0

あまりこのような状況下になることがないので試せませんが、パス指定で覗けるのはあくまで自分のサーバー内のものだけだと思います。
ブラウザからファイルを直接操作できるとなると様々なセキュリティリスクがつきまとうので望ましくありません。
正確には「覗く」になりませんが、どうしてもファイルのやり取りをしたければFTP通信で送受信する形になるのではと思います。(DropBoxとかイメージしてもらえると良いかもしれません)

投稿2018/08/08 11:49

編集2018/08/08 11:51
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kasama517

2018/08/08 12:07

コメントありがとうございます。 構築したら、WANからサーバー2は見れないようにセキュリティはかけようと思います。 >パス指定で覗けるのはあくまで自分のサーバー内のものだけだと思います。 この方法で別サーバーにもアクセスできるそうですが、私の知能が低くて、何が原因で覗けないのか分からないんです・・・。
m.ts10806

2018/08/08 12:16 編集

知能が低いとかあまり卑下する発言は良くないですよ。 特に見ず知らずの人に使うと「めんどくさいやつ」という印象を与えてしまってその後に影響が出かねません。なるべく淡々と粛々とやりましょう。 > 構築したら、WANからサーバー2は見れないようにセキュリティはかけようと思います。 そもそもWANからサーバー2は見れないようにしたらブラウザからも覗けないように思うんですが、サーバーやネットワークはあまり明るくないので、目途が立っているということで良いですかね。 回答では遠回しに書いていますが、そもそもブラウザから直接ファイル操作できる時点でアウトです。もちろん社内なのでそこまで悪用するような人は・・・と思うかもしれませんが何が起きるか分からないのが世の中です。 「セキュリティをかける」はどのような手段を考えているかわかりませんが、あくまで「Webサイトを構築する上で対応すべきセキュリティ(XSSやCSRF、ディレクトリトラバーサルなどいくつかは聞いたことがあると思います)を考慮してくださいね。 「アクセスできる”そう”」では根拠として弱いので参考にした記事URLや実際に試した設定など具体的に記載してください。 回答が既についているように\はエスケープシーケンスの意味合いがあり、特にWindowsの場合はパス指定は気を付けなければなりません。 また、IP指定だと難しいかもしれません。 ひとまずパス指定で「アクセスできる」という体で話を進めますが、 「置いてあるファイルを開く」のではなく、まず「その場所にファイルを作る」をやってみてください。 file_put_contents()の方ですね。エラー表示をOnにした上でやってみてください。その結果如何で次試してみることが決まります。
kasama517

2018/08/08 12:44

その「めんどくさいやつ」にコメントありがとうございますw。 実は現状、AccessVBAで作ったシステムで、サーバー1とサーバー2の連携システムを運用しているのですが、そのシステム上では実現したい事ができているのです。 上からのお達しで、このAccessVBAシステムをブラウザで管理できるシステムを作れと・・・ 確かにセキュリティ問題は山積みです。 アドバイスの方もありがとうございます。 「その場所にファイルを作る」を試してみたいと思います。
m.ts10806

2018/08/08 13:08

あと出しでの要件が多いと悪戯に解決を遅らせるだけです。サポートセンターではないのですし隣で画面見ながらアドバイスできるわけではありません。 出せるものは全て最初の時点で出してください。 質問は編集できるので前提、背景、要件をきっちり書いてください。
m.ts10806

2018/08/08 13:13

まあ、1週間も解決しないままで大丈夫なら、その程度の内容なのかもしれませんけど。(失礼を承知ですが1週間も使っていながら1週間も使ったような進み具合ではなさそうなので、且つ質問者さんご本人があまり切迫しているようにも見えないので)
guest

0

"\\サーバー2\hoge\data.txt"の可能性
'\サーバー2\hoge\data.txt'って書いたほうが間違いにくいかもね。

投稿2018/08/08 11:48

編集2018/08/08 11:49
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kasama517

2018/08/08 12:09

コメントありがとうございます。 クォーテーションも円も試したのですが、ダメでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問