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

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

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

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

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

Q&A

解決済

2回答

8327閲覧

windows7 64bitで、nginx+phpを動作させたい。No input file specified.が発生する。

usugita_san

総合スコア221

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

PHP

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

0グッド

0クリップ

投稿2015/07/03 23:29

編集2015/07/09 13:53

以下のサイトを参考に、Windows7 64bit環境でnginxとphpで動作させようとしています。
http://himaxoff.blog111.fc2.com/blog-entry-63.html

nginxのバージョンは1.7.3
phpのバージョンは5.6.10

nginxの配置は、
c:\nginx\nginx.exe

phpの配置は
c:\nginx\php\php-cgi.exe
って感じです。
nginxの設定を抜粋します。

lang

1 server { 2 listen 80; 3 server_name localhost; 4 5 #charset koi8-r; 6 7 #access_log logs/host.access.log main; 8 9 location / { 10 root html; 11 index index.html index.htm; 12 } 13 14 ~中略~ 15 16 location ~ \.php$ { 17 root html; 18 fastcgi_pass 127.0.0.1:9000; 19 fastcgi_index index.php; 20 fastcgi_param SCRIPT_FILENAME C:/nginx/html$fastcgi_script_name; 21 include fastcgi_params; 22 }

start-nginx.batを記載します。

lang

1@ECHO OFF 2cd c:\nginx 3start nginx.exe 4start /b c:\nginx\php\php-cgi.exe -b 127.0.0.1:9000 -c c:\nginx\php\php.ini 5ping 127.0.0.1 -n 1>NUL 6echo Starting nginx 7echo . 8echo . 9echo . 10ping 127.0.0.1 >NUL 11EXIT 12

ブラウザから開こうとしているファイルの配置場所は、
c:\nginx\html\php_sample01\index.php
内容は、

lang

1<? 2phpinfo(); 3?>

この状態で、 http://localhost/php_sample01/index.php を開きました。
No input file specified.
と表示されてしまいました。
以下のサイトに、パスの設定を見なおしたのですが、どこに問題があるのか解りません。
http://d.hatena.ne.jp/omiyan/20110119/p1

どなたか原因に思い当たる事は無いでしょうか。


追記です。
何が問題なのか解らないので調べてみました。
php-cgi.exeはバックグラウンドで正常に動作しているようです。ただ、こいつにnginxから何かアクションを取っているのかは解らないです。何もログが出ないですし・・・。

fastcgi_param SCRIPT_FILENAME C:/nginx/html$fastcgi_script_name;

↑の記述がどのように影響しているかが解らないので色々修正して試してみました。

fastcgi_param SCRIPT_FILENAME C:/nginx/html$fastcgi_script_name

セミコロンが無いのでエラーが出ました。

fastcgi_param SCRIPT_FILENAME C:/hogehoge$fastcgi_script_name;

hogehogeというディレクトリは存在しません。
エラーなし。動きも変化無し。

fastcgi_param SCRIPT_FILENAME2 C:/hogehoge$fastcgi_script_name;

エラーなし。動きも変化なし。

fastcgi_param を削除しても特に変化はありませんでした。
どこを調べれば良いのか検討が付きません。
ヒントとなるログも見つかりません。
どなたか調査方法などでも構いませんので、助けていただけないでしょうか。

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

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

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

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

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

guest

回答2

0

試していませんが、
ここに記述のある、$fastcgi_script_nameを調べる方法は、使えないでしょうか?
以下のイメージと思います。

location ~ \.php$ { root html; redirect ^ http://www.google.com/?q=$fastcgi_script_name last; break; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME C:/nginx/html$fastcgi_script_name; include fastcgi_params; }

投稿2015/07/09 15:43

eripong

総合スコア1546

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

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

usugita_san

2015/07/21 13:07

ありがとうございます。 結論としては、もっと簡単な原因でした。 最初にアドバイス頂いた方をベストアンサーとさせていただきました。 お騒がせして申し訳ありませんでした。
guest

0

ベストアンサー

同じconf で、問題なく動きましたよ。
No input file specified. と出るということは、fastcgi_param がおかしいのは明らかなので、
そこをもう一度確認してください。

あとは、conf を変えた後に、nginx -s stop にて正しく、nginx を止めていますでしょうか?

以下のサイトを見ているはずなので、正しく 停止用のバッチで止めてください。
(このサイトでも同じconf で動作が確認されてます。)

http://himaxoff.blog111.fc2.com/blog-entry-63.html

投稿2015/07/06 18:12

katsumiy

総合スコア479

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

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

usugita_san

2015/07/08 22:03

仰るとおりのサイトを見ていました。 質問に、サイトのURLを追記しました。
usugita_san

2015/07/08 22:04

php.iniですが、どうやって用意していたか教えて貰っていいですか? 私は、php.ini-development のファイル名を変更してphp.iniを作成していました。
katsumiy

2015/07/08 23:14

php.ini はなにも用意してません。つまり、すべてデフォルトになっています。
usugita_san

2015/07/09 13:54

同じようにphp.iniを削除してみましたが、状態は変わりませんでした。 php側ではなくnginx.exeに問題があるのだと考え、もう少しチャレンジしてみます。
katsumiy

2015/07/09 14:43

一応使ったバイナリを書いておきます。 nginx http://nginx.org/download/nginx-1.9.2.zip and http://nginx.org/download/nginx-1.8.0.zip どちらも動きます。 PHP 5.6.10 VC11 x64 Non Thread Safe http://windows.php.net/downloads/releases/php-5.6.10-nts-Win32-VC11-x64.zip conf を以下のように変えてみてください。 どのスクリプトパスが使われているかが表示されます。 location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME c:/nginx/html$fastcgi_script_name; return 200 c:/nginx/html$fastcgi_script_name; include fastcgi_params; } 私のマシンでは、以下のように表示されました。 c:/nginx/html/php_sample01/index.php
usugita_san

2015/07/14 00:03

すみません、返答が遅れて申し訳ありません。 なかなか検証する環境に行けずに作業が出来ないでおります。 アドバイス、ありがとうございます。
usugita_san

2015/07/21 13:05

解決しました。 本当に情けない原因でした・・・ c:\nginx\ のディレクトリなんですが、これをmklink コマンドで作成したシンボリックリンクで作っていたのです。 つまり、 c:\nginx\ の実態は、 c:\nginx-1.7.x\ とかの他のディレクトリだったのです。 どうもphpはシンボリックリンクを認識しないようです。 コマンドライン上やエクスプローラでは問題なく動作するので、解らなかったです・・・。 お恥ずかしいミスです。申し訳ありませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問