いろいろ~備忘録~

WEBエンジニアによる記録

勉強になったことを記録

NginxでPHPを実行~ローカル環境(CentOS)~

wakuwakupush.hatenablog.com
※Nginxのインストールがまだの場合は、上記の記事を参考にしてみて下さい。

1.php-fpmの設定

php-fpmをインストールします。

$ sudo yum install -y php-fpm

2.php用に設定を変更をします。
$ sudo vi /etc/php-fpm/www.conf

// デフォルトのapacheからnginxに変更
user = apache → nginx
group = apache → nginx

3.php-fpmの起動
$ sudo /etc/init.d/php-fpm start

// nginxを再起動
$ sudo service nginx restart

4.php-fpmの自動起動の設定

OS起動時にPHP-FPMが自動起動するように設定します。

$ sudo chkconfig php-fpm on

php-fpmが自動起動するかを確認します。3:onであればOKです。

$ sudo chkconfig --list php-fpm
php-fpm        	0:off	1:off	2:on	3:on	4:on	5:on	6:off

chkconfigコマンドを実行時に表示される0〜6の数字は、OSの動作モードを表すランレベルです。
webkaru.net

5.確認用のindex.phpを適当な場所に作成

nginxとphp-fpmが動作しているか確認するためのindex.phpを適当な場所に作成します。
以下のディレクトリにindex.phpを作成します。

$ mkdir /var/www
$ cd /var/www/

// index.phpを作成
$ vi index.php

// index.phpを編集
  <?php

     phpinfo();

  ?>

6.Nginxの設定の変更

ドキュメントルートの設定とphp関連の設定のみします。

$ sudo vi /etc/nginx/conf.d/default.conf

// 追記
server {

    location / {
        root   /var/www;
       index  index.php;
    }

    location ~ \.php$ {
        root           /var/www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include        fastcgi_params;
    }
}
7.Webブラウザで確認

上記の変更が完了したら、nginxを再起動します。

$ sudo service nginx restart

Webブラウザで確認
http://192.168.33.10/index.php
phpinfo()の結果が画面に表示されたらOKです。
f:id:takahiro0078:20161212144256p:plain

【FuelPHP】task(タスク)を実装

タスクとは

コマンドラインから実行されるかまたは cron ジョブとしてセットアップされるクラス

・ fuel/app/tasks ディレクトリに配置

・定期的に処理を実行したい時に使用

http://fuelphp.jp/docs/1.8/general/tasks.html:公式リファレンス

robotsを起動

fuelプロジェクトのディレクトリ直下に移動したらoilコマンドを実行します。

$php oil refine robots
 
                    "KILL ALL HUMANS!"
                      _____     /
                     /_____\
                ____[\*---*/]____
               /\ #\ \_____/ /# /\
              /  \# \_.---._/ #/  \
             /   /|\  |   |  /|\   \
            /___/ | | |   | | | \___\
            |  |  | | |---| | |  |  |
            |__|  \_| |_#_| |_/  |__|
            //\\  <\ _//^\\_ />  //\\
            \||/  |\//// \\\\/|  \||/
                  |   |   |   |
                  |---|   |---|
                  |---|   |---|
                  |   |   |   |
                  |___|   |___|
                  /   \   /   \
                 |_____| |_____|
                 |HHHHH| |HHHHH|

アスキーアートのロボットが表示されます。

実際にタスクを実装

まず、 fuel/app/tasks 配下に任意のファイルを作成します。
今回はtest.phpを作成します。

タスククラスの書き方は fuel/app/tasks ディレクトリに、namespace “Fuel\Tasks” を指定したクラスを定義します。
処理は、タスククラスのインスタンスメソッドに実装します。

<?php

namespace Fuel\Tasks;

class Test
{
    public function run()
    {
        echo "hello!";
    }

    public function set_user($name)
    {
        echo "hello!".$name;
    }
}

この例では、run メソッドと set_user というメソッドを実装します。


以下のコマンドでタスク名だけを用いると、メソッド "run()" を参照します。

$php oil refine test
 hello!


次にset_user メソッドを実行します。
set_user メソッドはパラメータを渡すことができます。

$php oil refine test:set_user "world!"
 hello!world!

上記のようにコマンドを叩くと指定したパラメータが渡されます。

まとめ

  1. php oil refine クラス:ファンクション でタスクを実行可能
  2. タスクには引数を与える事が可能
  3. タスクファイルは fuel/app/tasks で管理される