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

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

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

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

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

Q&A

解決済

2回答

2264閲覧

MacOS10.10にて、NGINX + PHP-FPM で<? phpのコード ?>が動作しない

conbufan

総合スコア10

nginx

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

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

PHP

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

0グッド

0クリップ

投稿2015/01/23 09:24

もはや私の知識では調べる方法も底を尽きました...。
どなたかご助力いただけると幸いでございます。

環境 :

MacOS 10.10.1
Homebrew 0.9.5
nginx 1.6.2
php,php-fpm PHP 5.3.29

やりたいこと:

nginxでphpを80番ポートで動作させたい。

現状:

静的なhtmlは出力されるものの、<? ... ?>のphpコードも静的なもの(そのまま)として出力される

nginxのconf :

4 user nginx;

...中略...

105 server {
106 listen 127.0.0.1:80 ;
107 server_name test.local;
108
109 location / {
110 root /Users/hoge/www/test/httpdocs ;
111 index index.html index.php;
112 }
113
114 location ~.php$ {
115 #root html;
116 root /Users/hoge/www/test/httpdocs ;
117 fastcgi_pass 127.0.0.1:9000;
118 fastcgi_index index.php;
119 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
120 include fastcgi_params;
121 }
122 }

php-fpmのconf :

以下は、デフォルトから変更しているところと、重要そうな部分のみ。

;pid = run/php-fpm.pid #コメントアウト状態
error_log = log/php-fpm.error.log
user = nginx
group = nginx
listen = 127.0.0.1:9000

実行したいファイル(index.php):

ほげほげ<? echo ("hogehoge"); ?>

実行手順:

1、$sudo /usr/local/opt/nginx/bin/nginx
2、$sudo /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
3、ブラウザでhttp://test.local/index.phpでアクセス

以上

(80番ポートを指定するためには、sudoで実行しなければいけない、またnginxのuserディレクティブ、php-fpmのuserディレクティブは、master processで実行しないとignore、というwarnメッセージが吐かれる、という点から、sudoで実行しています。)

結果:

ブラウザ上には
「ほげほげ」と表示される。
ソースを見ると「ほげほげ<? echo ("hogehoge"); ?>
となっている。

実行直後のLOG:

nginxの error.log:
2015/01/23 17:59:19 [notice] 2509#0: signal process started

php-fpmのlog:
何も出ない

確認:
sudo ps aux | grep nginx

root 2513 0.0 0.0 2457948 420 ?? Ss 5:59PM 0:00.00 nginx: master process /usr/local/opt/nginx/bin/nginx
nginx 2451 0.0 0.0 2499044 600 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
nginx 2450 0.0 0.0 2506212 580 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
nginx 2449 0.0 0.0 2498020 604 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
yamada 2534 0.0 0.0 2432772 664 s004 S+ 6:13PM 0:00.00 grep nginx
root 2525 0.0 0.0 2452852 2044 s001 S+ 6:02PM 0:00.01 vi /usr/local/etc/nginx/nginx.conf
root 2524 0.0 0.0 2443340 2488 s001 S+ 6:02PM 0:00.01 sudo vi /usr/local/etc/nginx/nginx.conf
nginx 2514 0.0 0.0 2457948 972 ?? S 5:59PM 0:00.00 nginx: worker process

確認:
sudo ps aux | grep php-fpm

nginx 2451 0.0 0.0 2499044 600 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
nginx 2450 0.0 0.0 2506212 580 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
nginx 2449 0.0 0.0 2498020 604 ?? S 5:37PM 0:00.00 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
root 2448 0.0 0.0 2498020 7988 ?? Ss 5:37PM 0:00.15 /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
root 2447 0.0 0.0 2452556 2520 s002 S+ 5:37PM 0:00.01 sudo /usr/local/Cellar/php53/5.3.29/sbin/php-fpm --fpm-config /usr/local/etc/php/5.3/php-fpm.conf
yamada 2543 0.0 0.0 2432772 664 s004 S+ 6:15PM 0:00.00 grep php-fpm

確認:
sudo lsof -i:80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
plugin_ho 1424 yamada 29u IPv4 0xdcfebc37866e5bf 0t0 TCP 192.168.2.12:50397->209-20-75-76.slicehost.net:http (CLOSE_WAIT)
nginx 2513 root 6u IPv4 0xdcfebc39565b27f 0t0 TCP localhost:http (LISTEN)
nginx 2514 nginx 6u IPv4 0xdcfebc39565b27f 0t0 TCP localhost:http (LISTEN)

確認:
sudo lsof -i:9000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 2448 root 6u IPv4 0xdcfebc397daa75f 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 2449 nginx 0u IPv4 0xdcfebc397daa75f 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 2450 nginx 0u IPv4 0xdcfebc397daa75f 0t0 TCP localhost:cslistener (LISTEN)
php-fpm 2451 nginx 0u IPv4 0xdcfebc397daa75f 0t0 TCP localhost:cslistener (LISTEN)


lsofを見ると、80番ポートでnginxが、
9000番ポートでphp-fpmが動いています。
nginxの設定ファイルでは、.phpの処理として、
127.0.0.1:9000にアクセスさせています。

ですが、phpが処理されません...。
これ以上調べる術を知らないため、手ずまりとなっております....。
どなたかアドバイスをいただけるととても助かります。

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

<? echo ("hogehoge"); ?>

ではなく、

<?php echo ("hogehoge"); ?>

だとどうでしょう?

http://php.net/manual/ja/ini.core.php#ini.short-open-tag
は、最近はデフォルトではoffだと思うので。

投稿2015/01/24 04:50

matsubokkuri

総合スコア744

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

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

conbufan

2015/01/24 12:24

・・・うごきました・・・。 ありがとうございました、大変感謝しております。 (そして、ここまでかかった時間が悔しくもあります・・・)
matsubokkuri

2015/01/24 12:54

お。当たって良かったです!
conbufan

2015/01/26 08:28

ありがとうございました!(非常に助かりました!そして非常に悔しいですw!)
matsubokkuri

2015/01/27 03:54

しょうがないです。ハマって、調べて、乗り越えて、知識を付けていくんです!
guest

0

php-fpm.confpidが設定されていないせいではないでしょうか。

投稿2015/01/23 11:43

sho_cs

総合スコア3541

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

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

conbufan

2015/01/23 12:31

ご回答ありがとうございます。 確かに、試していなかったので、php-fpmの pid = run/php-fpm.pid をコメントをトリ、 php-fpmを再起動。また、nginxも再起動してみたのですが、残念ながら挙動は変わりませんでした。。 ちなみに、上記のとおりの、pidファイルは出来てました。 -rw-r--r-- 1 root admin 4 1 23 21:25 php-fpm.pid
sho_cs

2015/01/23 12:50

pid = /var/run/php-fpm.pidのようにフルパスにした場合どうなりますか?
conbufan

2015/01/23 14:01

ありがとうございます。 nginxのpidも同じ場所にあるので pid = /usr/local/var/run/php-fpm.pid に設定しました、が・・・だめですね・・。同じ状態でした。 ログも同じように、何も残っていない状態でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問