Symfoware

Symfowareについての考察blog

PHPフレームワーク「Laravel」をDebian 7 + nginx + php-fpmで動作させる

「Laravel」というPHPフレームワークが最近人気だそうです。
http://laravel.com/

Debian 7 + nginx + php-fpmの環境で動かしてみたいと思います。




nginx + php-fpm



こちらを参考にインストールします。
Debian 7 + nginx + php-fpmな環境を構築する

簡単に手順を羅列しておきます。

nginxとphp-fpmインストール。


# apt-get -y install nginx php5-fpm




php-fpmを起動&自動起動設定


# /etc/init.d/php5-fpm start
# insserv php5-fpm




nginxの設定ファイル編集。


# vi /etc/nginx/sites-enabled/default




以下の内容を追記。


location ~ \.php$ {
    # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}





nginx起動


# /etc/init.d/nginx start




動作確認用にphpinfoを表示。


# echo '<?php phpinfo(); ?>'>/usr/share/nginx/www/info.php




ブラウザで以下のURLを表示して、phpinfoの内容が表示されればOK。

http://[サーバーIP]/info.php







Composerのインストール



Laravelは「Composer」を使用しているそうです。
https://getcomposer.org/

これはPHPライブラリの依存関係を解決するツールみたいですね。
まず、Composerをインストールします。

https://getcomposer.org/doc/00-intro.md



必要なライブラリをインストール。


# apt-get -y install php5-cli curl




composerの取得とビルド


# curl -sS https://getcomposer.org/installer | php

(こんな表示になる)
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /root/composer.phar
Use it: php composer.phar




どこからでも使えるよう、composer.pharを/usr/local/bin/composerに移動。


# mv composer.phar /usr/local/bin/composer




試しにバージョンを表示してみます。


# composer -V
Composer version 4ecdbf89c4a3d1e5dfe73c57e3202a5e2a18c87e 2014-07-28 20:12:27










Laravelプロジェクトの作成



Composerを使用して、Laravel本体とLaravelが依存しているライブラリを取得します。
その前に、必須のライブラリなどをインストール。


# apt-get install -y php5-mcrypt php5-json git




※mcryptをインストールしていないと、こんなエラーが表示されました。


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





プロジェクトを作成するパスに移動。


# cd /usr/share/nginx/www





composer create-project laravel/laravel [フォルダ名] --prefer-dist



というコマンドで、[フォルダ名]のところにLaravelプロジェクトが作成されます。
今回、test-prjという名前にしてみました。


# composer create-project laravel/laravel test-prj --prefer-dist



これで「/usr/share/nginx/www/test-prj」に必要なファイル一式が
展開されました。


長いですが、実行時のコンソールの内容はこんなかんじです。


# composer create-project laravel/laravel test-prj --prefer-dist
Installing laravel/laravel (v4.2.0)
- Installing laravel/laravel (v4.2.0)
    Loading from cache

Created project in test-prj
Loading composer repositories with package information
Installing dependencies (including require-dev)
- Installing symfony/translation (v2.5.2)
    Loading from cache

- Installing symfony/security-core (v2.5.2)
    Loading from cache

- Installing symfony/routing (v2.5.2)
    Loading from cache

- Installing symfony/process (v2.5.2)
    Loading from cache

- Installing psr/log (1.0.0)
    Loading from cache

- Installing symfony/debug (v2.5.2)
    Loading from cache

- Installing symfony/http-foundation (v2.5.2)
    Loading from cache

- Installing symfony/event-dispatcher (v2.5.2)
    Loading from cache

- Installing symfony/http-kernel (v2.5.2)
    Loading from cache

- Installing symfony/finder (v2.5.2)
    Loading from cache

- Installing symfony/dom-crawler (v2.5.2)
    Loading from cache

- Installing symfony/css-selector (v2.5.2)
    Loading from cache

- Installing symfony/console (v2.5.2)
    Loading from cache

- Installing symfony/browser-kit (v2.5.2)
    Loading from cache

- Installing swiftmailer/swiftmailer (v5.2.1)
    Loading from cache

- Installing stack/builder (v1.0.2)
    Loading from cache

- Installing predis/predis (v0.8.7)
    Loading from cache

- Installing phpseclib/phpseclib (0.3.7)
    Loading from cache

- Installing patchwork/utf8 (v1.1.25)
    Loading from cache

- Installing nesbot/carbon (1.10.0)
    Loading from cache

- Installing monolog/monolog (1.10.0)
    Loading from cache

- Installing nikic/php-parser (v0.9.5)
    Loading from cache

- Installing jeremeamia/superclosure (1.0.1)
    Loading from cache

- Installing filp/whoops (1.1.2)
    Loading from cache

- Installing ircmaxell/password-compat (1.0.3)
    Loading from cache

- Installing d11wtq/boris (v1.0.8)
    Loading from cache

- Installing symfony/filesystem (v2.5.2)
    Loading from cache

- Installing classpreloader/classpreloader (1.0.2)
    Loading from cache

- Installing laravel/framework (v4.2.7)
    Loading from cache

symfony/translation suggests installing symfony/config ()
symfony/translation suggests installing symfony/yaml ()
symfony/security-core suggests installing symfony/validator (For using the user password constraint)
symfony/security-core suggests installing symfony/expression-language (For using the expression voter)
symfony/routing suggests installing symfony/config (For using the all-in-one router or any loader)
symfony/routing suggests installing symfony/yaml (For using the YAML loader)
symfony/routing suggests installing symfony/expression-language (For using expression matching)
symfony/routing suggests installing doctrine/annotations (For using the annotation loader)
symfony/event-dispatcher suggests installing symfony/dependency-injection ()
symfony/http-kernel suggests installing symfony/class-loader ()
symfony/http-kernel suggests installing symfony/config ()
symfony/http-kernel suggests installing symfony/dependency-injection ()
predis/predis suggests installing ext-phpiredis (Allows faster serialization and deserialization of the Redis protocol)
predis/predis suggests installing ext-curl (Allows access to Webdis when paired with phpiredis)
phpseclib/phpseclib suggests installing ext-gmp (Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.)
phpseclib/phpseclib suggests installing pear-pear/PHP_Compat (Install PHP_Compat to get phpseclib working on PHP < 4.3.3.)
patchwork/utf8 suggests installing ext-intl (Use Intl for best performance)
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
monolog/monolog suggests installing raven/raven (Allow sending log messages to a Sentry server)
monolog/monolog suggests installing doctrine/couchdb (Allow sending log messages to a CouchDB server)
monolog/monolog suggests installing ruflin/elastica (Allow sending log messages to an Elastic Search server)
monolog/monolog suggests installing ext-amqp (Allow sending log messages to an AMQP server (1.0+ required))
monolog/monolog suggests installing ext-mongo (Allow sending log messages to a MongoDB server)
monolog/monolog suggests installing aws/aws-sdk-php (Allow sending log messages to AWS services like DynamoDB)
monolog/monolog suggests installing rollbar/rollbar (Allow sending log messages to Rollbar)
d11wtq/boris suggests installing ext-readline (*)
laravel/framework suggests installing doctrine/dbal (Allow renaming columns and dropping SQLite columns.)
Writing lock file
Generating autoload files
Generating optimized class loader
Compiling common classes
Compiling views
Application key [ub3WJ8cuuERVF3jw8vQzsWq8W29VSkyH] set successfully.







最後に、app/storageに書き込み権限を与えます。
これを実行していないと、プログラム実行時エラーになります。


# chmod -R 777 test-prj/app/storage




ブラウザで、http://[サーバーIP]/test-prj/public/index.phpを表示すると、
「You have arrived.」と表示されました。

445_01.png


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/08/05(火) 22:12:12|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<PHPフレームワーク「Laravel」でHello World! | ホーム | プログラマのためのBootstrap入門 その11 サイドメニュー>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1458-4b6313fc
この記事にトラックバックする(FC2ブログユーザー)