CakePHPで開発する必要があったので
ローカルPC(Mac)にインストール
また、今回はApacheではなくNginxを使う必要があった為
それも合わせてメモ
1.CakePHPをダウンロード
CakePHP本体をダウンロードします。
http://cakephp.jp/
今回はリポジトリに追加したかったので
回答して追加しました。
$ unzip cakephp-2.4.9.zip $ cd cakephp-2.4.9/ $ mv * ~/project/
2.Nginxの設定を修正
Nginxのドキュメントルートを変更します。
あとPHPが動作するように設定も追記
server { listen 8080; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { #root html; root ~/cakephp/app/webroot; # ここがドキュメントルートに #index index.html index.htm; index index.php # ここも修正 }
この設定は意味不明でしたが、下記サイトのおかげで理解できました。
ありがとうございます。
Nginx + php-fpm でWordPressを動かしてみる
location / { #root html; #index index.html index.htm; try_files $uri $uri/ /index.php?$uri&$args; # ??? }
コメントアウトされているところをすべて外す。
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; include fastcgi_params; }
3.権限の変更
なんかNginxのPHP-FPM => 多分 [include fastcgi_params;]のこと?
が書き込めるようにしないといけないので、権限を変更しなければならない。
あり?Nginxのユーザーはnobodyなんだけど・・・?
まぁいいや。
$ chown -R nobody ~/cakephp/app/tmp $ chgrp -R nobody ~/cakephp/app/tmp $ chmod -R 777 ~/cakephp/app/tmp
これでいいかな。
4.確認
では。Nginxを起動して確認してみます。
$ nginx -t
うむ、エラーはでてないっぽい
$ nginx
よし、起動はしました。
アクセス。
あり?
Nginxデフォルトじゃね?これ?
CakePHPが映らん。。。
エラーか・・・orz
5.Nginx初心者がハマる事項の解決方法(と思います)
うむむ。画面だけじゃよくわからないのでエラーログを吐く設定を追加
どこに出力するかは面倒なので、ザ・Linuxいつもの場所に。
error_log /var/log/nginx/error.log
んで、error.logの中身
[error] 94481#0: *1 kevent() reported that connect() failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080"
たぶんだけど、"fastcgi://127.0.0.1:9000"の
ポートが空いてないんだろうな。って直感だけど。
これってなんでしょう??
ググりました。
ググってきました。
php-fpmが立ち上がってないっぽい
どこかにあるphp-fpmの設定ファイルを探さなければならない。
どこだよ。
面倒なので、やっつけ手段
$ php(ここでタブ連打) php php-config php-fpm phpize phpl phplint # (´ー`*)フッ $ php-fpm ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2) ERROR: failed to load configuration file '/private/etc/php-fpm.conf' ERROR: FPM initialization failed
みつけたったった!!・・・・あれ?
無いっていっているおorz
しかし、
$ ls /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf.default
デフォルトファイルがあんじゃねーかよ
コピーして.confファイルを作成
$ cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
もっかい起動してみる
!
やったお!!!
それではブラウザを再度確認
orz
な~んデーやねーん
めげずにerror.logを確認
[error] 94481#0: *13 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8080"
さっきとは違うログ
今度はスクリプトディレクトリがちゃんと指定されていないよ。だってよ。
Nginxの設定ファイルの
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
これの指定の仕方がまずいっぽい
とは言え、わからないので、ドキュメントを熟読
まだよくわかってないけど
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
これに変更しました。
Nginx再起・・・・おぉおおおおおおおお!!???
ちょっとまてぇええええいい
気づいちゃった。気づきました。I noticed.
location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
ここですよ。ここここ!!
root html;
これでしょ。これじゃないの?
これ多分ドキュメントルートでしょ!!?
すぐに修正
root ~/cakephp/app/webroot;
次こそ再起動
そして・・・・!
やっとCakePHPとごたぁあああああああいめええええええん!!!
できたぁああああああああああああああああああああ!!!!
めっちゃエラーでてるけどね!!!!!orz
6.CakePHPのエラーを無くす
パない。
次はCakePHPエラー。どんどんいくよー
まず一つ目
Notice (1024): Please change the value of 'Security.salt' in APP/Config/core.php to a salt value specific to your application. [CORE/Cake/Utility/Debugger.php, line 845]
しらべてみると
「ハッシュを生成するときのセキュリティ文字列がデフォルトのままでは危険だから変更しなさい」というメッセージ。
らしい。
というわけで、
$ grep "Security.salt" ~/cakephp/app/config/core.php Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
これを適当な文字列に修正。
次!!
2つ目は
Notice (1024): Please change the value of 'Security.cipherSeed' in APP/Config/core.php to a numeric (digits only) seed value specific to your application. [CORE/Cake/Utility/Debugger.php, line 849]
これも同じっぽい
1つ目と同じ手順で見つけて修正
3つ目
Warning (2): include_once(~/cakephp/app/Config/database.php): failed to open stream: No such file or directory [CORE/Cake/Model/ConnectionManager.php, line 67]
database.phpってファイルがないってお!!
しかし、defaltファイルが存在したので、コピーして作成
$ cp ~/cakephp/app/Config/database.php.default ~/cakephp/app/Config/database.php
修正かんりょーーーーーーーーーーーー
疲れた・・・orz
しかし、メッセージに黄色がある場合はまだとのこと。
だけど今回はここまで。今度はMySQLじゃないかな。