phpのデプロイツールdeployerでcakephp3のデプロイを試してみる

phpのデプロイツールdeployerを試してみる。
今回はcakephp3をデプロイしてみるイメージ。
リポジトリはsvnで。

vagrant で、3台のゲストサーバを用意する。

踏み台用 192.168.33.10
デプロイ先用1台目 192.168.33.11
デプロイ先用2台目 192.168.33.12
踏み台にログインして任意の場所にディレクトリを作成する
$ mkdir deploy
$ cd deploy
最新のdeployer.pharファイルをダウンロードしコマンド化する
$ wget https://deployer.org/releases/v4.0.2/deployer.phar
$ sudo mv deployer.phar /usr/local/bin/dep
$ sudo chmod +x /usr/local/bin/dep
設定ファイルを用意する
$ vi deploy.php

----
user('vagrant')
    ->password('vagrant');

// サーバログイン設定2
server('web2', '192.168.33.12', 22)
    ->user('vagrant')
    ->password('vagrant');

// 変数にデプロイ時刻を保存
set('dateYmdHis', date('Ymd_His'));

// httpd.confの環境変数からシンボリックリンクのパスを決定する
switch (getenv('CAKEPHP_ENV')) {
    case 'prod':
        set('linkPath', '/var/www/html/prod');
        break;
    case 'stg':
        set('linkPath', '/var/www/html/stg');
        break;
    default:
        set('linkPath', '/var/www/html/dev');
}

// デプロイ($ dep deploy)
task('deploy', function() {
        writeln('deploy: start');

        $svn_path = '';
        $dir_create_date = get('dateYmdHis');
        $dep_path = '/var/www/release/' . $dir_create_date;
        $link_path = get('linkPath');
        $result = run("sudo svn export {$svn_path} {$dep_path}");
        $result = run("sudo chmod -R 777 {$dep_path}/tmp");
        $result = run("sudo chmod -R 777 {$dep_path}/logs");
        run('sudo systemctl stop httpd.service');
        $result = run("sudo ln -nfs {$dep_path} {$link_path}");
        run('sudo systemctl start httpd.service');

        writeln('deploy: finish');
});

// ロールバック($dep rollback)
task('rollback', function() {
        writeln('rollback: start');
        $old_dir_create_date = run("sudo ls /var/www/release | tail -2 | head -1");
        $dep_path = '/var/www/release/' . $old_dir_create_date;
        $link_path = get('linkPath');
        run('sudo systemctl stop httpd.service');
        $result = run("sudo ln -nfs {$dep_path} {$link_path}");
        run('sudo systemctl start httpd.service');
        writeln('rollback: finish');
});
----

デプロイを実行
$ dep deploy

ロールバックを実行
$ dep rollback

なお、デプロイ先のサーバで svn(とかgit) コマンドがインストール済みで、かつ一度svnコマンドを実行して(p)とかを押している必要あり。

参考
https://deployer.org/

CodeIgniter3でバッチを動かしてみる

まずコントローラを用意します。

$ vi application/controllers/Batchtest.php

次にコントローラをコマンドラインから実行します。

$ cd /var/www/myapp
$ php index.php batchtest index
Hello

引数を渡す場合


コントローラをコマンドラインから実行します

$ cd /var/www/myapp
$ php index.php batchtest indx [引数1] [引数2]
[引数1] [引数2]

ウェブサーバからのアクセスを禁止するには以下を追記します

if (!is_cli()) {
    set_status_header(403);
    echo "403 Forbidden";
    return;
}

参考
http://blog.ko31.com/201512/codeigniter-cli/
多謝

Codeigniter4(dev) を試してみる

インストール手順

適当な場所にて
# cd ~/work
git からクローンして
# git clone https://github.com/bcit-ci/CodeIgniter4.git
CodeIgniterのディレクトリが展開されるので適当な場所に配置して
# mv CodeIgniter4 <任意の配置したい場所>/

ウェブサーバの設定で、<任意の配置した場所>/CodeIgniter4/public をドキュメントルートに指定して

# vi /etc/nginx/conf.d/myapp.conf
root <任意の配置したい場所>/CodeIgniter4/public;

ウェブサーバを再起動

# systemctl restart nginx

ブラウザでアクセスすると表示された。
ci4-dev_installed

シンプル

CodeIgniter4 github

teratermを使ってサーバーに自動ログインを試してみる

teratermを使ってサーバーに自動ログインしたい。

C:\Program Files (x86)\teraterm フォルダ内に ssh2login.ttl ファイルがあるので、別名保存します。


vagrant_192-168-33-10.ttl

ショートカットも作っておきましょう。実行するアプリは ttpmacro.exe になります。

マクロ例

;=============================================
; Filename    : vagrant_192-168-33-10.ttl
;=============================================
;; 接続先ホスト/ユーザ名/パスワード設定
HOSTADDR = '192.168.33.10'
USERNAME = 'vagrant'
PASSWORD = 'vagrant'
;=============================================
;; コマンド組立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
;; 接続 
connect COMMAND
;; マクロ終了
end

参考

Tera Term-自動ログインマクロ(SSH/TELNET)のまとめ


多謝

vim のカラースキームを試してみる

~/.vim/colors/ に molokai.vim を追加し、~/.vimrc に設定してみたい。

$ cd ~/
$ mkdir -p .vim/colors
ダウンロード
$ git clone https://github.com/tomasr/molokai
展開されているのでコピー
$ mv molokai/colors/molokai.vim ~/.vim/colors/

追記する。

$ vi ~/.vimrc
syntax on
colorscheme molokai
set t_Co=256

これでキレイな画面で楽しくコーディング可能。

ちなみに日本の伝統色もおすすめです。

参考

[vim] 黒背景好きの僕の心を揺さぶるカラースキーム「hybrid」

オシャレ派Vimmerのあなたへ。こだわりのカラースキームギャラリーを贈ります。


日本の伝統色

多謝

nginx1.10 + phpMyAdmin 4.6.2 を試す

https://www.phpmyadmin.net/

phpMyAdmin 4.6.x をダウンロード
$ wget https://files.phpmyadmin.net/phpMyAdmin/4.6.2/phpMyAdmin-4.6.2-all-languages.zip
展開
$ unzip phpMyAdmin-4.6.2-all-languages.zip
ディレクトリ作成
$ sudo mkdir /var/www/phpmyadmin
展開したディレクトリを移動
$ sudo mv phpMyAdmin-4.6.2-all-languages /var/www/phpmyadmin

nginx設定ファイルを作成

$ sudo vi /etc/nginx/conf.d/phpmyadmin.conf
server {
    listen       80;
    server_name  192.168.33.10;
    root /var/www/phpmyadmin;

    location / {
        index index.php index.html;
    }

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

nginx再起動

$ sudo systemctl reload nginx

phpmyadmin をパスワードなしで入る設定

$ cd /var/www/phpmyadmin/
$ cp config.sample.inc.php config.inc.php
$ sudo vi config.inc.php
//$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = true;
⇒ root/パスワードなし でログイン可能に

エラーがでる

phpMyAdmin – Error
Cannot start session without errors, please check errors given in your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser. 

phpのインストール後のパーミッションがapacheになっているのでnginxに変更

$ sudo ls -la /var/opt/remi/php70/lib/php/
drwxrwx--- 2 root apache  6 May 25 16:29 opcache
drwxrwx--- 2 root apache  6 May 25 16:29 session
drwxrwx--- 2 root apache  6 May 25 16:29 wsdlcache
パーミッション変更
$ sudo chgrp -R nginx /var/opt/remi/php70/lib/php

参考
https://blog.e2info.co.jp/2013/07/17/mac_xampp_phpmyadmin/
多謝

フォント Osaka を試してみる

目がしょぼしょぼする。

視力低下予防のため、なんとかしたい。

具体的には、Windows で、仕事中はフォントのアンチエイリアスがオフ、ClearType機能がオフになったような、カッチリ表示にしたい。

MSゴシックでも良いのだが、いかんせんアレなので、他のビットマップのフォントを入手する。

フォント Osaka
http://osaka.is.land.to/

ツール Meiryo UIも大っきらい!!
http://www.vector.co.jp/soft/winnt/util/se500183.html

ツールを使って、フォント Osaka-UI を全体に一括適用する。

さらにコントロルパネルの ClearTypeを有効にする[ ] からチェックを外す。

とりあえずこれで。

Windows 向け git 利用

TortoiseGit ダウンロード(日本語化パックもあり)
https://tortoisegit.org/download/

Git for Windows ダウンロード
https://git-for-windows.github.io/

PHPコードの自動整形を試してみる

php-cs-fixerコマンドのインストール

$ sudo wget http://get.sensiolabs.org/php-cs-fixer.phar -O /usr/local/bin/php-cs-fixer
$ sudo chmod a+x /usr/local/bin/php-cs-fixer
$ which php-cs-fixer
/usr/local/bin/php-cs-fixer
反映
$ source ~/.bashrc

ファイル単体を整形の変更点を表示(実行前確認)

$ php-cs-fixer fix test_file.php --dry-run --verbose --diff

ファイル単体を整形実行

$ php-cs-fixer fix test_file.php

ディレクトリに整形実行

$ php-cs-fixer fix test_dir/

さまざまオプションがあり、、たとえばPSR-2でインデントと改行コードだけ調整したい場合。

$ php-cs-fixer --level=psr2 --fixers=indentation,linefeed fix test_file.php

参考
http://qiita.com/hshimo/items/e8374fe721492ac4658b
http://9ensan.com/blog/programming/php/php-psr-coding-standards-fixer/
多謝