忍者ブログ
プログラマ、ララ・ベル子さんのゆるふわ奮闘記。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Laravelの環境(environment)の設定について

ちょりっす。ベル子です。
今回はベル子のどじっ子ぶりがマジぱないです。
「こいつ、ぷぷぅっw」っと思いながら読んでくれると嬉しいです。

私ってほら、失敗して覚えていくタイプなんで!!
私ってほら、失敗して覚えていくタイプなんで!!
私ってほら、失敗して覚えていくタイプなんで!!

ふぅ。

突然ですが皆さん、environment は何と読むか分かりますか。
「簡単や!エンビロンメントやろ!!」と思った、そこのあなた、

ブブーーーーーーーーー
マイナス500点です!



正解は「インヴァイラメン」です。
発音記号はこちら↓
ɪnvάɪ(ə)(n)mənt(米国英語)envάɪ(ə)(n)mənt(英国英語)/
だいたいeで始まる英単語は日本語の「エ」ではなく「イ」と発音するので注意です。

イギリスでは「エ」なんですね。発音記号を調べてみて、はじめて知りました。

でもeconomyは、どちらも「イ」のようです。
ɪkάnəmi(米国英語)ɪkˈɔnəmi(英国英語)
カタカナにするなら「イカナミー」でしょうか。

どうですか。私って博識でしょ?(ドヤ顔)


そんな博識なベル子に、「laravelのマイグレーションを使ってDBテーブル作っておくれ」という指令がボスから出されました。
いくら新人プログラマとはいえ博識なベル子ですから、マイグレーションについてはドキュメントを読破済みです!ゆえにDBテーブルは、なんとか一人で作ることができました(はぁはぁ)。

( その後、indexの付け方が間違っていてマスターPG(匠)の方に怒られたことは、ここだけの秘密です(///ω///) 

たぶんテーブルは作れたと思うので、確認したいのが乙女心です。
DBの設定ファイルはapp/config/database.phpに書いてあるということは、すでに頭に入っている私ですから、mysqlのデータベース名、ユーザ名、パスワードをチェックし、コマンドーんをしてみたわけです。

「あれ? データベースがない」

自分が間違っていたのかなと思いデータベース名を確認して接続ということを5回ほど繰り返してみました。
なんということでしょう。あるはずのデータベースが見当たらないではありませんか!

困ったときは匠に聞いてみるしかありません。

べ「あの....データベースが表示できなくて.....」
匠「なんのデータベース?」
べ「forgeってデータベースなんですけど.....」
匠「え?もう1回言って」
べ「ふぉーじ?(まさかフォルゲ?)」
匠「え?(何いってんだコイツ)」
べ「え?(自分で設定したんですよね?)」
匠「.......ここに書いてある◯◯ってやつだから」

DBの設定は本番環境とテスト環境などで違うものですよね。
Laravelには、こういった複数の環境設定を切り替えるシステムがあるのです。
超便利ですね。さすがフレームワーク。

ベル子はそのことを、そのときまで全く知らなかったんです。
きゃーやめてぇ!そんな顔で見ないでぇ!

よく考えたらforgeではないことくらい気づけるはずです。
デフォで書いてあるやつだからです。
なんという勘の鈍さ!!
「もしかして....フォルゲ?」とか言わなくてよかったです。

匠が教えてくれたファイルを確認して無事にDBにアクセスできたベル子ですが、なんのことやら分かっていないので、おうちでこっそり調べてみました。

星は何でも知っている。google先生も何でも知っている!
イブンバトゥータスカラベルージュ!

Ah-ha!!
にゃるほど。
ルートディレクトリで

$ php artisan env

とコマンドーんすると、今、適用されている環境名が表示されるんですね!
そして、環境の設定はbootstrap/start.phpにマシンのホスト名を設定すればよいようです。
さっそく私もマイlaravelに設定してみます。

php artisan envすると、なぜか Current application environment: production と出てきます。
デフォで設定されている


$env = $app->detectEnvironment(array(

 'local' => array('homestead'),

));

というのはhomestead環境の人のホスト名のようですね。
現在の私のホスト名を調べてみましょう。

$ hostname


そのままなコマンドをどーんです。

localhost.localdomain


へえ〜。ホスト名、なんかウケる。

こちらの動画を確認したところ
何の環境にも当たっていない場合、Laravelでは、デフォルトでproduction環境となるそうです。

$env = $app->detectEnvironment(array(

	'local' => array('homestead'),
	'development' => array('localhost.localdomain'),

));

このように追記して、php artisan envしてみると、

Current application environment: development


と表示されました!やったー♪

ちなみに

App::environment();


とすると環境名の取得ができるので、viewで確認することもできます。

あとは、app/config/localフォルダをコピーしてdevelopmentフォルダを作ります。
その中のdatabase.phpファイルを編集して自分の環境と合わせてください。

これで私も匠と同じことができました。(ドヤ顔)
さらに、よく意味が分かってなかったことも全くバレずに済みました。

Laravelって本当に便利ですね!


▼参考にしたサイト
Laravel 4 環境ごとの設定
Laravel4で実行環境の設定を変更する


では皆さん、こんな私ですがこれからも応援よろしくお願いします!

拍手[0回]

PR

MacからVirtualBoxのCentOSにSambaで接続することにした

皆さま、お久しぶりです。本日2回目の私です。
新人なもので書き留めることが多いんですね。

そして、お気づきだと思いますが、まだ環境しか作っていないんですね。
これが何かと言いますと、、、、、、伸びしろですねぇっ!!

今回は以下のブログを見ながらやったら、私(のようなど新人で)もCentOSにSambaで接続できたよっていうご報告です。

Mac から VirtualBox の CentOS 5.9 のすべてへ Samba からアクセスします♪

本当に、上から流れに身をまかせてコマンドをコピペするのみですので、何も付け加えることはありません。
今までCyberduckで直開きして保存という流れでも(大したことしてなかったので)何も不自由には思ってなかったのですが、ガツガツ作り込むにはややウザいので設定してよかったです。

それでは、また次の記事で!



拍手[0回]

Laravelでroutingは合ってるはずなのに404not foundが出るときにやること

暑いですね!
家族全員が昼寝をするという稀にみる好機に恵まれたベル子です。
こんなときにブログを書かなくて、いつ書くんすか!
\今です!/

本日のテーマはタイトルのとおりですが、大事なことなのでもう一度言います。

Laravelでroutingは合ってるはずなのに/(ルート)以外で404 not foundや500 Internal Server Error が出るときにやること!


簡単にまとめると→このやりとりを参照するだけです!
ですが、さすがにリンクを貼って終わりというのは不親切なので、やることを抜き出してみます。

[やること1]
artisanコマンドでルートが本当に存在するのか確認してみる。

一番ハマりやすい罠といえば「私が間違うはずがない」という自信。

php artisan routes

[やること2]
httpd.confを確認してみる。

sudo vim /etc/httpd/conf/httpd.conf

httpd.confの内容が以下になっているか確認。
DocumentRootは各人の環境に合わせてくだされ。
DocumentRoot "/var/www/html/laravel/public/"

<Directory "/var/www/html/laravel/public">
Allowoverride All
</Directory>

[やること3]
laravel/public配下の.htaccessの内容が以下になっているか確認する。

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</ifModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</ifModule>


500 Internal Server Errorの場合はRewriteRuleを

RewriteRule ^ /index.php [L] 

RewriteRule ^(.+)$ /index.php/$1 [L] 


のように変えてみるとエラーが消えるかもしれないです。
(教えてもらったことをまるで自分発信かのように差し込みました。てへぺろ)

▼参考
500 Internal Server Error for all routes other than '/'

[やること4]
app/storageのパーミッションを確認する。

ls -l app



それでもうまくいかない場合は
お昼寝かお散歩でもして気分をリフレッシュしてください。

間違っても横山光輝の三国志を読み始めてはいけません。
あれで私は、連日、満喫泊をせざるを得なくなるという壮絶な日々を送ることになりました。

孔明がまさかあんな方法であんなことをするなんて.....
おっと、いけない。

じゃあ、またね!

拍手[25回]

MacでVagrant使ってLaravel用VirtualHostの設定

ちわっす!
新人プログラマー兼どじっこ担当のベル子です。

「Laravelの勉強して!」とボスに言われたので
「どどどどのように.......?」と震えながら聞いてみたところ
要約すると「ggrks!」ということだったので
「そうだと思ってたけど念のため聞いたんだからねっ!念のためだからねっ!」とデキる女を装ったベル子です。
あぶなく◯oogleのURLを送らせてしまうところでした。セーーーフ!

とりあえず入門的な技術書には
このサイトを参考にするといいよ的なヒントが散りばめられているはずなので
◯mazon先輩がおすすめしてくる唯一無二っぽい本をゲットしました。
ふぅ〜ひと安心。

早速、マイMacの仮想マシンにLaravelをインストールだぜっ!と思ったのですが、

Mcrypt PHP extension required.
Script php artisan clear-compiled handling the post-install-cmd event returned with an error

Mcryptがないんだけど〜と怒られました。
なるほど。インストールですね。大丈夫、得意です!
と思って

$ yum install php-mcrypt

とやってみたところ、また怒られました!

この辺を参考にEPELとかいうのをインストールせよとのことで色々やってみるも
まったく書いてあるとおりになりません。なぜ。。たすけ、、、て、、、。

ただ、ネットをさまよっているとlibmcryptとphp-mcryptをインストールすればいいだけのような気がしてきました。
そうだ、wgetしてrpmでインストールすればいいんや。
なんとなく私の女の勘がそう言っています。

ということで下記のサイトでlibmcryptと自分のphpのバージョンのmcryptを探してみます。

ひとまずCentOSのバージョンくらいは確認したほうがよさそうなので以下のコマンドをどーんします。phpのヴァージョン確認方法は皆さまご存知のとおりです。

$ cat /etc/redhat-release 

そしてrpmファイルを探します。

これとか
http://rpm.pbone.net/index.php3?stat=3&limit=3&srodzaj=1&dl=40&search=libmcrypt&field[]=1&field[]=2

これとか
http://rpm.pbone.net/index.php3?stat=3&limit=2&srodzaj=1&dl=40&search=php-mcrypt&field[]=1&field[]=2

/CentOS_CentOS-6/x86_64/
/CentOS_CentOS-6/i686/

ふぁっ!どちらも2種類あります。
私のCentOSの何かしらを確認しどちらかを選ばねばならないに違いありません!!

$ uname -a


コマンドーん。x86_64でいいらしいです。
そして、リンク先のdownloadのURLでwgetしてrpmで突っ込みます。

$ rpm -ivh libmcrypt-2.5.8-4.fc7.x86_64.rpm
$ rpm -ivh php-mcrypt-5.4.40-1.el7.remi.x86_64.rpm

そしてさらに恐る恐るLaravelをインストールしてみます。

$ composer create-project laravel/laravel {directory} 4.2 --prefer-dist

{directory}の部分はお好きなプロジェクト名をつけてください。
私はひとまずlaravelとしました。
私は4.2をインストールしていますが、5.0をインストールするならこちらを参考にLaravelコマンドを使ったほうが速くて楽チンでした。

インストールできました!
できたできたぁーーー♪
なんかよく分からないけどインストールできたぁーー♪
(記憶を記事にしているため不備があったら申し訳ありませんが、概ねこんな感じでした。
記事にすると10分ほどの出来事のようですが、所用時間はお察しのとおりです。)

いやー長い道のりでしたね。
とりあえずindex.phpが見れるのか確認してみましょうね。
仮想マシンのipにはdev.honyahonya.comというホストを設定してあり
laravelというプロジェクト名でインストールしたので
以下のアドレスにアクセスすれば表示されるはずです。

dev.honyahonya.com/laravel/public

どーん。
Error in exception handler.

またエラーです!もはやエラーを見ても動揺すらしなくなりました。
app/storageを読み書きできるようにしないとダメらしいです。
本にも「storageディレクトリ下へアクセスできるようにパーミッションを設定」とちゃんと書いてあるじゃありませんか。
どじっこ担当の名に恥じないうっかりぶりです。

$ chmod -R 777 app/storage

さて改めてどーん。
わーい、表示されましたぁ♪

そして本には「publicディレクトリを仮想ホストのアクセス先に指定してください。」とさらっと書いてあります。

5度見くらいしてみました。
間違いありません!書いてあるのはそれだけです!
なんというクールジャパン。

なんとなく知っているふわっとした知識によると「なんか面倒くさい作業」のはずです。
困りました。
なんか面倒くさい作業なので、また今度にしようという気持ちになりました。

あれからしばらく経ち、やる気が出てきたので再チャレンジです。
お気づきでしょうか。

ここからが本題です。

まずは大切なファイルをいじるので、バックアップをとります。

$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd_org.conf


いよいよ編集です。

$ sudo vim /etc/httpd/conf/httpd.conf


こちらのサイトを参考にhttpd.confに下のように書き加えます。

ServerName dev.honyahonya.com
NameVirtualHost *

<VirtualHost *>
DocumentRoot "/var/www/html"
ServerName dev.honyahonya.com
</VirtualHost>

<VirtualHost *>
DocumentRoot "/var/www/html/laravel/public"
ServerName dev.laravel.com
</VirtualHost>


ファイルを保存したらapacheを再起動します。

$ sudo httpd -k restart


次にVagrantfileに書いてあるIPアドレスを確認します。
デフォルトのままだと192.168.33.10のはずです。

次はホストの設定ですが、こちらのページを参考にプラグインをインストールしてください。

192.168.33.10 dev.honyahonya.com
192.168.33.10 dev.laravel.com
この2つを登録します。

dev.laravel.comにアクセスしてLaravelのロゴ、
dev.honyahonya.comにアクセスして別のトップページが表示されていれば完了です!

ふぅ〜長かったですね。
いざやってみたら、そんなに面倒じゃありませんでした。
食わず嫌いはよくありません。

まだインストールして表示できるようになっただけという事実に愕然としますが、
これからいろいろと動かしながら勉強したいと思います!


今回は、話が長くなる&私は仮想マシンのセットアップ済みだったので
ローカル開発環境の構築については触れませんでしたが、
先輩に教えてもらったところによるとLaravel用にセットアップしてあるVagrantのBoxがあるらしいので仮想マシンのセットアップからやる人はそちらの手順でやったほうがいいと思います。
ただ、WebサーバーがApacheではなくNginxらしいので、
Apacheで構築したい方がいたら下記のLaravel用にセットアップしてあるVagrantfileを使ったほうがいいと思います。
というかLaravelとその他で別の仮想マシンをセットアップすればよかったのかもしれませんが、
そんなことは今更、気にしないようにします。
もっとお手軽でカッコイイ方法があったら、どなたか教えてください。

▼参考サイト
・homestead(Laravel公式のVagrantのBoxを使って仮想マシンのセットアップをする方法)
http://readouble.com/laravel/4/2/0/ja/homestead.html

・Laravel用にセットアップしてあるVagrantfileを使う方法
http://kore1server.com/141/Vagrant%E3%81%AEUbuntu12.04%2BLaravel4%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9

・Vagrantのインストールやセットアップについて(手順の参考)
http://qiita.com/inouet/items/b36638adc2b5772db457

・いろんなVagrantfile
http://www.engineyard.co.jp/blog/2013/vagrantfile-for-php/

・Laravelのインストールやセットアップについて
http://readouble.com/laravel/4/2/0/ja/quick.html


では、またね!!

拍手[1回]

記事が一つもないと寂しい人みたいだから

どうも!
新人プログラマのベル子です。

これから新人プログラマ兼どじっ子担当として
皆さんの役に立つことや役に立たないことを記事にしていくつもりなので、
よろしくです。

正直、ブログって苦手です!
でも、せっかく書くからにはちょっとは面白いこと見つけて書きたいなぁとか思っちゃうわけです。
そういう精神が筆を重くさせる要因に違いないので、
ゆるっとふわっと、ちょっとしたことなんかを記事にしたいと思います。

プログラマの前はフロントエンドエンジニアをしてたので、フロント周りのことも書いていこうと思います。
サーバーサイドのほうの知識もがんばって増やしていくぞーー。おーー。

会社勤めって何年ぶりだろうか。
ずっとフリーランスだったんで、とにかく仕事と生活の分離ってほとんどなかったんですよ。
事務所いって仕事して、帰って家族のことやって、夜は家に戻って別の仕事をやってみたいな。
まずそこから右往左往していますw
集団生活に慣れてない子みたいになってないかなと。

でも会社っていいですね。なんだか楽しいです。
なんといっても毎日コーディングし放題ですしね!

というわけで、突然ですがこの辺で挨拶を終わります。


またね!!

拍手[0回]