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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

2回答

2623閲覧

CakePHPを開発環境で利用できるようにしたい

ssk

総合スコア332

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2016/12/13 05:11

#環境
・Apache
・Mac OS Sierra
・Macports

#やりたいこと
・CakePHPを開発環境で利用できるようにしたい

#できていないこと
・CakePHPのトップページを表示すること

#その他の情報
localhost/samplesite/
にアクセスすると以下のエラー文が表示されます。

Fatal error: You must enable the intl extension to use CakePHP. in /Users/name/Sites/samplesite/config/bootstrap.php on line 27

bootstrap.php on line 27

if (!extension_loaded('intl')) { trigger_error('You must enable the intl extension to use CakePHP.', E_USER_ERROR); }

phpinfoのphp.iniがnoneになっているのが原因なのかと思い
イメージ説明

httpd.confに

<IfModule php7_module> PHPINIDir "/opt/local/etc/php70/php.ini" </IfModule>

を追加したのですが、phpinfoを見ても反映されませんでした。
何が原因なのかわからず、手がつけられない状態です。

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

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

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

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

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

guest

回答2

0

ベストアンサー

bash

1sudo port install php7-intl

バージョンは環境に合わせてください。
パッケージ名は以下で調べてみれば判明するはず。

bash

1sudo port search intl

以下のコマンドで起動したのであれば、

bash

1# apachectl restart

以下のコマンドで、ヘルプが表示される。
apachectl に限らず、たいていのコマンドには、ヘルプを表示するオプションが必ず存在しています。正直ググるより早い。

bash

1apachectl -?

コマンドによっては -? だったり --help だったりと統一性がないのが、難だが、

bash

1man apachectl

のように、man のあとに、コマンド名をつければ表示される。

bash

1apachectl -? 2 3Usage: /usr/sbin/httpd [-D name] [-d directory] [-f file] 4 [-C "directive"] [-c "directive"] 5 [-k start|restart|graceful|graceful-stop|stop] 6 [-v] [-V] [-h] [-l] [-L] [-t] [-T] [-S] [-X] 7Options: 8 -D name : define a name for use in <IfDefine name> directives 9 -d directory : specify an alternate initial ServerRoot 10 -f file : specify an alternate ServerConfigFile 11 -C "directive" : process directive before reading config files 12 -c "directive" : process directive after reading config files 13 -e level : show startup errors of level (see LogLevel) 14 -E file : log startup errors to file 15 -v : show version number 16 -V : show compile settings 17 -h : list available command line options (this page) 18 -l : list compiled in modules 19 -L : list available configuration directives 20 -t -D DUMP_VHOSTS : show parsed vhost settings 21 -t -D DUMP_RUN_CFG : show parsed run settings 22 -S : a synonym for -t -D DUMP_VHOSTS -D DUMP_RUN_CFG 23 -t -D DUMP_MODULES : show all loaded modules 24 -M : a synonym for -t -D DUMP_MODULES 25 -t -D DUMP_INCLUDES: show all included configuration files 26 -t : run syntax check for config files 27 -T : start without DocumentRoot(s) check 28 -X : debug mode (only one worker, do not detach)

bash

1 -t -D DUMP_INCLUDES: show all included configuration files

に書いてあるように、「設定ファイルを全て表示する」というものが存在しているのだから、これを実行する。

bash

1apachectl -t -D DUMP_INCLUDES

↓(結果:これは私の環境での結果)

bash

1apachectl -t -D DUMP_INCLUDES 2Included configuration files: 3 (*) /private/etc/apache2/httpd.conf 4 (491) /private/etc/apache2/extra/httpd-mpm.conf 5 (497) /private/etc/apache2/extra/httpd-autoindex.conf 6 (537) /private/etc/apache2/other/php5.conf

php5 があるので、こちらはこちらはコメントアウトして php7 にしたい。
php7の設定ファイルが存在するかどうか確認。

bash

1ls -al /private/etc/apache2/other/ 2 3total 0 4drwxr-xr-x 3 root wheel 102 8 9 08:35 . 5drwxr-xr-x 11 root wheel 374 9 21 22:34 .. 6-r--r--r-- 1 root wheel 194 8 9 08:35 php5.conf

存在していない。

bash

1php -v 2 3PHP 7.1.0 (cli) (built: Dec 2 2016 11:32:42) ( NTS ) 4Copyright (c) 1997-2016 The PHP Group 5Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies 6 with Zend OPcache v7.1.0, Copyright (c) 1999-2016, by Zend Technologies 7 with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans

コマンドラインでは php7 が存在している。
http と php をつなぐ何かがあるはず…

bash

1brew search http 2 3darkhttpd httperf 4homebrew/apache/httpd22 httpie 5homebrew/apache/httpd24 ✔ httping 6homebrew/php/php53-http httpry 7homebrew/php/php54-http httpstat 8homebrew/php/php54-httpparser httptunnel 9homebrew/php/php55-http libhttpserver 10homebrew/php/php55-httpparser libmicrohttpd 11homebrew/php/php56-http lighttpd 12homebrew/php/php56-httpparser mighttpd2 13http-parser nghttp2 14http_load slowhttptest 15httpdiff weighttp 16homebrew/emacs/know-your-http-well 17homebrew/emacs/simple-httpd 18homebrew/nginx/http-accounting-nginx-module 19homebrew/nginx/http-flood-detector-nginx-module 20homebrew/nginx/http-remote-passwd-nginx-module 21Caskroom/cask/httpscoop

homebrew/php/php56-http があるのに、php7 がない!

そして初めてググる

brew httpd php7

homebrewでapache2.4とphp7.0.7をインストール

ちなみにphpインストールコマンドに--homebrew-apxsを付与すると、、

LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so

この一文がhttpd.conf(apache設定ファイル)に自動的に追記され、apache側がこのphpを(もしpcの中に色んなphpが混在していても)判別し、ブラウザで実行することができるようになる。これがないとこのphpはブラウザで(というかapacheで)認識できない。

投稿2016/12/13 05:19

編集2016/12/14 04:23
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ssk

2016/12/13 05:29 編集

Kosuke_Shibuya様 PHPのバージョンを調べてところ、以下のように返ってきました。 PHP 7.0.14 (cli) (built: Dec 10 2016 16:55:05) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies sudo port search intl から php70-intl @7.0.14 (php, devel) internationalization extension for PHP のインストールはすでに行っております。 インストールする際は sudo port install php70-intl としました。
退会済みユーザー

退会済みユーザー

2016/12/13 05:32

php -m | grep intl の結果はどうなりますか?何も表示されない場合、正しくインストールされていません。
ssk

2016/12/13 05:34

php -m | grep intl を行い intl と表示されました。
退会済みユーザー

退会済みユーザー

2016/12/13 05:36

コマンドラインのPHP と Apacheで利用している PHP が異なっていますね。 <?php phpinfo(); を実行した時、intl が表示されていないはず。phpinfo() で表示されるPHPのバージョンを確認してください。
ssk

2016/12/13 05:39 編集

仰る通りでした。 phpinfo.phpを見たところ PHP Version 5.6.25 と表示されています。 どうしたら良いのでしょうか、、 できたら、5.6.25ではなく7を利用したいです。
退会済みユーザー

退会済みユーザー

2016/12/13 05:41

httpd.conf の記述を変更して php7 のモジュールを読み込むようにする。 macport で Apache をインストールするのが一眼簡単かも。
ssk

2016/12/13 06:00

macportでApacheをインストールして sudo /opt/local/apache2/bin/apachectl start と実行すると Warning: DocumentRoot [/opt/local/www/phpinfo.php] does not exist httpd not running, trying to start no listening sockets available, shutting down Unable to open logs と返ってきました。 ps -ax|grep httpd とすると 2538 ttys001 0:00.00 grep httpd と返ってきます。 次は何をすれば良いでしょうか?
退会済みユーザー

退会済みユーザー

2016/12/13 06:01

エラーメッセージの内容を把握する
ssk

2016/12/13 06:02

今まではKosuke_Shibuyaさんのご指摘の通り Macで標準に入っているapacheを起動していたようです。
ssk

2016/12/13 06:21

sudo /opt/local/apache2/bin/apachectl start と実行すると特に何も表示されなくなりました。 ps -ax|grep httpd としても 2711 ttys001 0:00.00 grep httpd のみで、動いていないようです。 どのようにエラーを見つければ良いでしょうか?
退会済みユーザー

退会済みユーザー

2016/12/13 06:24

エラーがないなら、問題ないのでは?
ssk

2016/12/13 06:27

sudo /opt/local/apache2/bin/apachectl restart とすると httpd not running, trying to start と返ってきます。
退会済みユーザー

退会済みユーザー

2016/12/13 06:34 編集

ログを調べましょう。 というか、まるで、メッセージを読む気がないように見受けられるのですが、ちゃんと読んでいますか? ちゃんと読んで、調べた上での質問なのでしたら、それがわかるように質問してください。
ssk

2016/12/13 06:34

はい、読んではいるのですが どこをどう修正したら良いのかがわからず>< こちらで質問致しました。
退会済みユーザー

退会済みユーザー

2016/12/13 06:35

「httpd not running, trying to start」どういう意味だと解釈しましたか?
退会済みユーザー

退会済みユーザー

2016/12/13 06:40 編集

まあ、そういう意味ですよね。起動できないとは書いてませんが、なぜエラーと思うのですか? メッセージには、失敗した時も、成功した時も表示されて然るべきものでは?
ssk

2016/12/13 06:41

http://localhost/ を叩いても、表示されないので apacheが正常に動いていないと思いました。
退会済みユーザー

退会済みユーザー

2016/12/13 06:44 編集

なるほど。 動いていない可能性もあるし、動いているけど設定が間違っている可能性もありますよね。 > http://localhost/ を叩いても、表示されないので 何が表示されると思って、どうなったのですか?
ssk

2016/12/13 06:50

httpd-vhosts.confで追記した /Users/name/Sites/index.htmlの内容が表示されると考えていました。 <VirtualHost *:80> DocumentRoot "/Users/name/Sites/" ServerName localhost <Directory "/Users/nameSites/"> AllowOverride All Order allow,deny Allow from all Options Indexes MultiViews FollowSymLinks Require all granted </Directory> </VirtualHost>
退会済みユーザー

退会済みユーザー

2016/12/13 06:54 編集

「macportでApacheをインストールして」 別のapacheをインストールしたのですから、同じ httpd-vhosts.conf を読み込むとは限らない。
ssk

2016/12/13 12:41

/usr/local/bin/apachectl start と実行すると、以下のように返ってくるのですが ポートが競合しているということでしょうか? (48)Address already in use: AH00072: make_sock: could not bind to address [::]:80 (48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:80 no listening sockets available, shutting down AH00015: Unable to open logs 特にstartもstopもしてないのに他のapache?が起動していることも気にになっています。。 45229 ?? Ss 0:00.20 /usr/sbin/httpd -D FOREGROUND 45238 ?? S 0:00.02 /usr/sbin/httpd -D FOREGROUND 49341 ?? S 0:00.00 /usr/sbin/httpd -D FOREGROUND 49342 ?? S 0:00.01 /usr/sbin/httpd -D FOREGROUND 49343 ?? S 0:00.02 /usr/sbin/httpd -D FOREGROUND 49357 ?? S 0:00.01 /usr/sbin/httpd -D FOREGROUND 49358 ?? S 0:00.01 /usr/sbin/httpd -D FOREGROUND 49359 ?? S 0:00.01 /usr/sbin/httpd -D FOREGROUND
ssk

2016/12/13 12:42

MacportsではなくHomebrewで再構築しています。
退会済みユーザー

退会済みユーザー

2016/12/13 13:20 編集

もともとインストール済みのapacheが起動しているか、skype じゃないの? http://qiita.com/yokozawa/items/dbcb3b31f9308e4dcefc > 「MacportsではなくHomebrewで再構築しています。」 問題をより複雑にするだけなのでやめたほうがいい。 基本的にコマンドの知識など、不足しているようですから、下手なことはせずに、MAMPとかXAMPPで環境作ったほうがいいと思いますよ。
ssk

2016/12/14 02:37

返信が遅くなり、申し訣ございません。 すべて、最初から入れ直すことでlocalhostで表示できるまで辿り着けました。 助言、ありがとうございます。 あと、一歩だと思うのでお付き合いお願い致します>< localhostで表示はされるんですが、localhost/samaplesite/を叩くと <php echo 'こんにちは'; ?>の部分が表示されず <!--<?php echo 'こんにちは'; ?>--> ↑このようにコメントアウトされてしまい、PHPが利用できません。 localhost/samaplesite/index.phpにアクセスするとファイルと認識されてしまい、勝手にダウンロードが始まってしまいます。 以下、現時点での設定内容です。 実行:apachectl -v ーーーーーーーーーーーーーーーーーーーー Server version: Apache/2.4.23 (Unix) Server built: Sep 27 2016 16:29:14 ーーーーーーーーーーーーーーーーーーーー 実行:apachectl -t ーーーーーーーーーーーーーーーーーーーー Syntax OK ーーーーーーーーーーーーーーーーーーーー 実行:php -v ーーーーーーーーーーーーーーーーーーーー PHP 7.0.14 (cli) (built: Dec 9 2016 07:34:25) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies ーーーーーーーーーーーーーーーーーーーー 実行:ps agx | grep httpd ーーーーーーーーーーーーーーーーーーーー 4316 ?? Ss 0:00.01 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4325 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4326 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4327 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4328 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4329 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4331 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4332 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4333 ?? S 0:00.00 /usr/local/Cellar/httpd24/2.4.23_2/bin/httpd -k start 4373 s000 S+ 0:00.00 grep httpd ーーーーーーーーーーーーーーーーーーーー できたら、MAMPやXAMPPを利用せずに使えるようになるまで 粘っていきたいです。 何卒、よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2016/12/14 02:41

http.conf に php の設定してください。 > できたら、MAMPやXAMPPを利用せずに使えるようになるまで粘っていきたいです。 粘るのは勝手ですが、私はサポートセンターじゃありませんからね。あくまでボランティアですから。
ssk

2016/12/14 02:48

ありがとうございます。 http.confの172行目に LoadModule php7_module libexec/apache2/libphp7.so を追加後 実行:apachectl restart ーーーーーーーーーーーーーーーーーーーー httpd: Syntax error on line 172 of /usr/local/etc/apache2/2.4/httpd.conf: Cannot load libexec/apache2/libphp7.so into server: dlopen(/usr/local/opt/httpd24/libexec/apache2/libphp7.so, 10): image not found ーーーーーーーーーーーーーーーーーーーー と返ってきました。 libphp7.soがないという意味だと思うのですが PHPの設定方法LoadModule php7_module libexec/apache2/libphp7.soは合っていますか? >粘るのは勝手ですが、私はサポートセンターじゃありませんからね。あくまでボランティアですから。 はい、Kosuke_Shibuyaさんの貴重なお時間をいただいてしまい、申し訳ございません。
退会済みユーザー

退会済みユーザー

2016/12/14 03:09 編集

> PHPの設定方法LoadModule php7_module libexec/apache2/libphp7.soは合っていますか? こればかりは聞かれても答え様がありません。正しい場所を探してください。 Syntax error = 「文法上のエラー」 --- ところで、こういった問題を解決できる人とできない人の差って、何だと考えていますか? 「知識の差」だと思っているようでしたら、それは間違いですよ。
ssk

2016/12/14 04:32

PHPの設定を行うことができました。 ありがとうございます。 >ところで、こういった問題を解決できる人とできない人の差って、何だと考えていますか? 情報収集の力でしょうか?
退会済みユーザー

退会済みユーザー

2016/12/14 04:53 編集

収集しても、真偽の判別つかないと混乱するだけですよね。 単純に、ちゃんとメッセージを読んでいるかどうか、自分の手元で何が起きたのかを正確に把握できているかどうかだと思います。 エラーになる時って、同じ現象を経験していることは皆無です。初心者でもそうでなくても、同じように初めてのエラーに遭遇しているのです。エラーメッセージをちゃんと読んで、調べ、自分の起きている現象と情報を照らし合わせて、そこに書いてある意味を正確に把握できるかどうかだと思います。 sskさんの場合はちゃんとエラーメッセージの記述してくれていますが、回答者として利用していると、そもそも質問文にエラーメッセージを書かない人がかなり見受けられます。書かないということ=「読んでいない」or「読もうともしていない」と思うので、そもそも適性がないのでは?と思うことしばしば。
ssk

2016/12/14 05:05

>自分の手元で何が起きたのかを正確に把握できているか 仰る通りです。なんとなくの理解で手を動かし始め、エラーエラーエラーでした。 早く開発環境を作りたいと思う気持ちが先行していたからだと思います。反省します。 お陰様でなんとか開発環境を作ることができました。 本当にありがとうございました。
退会済みユーザー

退会済みユーザー

2016/12/14 11:51

ともかく、良かったですね! じゃあ、一旦まっさらにして、再度構築してみましょう。 繰り返しできないと覚えたことにはならないので。 ↑冗談ですが、会社ではこんな感じで叩き込みます。
guest

0

エラーの内容は、phpのintl拡張が入っていないというものなので、php-intlパッケージをインストールすれば次に進めると思いますよ。

投稿2016/12/13 05:20

popobot

総合スコア6586

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

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

ssk

2016/12/13 05:24

icchii様 すでに sudo port install php70-intl をターミナルで実行しており sudo find / -name *intl.so で探すと find: /dev/fd/name: No such file or directory find: /dev/fd/name: No such file or directory /opt/local/lib/php70/extensions/no-debug-non-zts-20151012/intl.so と返ってきます。
popobot

2016/12/13 05:30

なるほど、了解です。インストールしたけど認識されていないということですね。 ・Apacheを再起動しても変わらないですか? ・以下のコマンドを実行してintl.soを読み込む処理があるか探してみてください。 $ grep -rI intl.so /opt/local/etc/
ssk

2016/12/13 05:33

Apacheを再起動してもエラー文に変化なしでした。 grep -rI intl.so /opt/local/etc/ を実行したところ、読み込む処理もなかったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問