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

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

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

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

PHP

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

Q&A

3回答

1479閲覧

Mac PHPビルトインwebサーバを実行するとSegmentation fault: 11と出てしまう

退会済みユーザー

退会済みユーザー

総合スコア0

MacOS(OSX)

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

PHP

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

0グッド

0クリップ

投稿2019/02/20 04:19

編集2019/02/20 05:09

前提・実現したいこと

MacでPHPを動かしています。
php -S localhost:8083 -t ./hogeでPHPビルトインwebサーバを利用していますが、ブラウザからアクセスするとSegmentation fault: 11と出て落ちてしまうようになりました。
エラーログがどこに出力されるかなどもわからず調査が難航しています。エラーログはどこにあるでしょうか?

(追記)
php -S localhost:8083 -t ./hogeはターミナルで実行しています。
ターミナルのん画面にはSegmentation fault: 11とだけ出力されておしまいです。
Segmentation faultを解消するためにwebサーバのエラーログの場所を探しています。
Segmentation faultはwebサーバの実行時にエラーになって出るエラーメッセージという認識です。もしかしてその理解が間違っていますか?)

補足情報

原因かわかりませんが、直近でphpenvをインストールしました。

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

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

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

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

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

m.ts10806

2019/02/20 04:24

通常のApacheのログディレクトリ内は確認されたのでしょうか。
退会済みユーザー

退会済みユーザー

2019/02/20 04:36

`/var/log/apache2`にはaccess_logもerror_logもありません。 PHPビルトインwebサーバはApacheとは別物ではないのでしょうか?
guest

回答3

0

phpビルトインサーバーで

Segmentation fault: 11

だと strace (linux) か dtruss (macos) で、追跡ですかねぇ...


php -S を実行したターミナルとは、別のターミナルで、実行中のphpビルトインサーバーのプロセスID を調べます。(適当なphpがなかったので、Laravel ですが...)

$ ps ax | grep php 8963 ttys003 0:00.50 php artisan serve 8967 ttys003 0:00.02 /usr/local/bin/php -S 127.0.0.1:8000 /Users/name/Desktop/test02/server.php 8970 ttys004 0:00.00 grep php

先ほど調べた、php サーバのプロセスIDを指定して、dtruss を管理者権限で起動する。画面にログが出始めたら、php ビルトインサーバーの URL にアクセスして、で落ちる操作を行う。

$ sudo dtruss -p 8967 Password: dtrace: system integrity protection is on, some features will not be available SYSCALL(args) = return select(0x8, 0x1092F062C, 0x1092F06AC, 0x0, 0x7FFF575B7DF8) = 0 0 dtrace: 21991 dynamic variable drops with non-empty dirty list select(0x8, 0x1092F062C, 0x1092F06AC, 0x0, 0x7FFF575B7DF8) = 1 0 accept(0x7, 0x7FA36B8010C0, 0x7FFF575B7D94) = 8 0 fcntl(0x8, 0x3, 0x0) = 2 0 fcntl(0x8, 0x4, 0x6) = 0 0 recvfrom(0x8, 0x7FFF575B3D40, 0x3FFF) = -1 Err#35 select(0x9, 0x1092F062C, 0x1092F06AC, 0x0, 0x7FFF575B7DF8) = 1 0 recvfrom(0x8, 0x7FFF575B3D40, 0x3FFF) = 1760 0 stat64("/Users/user/Desktop/test02/public/\0", 0x7FFF575B3B90, 0x3FFF) = 0 0 stat64("/Users/user/Desktop/test02/public/index.php\0", 0x7FFF575B3B90, 0x3FFF) = 0 0 (以下略)

異常終了したらログを見て調査する。

おそらく、ログの量がかなり多くなると思うので sudo dtruss -p 8967 2>&1 >logfile1.txt の様にリダイレクトしてファイルに保存しておく方が良いかもしれません。

投稿2019/02/20 06:02

CHERRY

総合スコア25171

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

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

0

PHPビルトインであれば、そのコマンドを実行したターミナルの標準出力・標準エラー出力に出力されます。
php -S をターミナルで実行しているのですよね?

投稿2019/02/20 04:41

t_obara

総合スコア5488

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

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

退会済みユーザー

退会済みユーザー

2019/02/20 05:07

はい、おっしゃるとおりです。 画面には Segmentation fault: 11 と出力されるだけで、他に情報がないので困っています…。
t_obara

2019/02/20 05:40

「segmentation fault 11 php server」でググってみてはいかがでしょう
guest

0

リダイレクトしていなければ、コマンドを入力した端末ですね。

投稿2019/02/20 04:39

otn

総合スコア84505

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

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

退会済みユーザー

退会済みユーザー

2019/02/20 05:06

リダイレクトはしていないです。 画面には Segmentation fault: 11 と出力されます。 このエラーを解決する糸口を探しています。
otn

2019/02/20 05:16

PHPのインストールの失敗ですかね。
otn

2019/02/20 07:44

↑は、どんなファイルを表示させようとしてもSegmentation faultになる場合ですが、 単純なファイルではうまく表示されて、プログラムによってはSegmentation faultが起こると言う事なら、プログラムバグでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問