いろいろ~備忘録~

WEBエンジニアによる記録

勉強になったことを記録

Vagrantで作成したCentOSにAnsibleをインストール

条件として

先にVirtualBoxtとVagrantのインストールを済ましておいて下さい。
まだの場合は、下記の記事を参考にしてみて下さい。
wakuwakupush.hatenablog.com

1.CentOSVirtualBoxへの登録

VirtualBox用boxファイルを
varant box add {適当な名前} {boxファイルURL}
で取得し、VirtualBoxに登録します。
今回はCentOS65を使用します。

VirtualBoxVagrantのインストール済みとして進めます。

vagrant box add centos_ansible https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

2.Vagrantファイルの作成

次に、適当なところに作業ディレクトリを作成して、その中にVagrantファイルを作成します。

// vagrantfileを作成
$ vagrant init centos_ansible

// vagrantfileが存在するか確認
$ dir

3.Vagrantファイルを編集

vagrantfile

// VMのIPアドレスを設定 コメントアウト 29行目
config.vm.network "private_network", ip: "192.168.33.10"

// Vagrantfileが配置されているディレクトリの、provision.sh(シェル)を実行 67行目
config.vm.provision :shell, :path => "provision.sh"

次に実行するprovision.shを、Vagrantfileと同じディレクトリに作成します。
Ansibleのインストールを記述しましょう。

provision.sh

// ansibleインストール追記
sudo yum install -y ansible

最初にvagrant upを行った際に、provision.shが実行されてAnsibleがインストールされるはずです。

4.Ansibleがインストールされたか確認

下記のコマンドで仮想マシンを立ち上げます。
※Vagrantfileのディレクトりに移動してから行ってください。
コマンドを実行すると仮想マシンが立ち上がり、シェルによってAnsibleのインストールなどが始まります。

// 仮想マシンを起動
$ vagrant up

仮想マシンが立ち上がったら、ssh接続をします。
Teratermなど、他のクライアントソフトで接続する場合は、
 Vagrantfileのconfig.vm.networkで設定したIPアドレスで接続できます。

ssh接続したら、下記コマンドでAnsibleがインストールされたか確認します。

$ ansible --version

Ansibleのバージョンが表示されればOKです。
もし表示されなければ、provision.shが存在するディレクトリ上で下記コマンドを実行して下さい。

$ vagrant provision

再度、Ansibleがインストールされたか確認します。
Ansibleのバージョンが表示されればOKです。

以上になります。お疲れ様でした。

Vagrantで作成したローカル環境にNginxをインストール

wakuwakupush.hatenablog.com
※環境構築がまだの場合は、先に上記の記事から環境を構築してみて下さい。

1-1.Nginxのインストール

yumリポジトリCentOSに登録します

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm


Nginxをyumでインストール

sudo yum install nginx


バージョン確認

nginx -v

1-2.Nginxの起動

バージョン確認ができたら、以下のコマンドで起動をします。

sudo service nginx start


Webブラウザで確認します。

[http://192.168.33.10/]

※「Welcome to nginx on EPEL!」と表示されます。

VirtualBox+VagrantでCentOS環境構築

VirtualBoxインストール

OSに合ったVirtualBoxをダウンロードしてインストール
Downloads – Oracle VM VirtualBox

Vagrantインストール

OSに合ったVagrantをダウンロードしてインストール
www.vagrantup.com

1-1. CentOSVirtualBoxへの登録

VirtualBoxVagrantのインストールが完了したら、VirtualBox用boxファイルを
varant box add {適当な名前} {boxファイルURL}
で取得し、VirtualBoxに登録します。

コマンドプロンプトより

vagrant box add CentOS65 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box

1-2.Vagrantファイルの作成

適当にディレクトリを作成して、その中にVagrantファイルを作成します。

// 新規ディレクトリを作成
mkdir centos

// 作成したディレクトリに移動
cd centos

// Vagrantファイルを作成
vagrant init CentOS65

// Vagrantファイルが存在するか確認
dir

1-3.Vagrantファイルを編集

Vagrantfile

# VMのIPアドレスを設定 コメントアウト
config.vm.network "private_network", ip: "192.168.33.10"

# GUIモードの設定をONにする場合は設定(不要ならコメントアウトのままで問題なし)
config.vm.provider "virtualbox" do |vb|
  # Display the VirtualBox GUI when booting the machine
  vb.gui = true
end

編集が完了したら、次はVirtualMachine(以下、VM)を起動します。

1-4.VMを起動

Vagrantfileがあるディレクトリで下記コマンドを実行します。

vagrant up

ここでエラーが発生しなければ、成功です。

sshで接続

Teratermなど、他のクライアントソフトで接続する場合は、
Vagrantfileのconfig.vm.networkで設定したIPアドレスで接続できます。

Vagrantコマンド一覧

// 起動
vagrant up

// 再起動
vagrant reload

// 現状確認
vagrant status

// 一時停止
vagrant suspend

// suspendからの復帰
vagrant resume

// シャットダウン
vagrant halt

// 消去
vagrant destroy

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 で管理される