Windows環境でxamppのphpでunixパス設定

このQ&Aのポイント
  • phpソース内でinclude(/www/aaa/test.php);がエラーになる問題が発生しています。
  • Windows環境ではUnixのパス(/)は理解できないため、パスを修正しても同じエラーが発生します。
  • phpの設定やapacheの設定を変更せずにWindows環境でxamppを使用する方法はあるのでしょうか?
回答を見る
  • ベストアンサー

windows環境でxamppのphpでunixパス設定

phpソース内で include(/www/aaa/test.php); がそもそもありまして、そのソースを改造することなく Windowsのローカル環境で(xamppの最新版を使用)インストールしたいです。 WindowsではUnixのパス(/は最も上位のフォルダからのパス)は理解出来ないと知りまして、windows用に include(\www\aaa\test.php); に改めても、引き続き同じエラーが発生し、⇒Warning: include( est est.php)その上、testの文字"t"が消えて、個人的に混乱しています。phpソースに変更を加えない方法で、Windowsローカル環境下で、apacheの設定やphpの設定などを行う方法はあるのでしょうか? 有識者の方ご指導よろしくお願いいたします。

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.1

>include(\www\aaa\test.php); 予測ですが、 include("\www\aaa\test.php"); こう書いてたりしませんでしょうか。 PHPに限らずですが、ダブルクウォートに括られた文字列は「\」でエスケープされます。 上記場合ですと\w,\a,\tがそれで一文字と判別されます。 Warning: include( est est.php) となるのは\tがタブ文字と判別されてるからでしょう。 解決策としては include('\www\aaa\test.php'); とするか、 include("\\www\\aaa\\test.php"); と\自体をエスケープすればよいです。

go2guige
質問者

お礼

そうですね。エスケープされていたんですね。 ありがとうございました! そもそも論で申し訳ございませんが、私の質問中で >WindowsではUnixのパス(/は最も上位のフォルダからのパス)は理解出来ないと知りまして これに錯誤がありました。 include のパス区切り文字は / でも \ でもどちらでも問題なく動くようです。あと、今回のミスは単純なapacheの設定とDirectoryの配置ミスでした。

その他の回答 (1)

  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

相対パスで読み込むようにしておくか、 __FILE__ などを利用して、ベースのディレクトリを定義しておけば楽かと。 define('BASE_DIR', dirname(__FILE__) . '/'); include(BASE_DIR . 'test.php');

関連するQ&A

  • XAMPPの設定

    XAMPPの設定画面で、MySQLのパスワード設定で(localhost/xampp/)、メニューのsecurityをクリックしてセキュリティー画面に入ったんですけど画面が表示されません .Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13 .Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\php5\pear') in C:\xampp\security\htdocs\index.php on line 13 エラーがでます。どうしたらいいのでしょうか?

    • 締切済み
    • PHP
  • xamppの設定

    phpを勉強している初心者です。 xamppをインストールしてphpを使っています。 (xamppの設定は初期状態です。) 現在item_list.phpという商品一覧のファイルを作成しています。 phpmyadminのciel(DB名)から商品をselect処理で持ってきています。 DB接続時の $conn = mysql_connect("localhost", "root", "");                    ↑      ↑ ↑ 上記の矢印の部分を変数$db_host,$db_user,$db_passwordに置き換えて$db_host,$db_user,$db_password はconf.phpで別ファイル管理したいと思っています。 item_list.phpのDB接続の前に「include ("conf.php");」を設定したところ下記のエラー表示が出てしまいました。 -------------------------------------------------------------------------- Warning: include(conf.php): failed to open stream: No such file or directory in C:\xampp\htdocs\ciel\item_list.php on line 6 Warning: include(): Failed opening 'conf.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\ciel\item_list.php on line 6 -------------------------------------------------------------------------- conf.phpは <? php $db_host = " localhost "; $db_user = " root "; $db_password = ""; $db_name = " ciel "; ?> このように設定しています。 おそらくinclude_pathの設定を変更しなくてはいけないと思うのですが、どこをどう変えたら良いのかわかりません。 どなたかご存知の方がいましたら教えてください。 よろしくお願いします。

    • 締切済み
    • PHP
  • [PHP][XAMPP]でUnixコマンドを使う方

    windows10が入っているPCにxamppをインストールして使っています。 エディタはVSCodeを使って学習しています。 ここでループや条件分岐等の基礎文法や、ceil,mt_rand, sprintf, sort, などのビルドイン関数の学習をしていました。問題なく動作します。 が、途中で学習項目が以下のようなUnixコマンドを使ってファイルに文字を書き込んだり、ディレクトリ操作、Unixタイムスタンプや日時を扱う関数の項目にはいりました。 fopen(),fwrite(),fclose(),fread(),file_get_contents(),file(),opendir(), readdir() 当然、今までのようにエディタでは動作しません。 xamppの「Shell」を開いてみると「Xampp for Windows」が開きます。 ここでも'ls'はじめ上記のようなコマンドは動いてくれません。 Unixコマンドを使う方法を調べているとubuntsというLinuxディストリビューションをインストールしました。とりあえずこれを使えばUnixコマンドは使えるようです。実際は少し前に入れていたものなのですが、 このubuntsのコマンドラインに pwd と打つと xx-00@DESKTOP-XXX:^$ pwd /home/xx-00 このように表示されます。 現在 C://:xampp/htcdocs/ 内に学習用フォルダを作成してxamppを使いphpを学習しています。 たとえば c:> xampp/htcdocs/php/study フォルダとします。 ubuntsのルートディレクトリ /home/xx-00 をxamppと同じ c:> xampp/htcdocs/php/study に変更してやると統合? 現在の環境でUnixコマンドが使えるようになりますか? もしご存じでしたら教えて下さい。 基本的に初心者で自分自身が詳しくわかっていません。 教材は添付画像のようになっています。 これと同じ環境を作りたいと考えています。 考え方が根本的に間違っているのかもしれません。その場合現在のWindows10にXamppを入れた環境でunixコマンドを利用する方法が別に何かありますか? 教材は添付画像のようになっています。 これと同じ環境を作りたいと考えています。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • XAMPP セキュリティ設定ページにアクセスできない

    XAMPPをインストール後、セキュリティ設定ページにアクセスできません Warning: include(lang/jp.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\security\htdocs\index.php on line 13 Warning: include() [function.include]: Failed opening 'lang/jp.php' for inclusion (include_path='.;C:\xampp\php\pear\') in C:\xampp\security\htdocs\index.php on line 13 と出ます。どうしたらいいですかねぇ??

  • smartyの設定 include?path以下の設定がわからない

    独学でPHPを学んでいます。 PHPの基本はひととおり理解はできました。 開発環境・最新のXAMPP導入。 windows、OSはVISTA smartyをインストールしましたが、その設定につまずいています。 Smarty.class.phpが存在するパス(D:\xampp\libs)をphp.iniファイル447行目を下記のように設定しましたが、うまくいきません include_path=D:\xampp\libs\ xamppフォルダの下にlibsフォルダを入れたので上のパス指定で問題ないと思うのですが、どこが間違っているのでしょうか。 ちなみに、libs以下の\も不要だろうと思い、消したりして試してみましたが、結果は同じ。下記のように表示がなされます。 Warning: require_once(local/xampp/libs/Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in D:\xampp\htdocs\lesson\smarty1.php on line 3 Fatal error: require_once() [function.require]: Failed opening required 'local/xampp/libs/Smarty.class.php' (include_path='.;D:\xampp\php\pear\') in D:\xampp\htdocs\lesson\smarty1.php on line 3 上の文章ですが、3行目後半”Smarty.class.php' (include_path='.;D:\xampp\php\pear\')”の部分ですが、php.iniからinclude_pathを変更したりしているのですが、一向に表示が変わりません。 もしかしたらphp.iniファイルは二つあったりするのでしょうか。 php.iniのファイルはPHPフォルダに入っているものでよろしいですよね? もちろんアパッチは再起動させています。 なのにできません・ あと、ロジックファイルの require _once()の()内はSmarty.class.phpだけでもよろしいのでしょうか。 もう悩みすぎて頭がおかしくなりそうですね。 ちなみにsmartyがなくても、アプリケーション開発に支障はありませんでしょうか。 あくまで個人で趣味の範囲でアプリケーションを作成したいと感じています。

    • ベストアンサー
    • PHP
  • xampp phpエラーについてです。

    PHP初心者ですがご回答宜しくお願い致します。 xamppをインストールした後、smartyをインストールし、「php.ini」ファイルをinclude_path = ".;d:¥php¥includes"からinclude_path = ".;C:\xampp\php\includes;C:¥Smarty¥libs"に書き換えて保存。その後xamppコントロールパネルからapacheとmysqlを起動させるとphpエラーとして syntax error, unexpected TC_LABEL, expecting '=' in C:\xampp\php\php.ini on line 1 とエラーが出ました。 調べてみましたがわかりませんでした・・・。 原因解明の手掛かりでもお教え頂きたく思います。 因みに、環境はOS Windows7 xampp、smartyは現在最新のものです。 ファイルを書き換える前は普通に作動してました。 お手数ですが、何卒よろしくお願い致します。

    • 締切済み
    • PHP
  • phpのinclude_pathのエラーについて

    phpで以下のエラーが出ております。 いろいろ試しているのですが、解決できません。 各種設定ファイルに設定の誤りがあるのでしたら教えていただきたいと思います。 1)Fatal error: main(): Failed opening required '' (include_path='.;c:\php\includes') in C:\Apache2\htdocs\aaa\ins.php on line 26 2)Fatal error: main(): Failed opening required '' (include_path='.;c:\php4\pear') in C:\Apache2\htdocs\aaa\ins.php on line 26 c:\php4\pearというディレクトリは存在しないがなぜか出る。 3)Fatal error: main(): Failed opening required '' (include_path='.;c:\php\includes\aaa') in C:\Apache2\htdocs\aaa\ins.php on line 26 4)Fatal error: main(): Failed opening required '' (include_path='.;C:\Apache2\htdocs\aaa') in C:\Apache2\htdocs\aaa\ins.php on line 26 ##ins.phpのソース: $tpl = "ccc.tpl"; require_once($tpl); ##ディレクトリ構成 C:\Apache2\htdocs\aaa ins.php ccc.tpl ##php.iniの設定: ---有効にした場合1)のメッセージ include_path = ".;c:\php\includes"  ---コメントアウトした場合2)のメッセージ ;include_path = ".;c:\php\includes"  ---以下のpathにフォルダを作成してccc.tplを配置した場合3)のメッセージ include_path = ".;c:\php\includes\aaa" ---以下のpathを指定した場合4)のメッセージ include_path = ".;C:\Apache2\htdocs\aaa" ##httpd.confの設定: line 231 DocumentRoot "C:/Apache2/htdocs" line 256 <Directory "C:/Apache2/htdocs"> AllowOverride Options AuthConfig ##環境 os:winXP apache2:apache_2.0.58 php:PHP Version 4.4.1

    • ベストアンサー
    • PHP
  • Xamppの中のphpでFPDFが使えるようにした

    あるPHPの参考書に『FPDFのセットアップ』という項目の中で、 「fpdfxxx.zip(xxxはバージョン番号)はFPDFの本体です。アーカイブを解凍した後、その配下に含まれるfpdf.phpとfontフォルダをinclude_pathが通ったパス(例えば「c:\php\includes」に配置してください。…‥以後省略) と記述されているのですが、私のパソコンにインストールしたxamppの中のphpファイルの中には、何処を探しても「includes」というファイルが見つかりません。  またxampp→php→pearと開いてみるとfpdfというファイルを発見したので開いてみたのですが…、私がダウンロードしようとしている、(http://www.fpdf.org/)の中のmbfpdf10b.zipのファイルとを比べると、あまりにもファイルの数やファイル名が異なりすぎるのでどうしたらよいのか迷っています。そして、このファイル(pear)が「include_pathが通ったパス」なのか?も解からない状態です。 php.iniの中の829行目あたりの条文も眺めて?はいるのですが、このinclude_path = “.;C:\xampp\php\PEAR” これが? Include_pathが通ったことなのか…?。  そもそもincludeファイルなるものはどこにあるのか?、無ければ「新規作成」で作ってみたらどうだろうか?、だとしても、それでinclude_pathが通っているのか?。 などと、いろいろ考えてはみたのですが…?、まったく解かりません!。 何方か、includeファイルをxamppの中のphpに設定する方法とxampp→php→pearの中にあるfpdfファイルはどのように扱えばよいのでしょうか?、ご教授ください、よろしくおねがいします。 追伸 私の使用しているパソコンは:東芝REGZA PC D712/T3FG OSは:Windows 7 Xamppのバージョンは; 1.8.1 以上です。

    • 締切済み
    • PHP
  • xamppのインクルードパスの設定の方法

    素人ながら、ウェブサイトを作成中です。 ヘッターやフッターを共有にしたくて、HTMLにPHP の inlude のコード(<?php include('./header.html'); ?>)を記載しました。 サーバーにアップすれば、問題なく、ヘッターが表示されました。 しかし、xampp上では、ヘッターが表示されません。 xamppでどのような設定をすれば、確認することが出来るのでしょうか。ご教示お願い致します。 因みに、ネットで検索して、xamppの下記のコードを変更してみたのですが、インクルードにしているヘッター部分は表示されませんでした。 【変更してみたxamppの「php.ini」のコード】 ■変更前のコード ; Windows: "\path1;\path2" ;include_path = ".;c:\php\includes" ■変更後のコード ; Windows: "\path1;\path2" include_path = ".;c:\php\includes;c:\php\pear";

    • ベストアンサー
    • PHP
  • xamppの中のphpでFPDFを使いたい

     あるPHPの参考書に『FPDFのセットアップ』という項目の中に、「fpdfxxx.zip(xxxはバージョン番号)はFPDFの本体です。アーカイブを解凍した後、その配下に含まれるfpdf.phpとfontフォルダをinclude_pathが通ったパス(例えば「c:\php\includes」に配置してください。…‥以後省略) と記述されているのですが、私のパソコンにインストールしたxamppの中のphpファイルの中には、何処を探しても「includes」というファイルが見つかりません。 またxampp→php→pearと開いてみるとfpdfというファイルを発見したので開いてみたのですが…、私がダウンロードしようとしている、(http://www.fpdf.org/)の中のmbfpdf10b.zipのファイルとを比べると、あまりにもファイルの数やファイル名が異なりすぎるのでどうしたらよいのか迷っています。そして、このファイル(pear)が「include_pathが通ったパス」なのか?も解からない状態です。 php.iniの中の829行目あたりの条文も眺めて?はいるのですが、このinclude_path = “.;C:\xampp\php\PEAR” これが? Include_pathが通ったことなのか…?。 そもそもincludeファイルなるものはどこにあるのか?、無ければ「新規作成」で作ってみたらどうだろうか?、だとしても、それでinclude_pathが通っているのか?。 などと、いろいろ考えてはみたのですが…?、まったく解かりません!。 何方か、includeファイルをxamppの中のphpに設定する方法とxampp→php→pearの中にあるfpdfファイルはどのように扱えばよいのでしょうか?、ご教授ください、よろしくおねがいします。 追伸 私の使用しているパソコンは:東芝REGZA PC D712/T3FG OSは:Windows 7 Xamppのバージョンは; 1.8.1 以上です。

    • 締切済み
    • PHP

専門家に質問してみよう