Hatena::ブログ(Diary)

Uemmra3のフルスタックエンジニア?日記

2016-12-22

baserCMSのワンラインインストール+起動の解説

| 09:05 |

昨日の記事(酔っ払ってからbaserCMSをインストールしてみた - Uemmra3のフルスタックエンジニア?日記)で、baserCMSをインストールできました。

ただ外谷さんがこちらで(404 Not Found | このページは存在しないか、すでに削除されています)書いているように、ユーザー寄りの方や初心者の方の参加が求められています。そうした方にはチンプンカンプンなものになるかもしれません。

つまり昨日の記事でインストールできた事実は良いのですが、それだけだと不親切な気がします。なので、kaburkさんの記事(1行のコマンドでローカル環境にbaserCMS4を最速でインストールする | [ま]技術雑記)に対して、少し解説を書くことにしました。

元々のコマンドはワンラインになっています。

git clone git@github.com:baserproject/basercms.git; ./basercms/app/Console/cake bc_manager install "http://localhost:8080/" "sqlite" "admin" "password" "webmaster@example.org" --host "localhost" --database "basercms" --data "bccolumn.default"; php -S localhost:8080 -t basercms/app/webroot

で私の場合はこれをWindows上のGit Bashで実行したのですが、UNIXライクOSシェルの機能として、「;」で複数行のコマンドを連続させる機能を利用しています。

例えばtestというディレクトリを作って移動するのをワンライナで書くと、次のようになります。

mkdir test; cd test

ワンライナはコピペが簡単なのですが、解説するにはそれぞれのコマンド単独の方が良いと思いますので、1コマンドずつ説明しましょう。

1コマンド目

git clone git@github.com:baserproject/basercms.git;

baserCMSは、githubというインターネット上のリポジトリ(ソースコードなどの置き場)に保管されています。このコマンドでは、githubからソースコードを取得します。

なおこのリポジトリはウェブブラウザーからも見ることができます(no title)。

2コマンド目

2コマンド目を整理して書いてみます

./basercms/app/Console/cake bc_manager install

"http://localhost:8080/"

"sqlite"

"admin"

"password"

"webmaster@example.org"

--host "localhost"

--database "basercms"

--data "bccolumn.default";

元記事にも記載のあるこちら(コマンドインストール | baser CMS - 国産オープンソース!フリー(無料)でコンテンツ管理に強いCMS)がコマンドリファレンスです。このコメント(#より右がコメントです)を付けてみると、おぼろげながら理解が進むのではないでしょうか。

./basercms/app/Console/cake bc_manager install

"http://localhost:8080/" # サイトURL

"sqlite" # DB種類

"admin" # 管理システムログイン

"password" # 管理システムログインパスワード

"webmaster@example.org" # 管理者メールアドレス

--host "localhost" # DBサーバホスト名

--database "basercms" # DB

--data "bccolumn.default"; # 初期データのパターン

実際私も正確に理解しているのではないですが、DB(データベース)サーバと、管理システムをインストールしている、ということがわかります。

あと「cake」というのは、CakePHP(PHPのWebアプリケーションフレームワーク)のコマンドだと思います。詳しくはCakePHPの解説書、解説をご覧ください。

3コマンド目

php -S localhost:8080 -t basercms/app/webroot

インストールが終わったので、実行します。

PHPの簡易ヘルプを出すと、次のようになります。

$ php --help

Usage: php [options] [-f] <file> [--] [args...]

php [options] -r [--] [args...]

php [options] [-B <begin_code>] -R [-E <end_code>] [--] [args...]

php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...]

php [options] -S <addr>:<port> [-t docroot]

php [options] -- [args...]

php [options] -a

-a Run interactively

-c <path>|<file> Look for php.ini file in this directory

-n No php.ini file will be used

-d foo[=bar] Define INI entry foo with value 'bar'

-e Generate extended information for debugger/profiler

-f <file> Parse and execute <file>.

-h This help

-i PHP information

-l Syntax check only (lint)

-m Show compiled in modules

-r Run PHP without using script tags

-B <begin_code> Run PHP <begin_code> before processing input lines

-R Run PHP for every input line

-F <file> Parse and execute <file> for every input line

-E <end_code> Run PHP <end_code> after processing all input lines

-H Hide any passed arguments from external tools.

-S <addr>:<port> Run with built-in web server.

-t <docroot> Specify document root <docroot> for built-in web server.

-s Output HTML syntax highlighted source.

-v Version number

-w Output source with stripped comments and whitespace.

-z <file> Load Zend extension <file>.

args... Arguments passed to script. Use -- args when first argument

starts with - or script is read from stdin

--ini Show configuration file names

--rf <name> Show information about function <name>.

--rc <name> Show information about class <name>.

--re <name> Show information about extension <name>.

--rz <name> Show information about Zend extension <name>.

--ri <name> Show configuration for extension <name>.

この

php [options] -S <addr>:<port> [-t docroot]

がここで使っている引数ですが、

php -S localhost:8080 -t basercms/app/webroot

では、Webアプリケーションサーバーのアドレスがlocalhost、ポートが8080

でドキュメントのルート(置き場所を指定する)がbasercms/app/webroot、になっています。

ちょっと初心者向けの説明をすると、

Webアプリケーションサーバーを情報を表示・操作するお店の店員さんだとします。お店がどこにあるかを指定しているのが -S の直後の引数です。そのうち、localhostとは自分自身の場所を指し、ポートはさしずめ窓口やカウンターのようなものです。つまり、あなたがインストールしたPC自身の、8080という窓口からアクセスできるようになります。そして、トップページの情報を置いている場所はbasercms/app/webrootになります。アクセスしてきたユーザーの要求に対して、店員(Webアプリケーションサーバー)は、最初はbasercms/app/webrootという棚から情報を取って、そこにあるマニュアルに沿って(PHPプログラムを解釈して)お客さん(ユーザー)に返事をする。そんな流れでしょうか。

まとめ

1行に連結されていた3つのコマンドを順に説明しました。

というステップに分かれていました。当然ですが、次回起動するには3ステップ目だけを実行すればよいですね。

ではあなたもステキなbaserCMSライフを!ビバ!

2016-12-21

酔っ払ってからbaserCMSをインストールしてみた

| 03:06 |

12/22 コマンド解説のリンクを追加

この記事はbaserCMS Advent Calendar 2016 - Adventarの 19日目の記事です。

昨日は…いらっしゃいませんが、14日目はkaburkさんの1行のコマンドでローカル環境にbaserCMS4を最速でインストールする | [ま]技術雑記でした。

明日はGaryutenさんのbaserCMS4の管理画面リニューアルの進捗報告の代わりのこれまでの流れ報告 | 我流天性 がらくた屋です。

さて、baserCMSのインストールがまだ終わっていません。

kaburkさんのインストール記事を読んで、小躍りしながら着手しました。環境は以下

OS: Win7(32bit) SP1 Prof.

CPU: Core i5 3470

Memory: 4GB

Supplier: Hewlett-Packard

ふだんは Excel, Word, PowerPoint、あとはSylpheed(win)でメールチェックしたり、自社サイトをGruntでデプロイしたりするマシンです。

何が起こっているのか?Gitが動かない??

$ git clone git@github.com:baserproject/basercms.git; ./basercms/app/Console/cake bc_manager install "http://localhost:8080/" "sqlite" "admin" "password" "webm

aster@example.org" --host "localhost" --database "basercms" --data "bccolumn.default"; php -S localhost:8080 -t basercms/app/webroot

Cloning into 'basercms'...

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

sh.exe": ./basercms/app/Console/cake: No such file or directory

Directory basercms/app/webroot does not exist.

sudoが効かないので、(StackOverflow)http://stackoverflow.com/questions/22767885/msysgit-sudo-like-commandを見て、Ctrl+Shiftを押しつつ起動したりしてるけど、同様なメッセージ。

心が荒んだ時は、やっぱり笑いが必要だ。

no titleを見て、落ち着きを取り戻す。

福岡の明太子もラーメンもウマいのである。

git clone だけでやってみよう!

$ git clone git@github.com:baserproject/basercms.git;

Cloning into 'basercms'...

Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

Google先生はヒントをくれるハズ。

no titleを見てみて、

mkdir /c/Program\ Files/Git/etc/ssh/

vi /c/Program\ Files/Git/etc/ssh/ssh_config

として、

$ git clone git@github.com:baserproject/basercms.git;

Cloning into 'basercms'...

Enter passphrase for key '/c/Users/soumu2501.DAINICHI-GIKEN/.ssh':

パスフレーズって何だったっけ?

どうもGithub Desktopをアップデートした時に設定された模様。。

目的はcloneなので、HTTPで試す。

$ git clone https://github.com/baserproject/basercms.git

Cloning into 'basercms'...

remote: Counting objects: 68191, done.

remote: Compressing objects: 100% (92/92), done.

remote: Total 68191 (delta 21), reused 0 (delta 0), pack-reused 68096

Receiving objects: 100% (68191/68191), 45.29 MiB | 1.50 MiB/s, done.

Resolving deltas: 100% (42962/42962), done.

Checking connectivity... done.

Checking out files: 100% (2904/2904), done.

アッサリと解決

そして残りの行を実行する。

$ ./basercms/app/Console/cake bc_manager install "http://localhost:8080/" "sqlite" "admin" "password" "webmaster@example.org" --host "localhost" --database "basercms" --data "bccolumn.default"; php -S localhost:8080 -t basercms/app/webroot

c:\wk_uem\baserCMS>echo "immutating Un*x"

"immutating Un*x"

c:\wk_uem\baserCMS>echo off

Welcome to baserCMS v4.0.1 Console

---------------------------------------------------------------

App : app

Path: c:\wk_uem\baserCMS\basercms\app\

---------------------------------------------------------------

勝った(むしろWindows環境のGitとの戦いに)

f:id:Uemmra3:20161222044329p:image

私にうってつけのインストール記事を書いてくれたkaburkさんにはただただ感謝しかありません

手元でできただけだと、他の人の参考にならないのでは?

というわけで、追加でkaburkさんのコマンドの解説をしたいと思います。

baserCMSのワンラインインストール+起動の解説 - Uemmra3のフルスタックエンジニア?日記に書いています。

クリスマスも近づいて来ました。コーポレートサイトに適したbaserCMSを使って、企業サイトリニューアルしてみませんか?

現在4:45。私は寝ます…zzz

では。

2015-07-03

Githubで間違って作成したリモートブランチを消す方法

| 18:40 |

すごい広島(no title)という勉強会がある。

広島で毎週水曜日に行われている勉強会で、とにかく技術的・コミュニティ的なタスクを決めてGithubに成果を残すスタイルである(私の解釈)。あとはリモート参加を受け入れていて、広島から遠い場所にいる場合でも、ネット回線があれば参加することができる。

ただGithub経験値の弱い私は、間違ったブランチを作ってしまい、ちょっと焦った。基本的にはこのブログ(expressweb.jp -&nbspこのウェブサイトは販売用です! -&nbspウィンドウズサーバー レンタルサーバー サーバー エクスプレスウェブ リソースおよび情報)を見てローカルブランチを作らずに、リモート操作のみで済ましているので、そんなミスをした時の対処方法を残しておこうと思う。

まずは、対象のリモートリポジトリのブランチを開く。

f:id:Uemmra3:20150703184413p:image

次に、消したいブランチの右端にあるゴミ箱ボタンを押す。

f:id:Uemmra3:20150703184414p:image

以上

こんだけの事だけど、やったことないとわたわたしてしまったので、作業メモとして残しておく。

ちょっと黒い画面でやってみたい気もするが、そんな厨二心は抑えて、こんなやり方でスマートに行きたい。