04
11
16
18

新連載 めざせシェル女子！

～貝殻高校、パソコン部の日常～
ちょまど

ユニケージ開発手法コードレビュー 第13回
大内智明

縁の木、育てよう 第７回

白羽玲子

Haskell版Open usp Tukubai 完成させるぞ企画

Haskellでやってはいかんのか？ 第13回
上田隆一

22

未来に活きる！現場で使える！

データモデリング 第14回
熊野憲辰

26
30

IPv6新時代を体感しよう! 第7回
波田野裕一

中小企業診断士が解説する、超実践的な会話術!

円滑コミュニケーションが世界を救う! 第2回
濱口誠一

32

スズラボ通信

36

新連載

39

中小企業手作りIT化奮戦記

第16回

44

人間とコンピュータの可能性

第24回

46

UNIX大好き人間はどう育つ？ 第3回

48

漢のUNIX54

法林浩之のFIGHTING TALKS

56

教えて先輩♡ サーバー運用お助けTips

61

姐のBENTO62

すずきひろのぶ水間丈博

第16回

ITエンジニアのためのマーケティング入門

菅雄一
大岩元

鳥居高之
後藤大地

第20回

法林浩之

第11回

濱田康貴

第6回

食について関心を持つ

シェル魔人／編集後記

タケノコちんじゅうちゃん
本誌名称についてvol.21より「USPMAGAZINE」
から「シェルスクリプトマガジン」に、変更となりました。
バックナンバーは「USP MAGAZINE」
としてお求めいただけます。

本誌正式名称は「シェルスクリプトマガジンvol.24」となります。

卯月
巻 頭は漫 画 で華 やかにスタート！

第1回

マーケティングっておもしろいの？

いよいよ新連載『ITエンジニアのためのマーケティング入門』が始まります。

“マーケティングって何？”“オレは技術者だから関係ないや…”“プロモーションとか、宣伝とか、売るためのノウハウでしょ？”と思っているアナタ！それもアリですが、
マーケティングはとても奥深いモノなんです！
知っていて無駄になることはありません。
そんな貴方のための連載。今号よりスタートです！
Written by 水間 丈博

おか爺、
こんにちはー！
おぉ、
タケシ、
しばらくだのう。就職して仕事はうまくいって事例１：関サバのブランド化

るかの？
うん、JavaとかStrutsとか勉強してる。大学でやったから復習できると思ってたんだけど、けっこう厳しくて…」
そうか、
そうか、
まぁ、早く先輩方と一緒に活躍できれば良いのう。
ところで、おか爺、会社の社長に“マーケティングを勉強しろ”って言われたんだけど、なんか難しそうで…大学でもやらなかったし。おか爺、マーケティングっておもしろいの？
マーケティングか。そうか。
タケシの会社の社長はなかな
か眼のつけどころが良いのう。
えっ？それどういうこと？
まぁ、それはゆっくり説明するとして、タケシや。マーケティ
ングほどおもしろいモノは無いぞ！
えっ。
そうなの？！
ハハ。
というのは少々言い過ぎじゃが、いろいろ興味深い分野であることは確かじゃのう。
なんか難しそうで…おもしろいように思えないけどなぁ。
そういえば、同期で広告会社に入社してマーケティングやるっていう奴がいたな。ITとどう関係するんだろ？
そんな友人がおったのか。
ま、
それもそのうち話していこう
かの。
ところで、世の中いろいろ例はあるんじゃが…こんなのはどうじゃ。
ちょっと見てごらん。

かつて見向きもされず捨てられることもあったという「関サバ」。
しかし大分県豊後水道を回遊するサバは、強い海流に逆らって定着し“脂ののり”も良く、美味であることで知られていた。佐賀関の漁師は大都市からの引合いを契機に「関サバ」と銘打って新鮮なサバを刺身で提供することにした。漁師は一本釣りにこだわり、生け簀に一日置いてサバのストレスを減らしたり、“活けじめ”と呼ばれる鮮度を保つ工夫を施したり、漁協による一括買い取り制度などを導入。一時偽物が出回るなどの障害もあったが、商標登録して一尾ごとにタグシールを貼ることで産地と品質を保証。口コミによる評判も広がり、ブランドとしての「関サバ」が確立した。今や一尾¥5,000以上で取引されるまでになった。
出典：「関サバ、一匹200円の大衆魚が5000円に化けた理由は？
大分・佐賀関」（日本の商人）http://j-shonin.net/sekisaba-ooita
へぇーっ! すごいねー! 良いモノはやがては高く売れるってことなのかな？
いやいや、良いモノが売れるとは限らんぞ。
この話もかれこ
れ20年以上掛かってようやく成功譚になったんじゃ。
その間の関係者の苦労は並大抵では無いぞー。ただ、これは“ブランド化の成功事例”としては有名な話なんじゃ。
ブランド化？ ブランドって時々聞くよね。バッグとか時計とか…けど、それってマーケティングの話なの？」
ブランド化というのは、ブランディングとかブランドマーケ
ティングとか言っての。マーケティングでは重要な概念の一
つなんじゃ。

36

2015 April昔システム会社の役員をやっていたらし

工業大学でITを学び、小さなIT会社に就い。好奇心旺盛で意外とモノ知り。趣味

職したITエンジニアの卵。
社長に
「マーケ

は音楽（クラシックからJPOPまで！）と囲

ティングを学んでおけ」と言われている。

碁（有段者）。

近くにある母方の祖父、おか爺の家にちょっとした丘の上に住んでいるので「お時々遊びに行く。趣味はサイクリング。

か爺」と呼ばれている。
やや奇怪な老人。

まだ彼女はいない。

水間丈博 PROFILE
東京生まれの千葉県育ち。高校時代は落語研究会でちょっとした名人だった。大学では物理学科に所属し専攻もしたが、その傍ら一般教養課程も100単位取り、自称で教養学部卒などと言ったりする。大学卒業後、バローズ（現日本ユニシス）に入社し4年SEとして働くが、経営コンサル会社に転職。業務改善や情報システムの構想案作りなど経験する。
その後他企業を経て、会社を作り取締役となるが、大不況と悪運が重なり2年で解任。
その後元上司の誘いで、某大手システム系企業に入社。現在はビジネスイノベーションセンターという名の部署で企画・営業支援やマーケティング
研究に従事。製品が売上不振だとその謎を解明することに夢中になる。色々あってマーケティングへの関心は尽きることがない。趣味は写真、囲碁、MTBなど。4人の息子がいる。

へぇ、そうなんだ。名の知れた有名な高級品を指すのかと口コミって、友達からTwitterで勧められたり、要するに噂思ってたよ。

が噂を呼ぶって話？

いや、ブランドは高級品とは限らんぞ。
しかしそれも“ブラ

まぁそうじゃな。別名“バイラルマーケティング”と言ってンドの効力”と言っても良いのじゃよ。例えば、時計のブラな。広告に頼らずに人々の評価を重視してその拡散力で知ンド品と言ったら、何を思い浮かべる？

名度や信用を高める手法なんじゃ。

うーん、
そうだね、ROTLEXとかOMERAとか…かな。

へぇー、広告を出さないって？お金掛からないなら良い方

それこそがブランドの狙いじゃ。
ブランド化を達成すると法だよね。みんなそうしたら広告無くなっちゃうかもね！

“代名詞化”するんじゃ。

バカモノっ！オマエは昔から単純過ぎて困りモノだのう。
そ

代名詞化？

んな簡単な話では無いんじゃ。口コミで評判を得ると言うそうじゃ。時計と言ったら、先ず頭に思い浮かべるのは普のは、実は大変なことなんじゃよ。100人のお客さんがいる

段憧れているようなブランドであることが多いじゃろ？

として100人全員が“これは良い！”と言うような、いわば圧そうだね。SEIKAKUとかZUNZUNとか有名国産品もあるけ

倒的な支持がなければ上手くいかんのじゃよ。
ま、100人とどね。

いうのは大袈裟なんじゃが、それに近いことを地道に続けしかし、高価でも欲しいのはどっちじゃ？

ないと、お客さんは友達にも勧めてくれないし、何より再びそりゃROTLEXが欲しいよ！友達に自慢できるし…でも手が買ってくれることも無くなるんじゃ。

出ないから、今はCASUYOで我慢してる。頑丈だしっ！

そうか、見えないところでサービスの質とかに気を配らなそう。“高くても欲しい！”と思わせるモノがブランドなん

いとダメなんだね。

じゃ。そうなると性能や価格はあまり関係なくなるんじゃ

そうじゃ。バイラルマーケティングで成功した事例としてな。
この例でも“サバといえば関サバ”を思い浮かべる人がは、“リッツカールトン”、“スターバックス”、決済サービスの多くなってブランド化ができたんじゃ。

“スクエア”などが有名なんじゃ。例えばスターバックスは一そうなんだよねー。“名前で買っちゃう”って良くあるかもし

切宣伝をしないんで有名なんじゃな。広告代理店泣かせ

れないな。母さんなんか、たまに赤坂に行くと虎屋のようじゃのう、ハハハ。

かん買ってくるよ。

そう言えば、
スタバのコマーシャルって見たこと無いよね？

あの娘は甘いモノが大好物だからな（ワシの見て無いとこ

広告を出さなくても、公式Facebookページを持ってたりす

ろで贅沢しおって…）。
まぁそれはよいとして、ブランドを確るんで、それも“広報・宣伝”と見ることもできるんじゃが、い立するには長い時間と知恵の結集が必要なんじゃ。
ブラン

わゆる“４大メディア”を使わないことでは有名じゃな。
しかドは奥が深いんでまた別の機会にゆっくり話そうかの。
さし、当然それもポリシーとか狙いあってのことなんじゃ。

て、それと“口コミによる評判”というのも大いにマーケティ
ングに関係あるんじゃよ。

37

事例２：宣伝をしないスターバックスコーヒー

へぇー、なんかスゴイねー。
とても深ーいことを言われている気がするね。だけどこの“エンゲージメント”ってどういう意味？

スターバックスは４大メディアを使用したマス広告をしない会社として有名である。やや高めの価格設定を下げることもない。元CEOの岩田松雄氏は、その理由を「人々の心を豊かで活力あるものにするために存在するのがスタバであり、そこにエンゲージメントが存在する。マス広告はブランドを棄損する。お客様の快い経験もブランドの一部であり、それを守ることがミッション。
ミッションとブランドは表裏一
体、まさに“一対で事を成す”のです。」と語っている。
出典：「スタバはなぜ値下げやテレビCMをしない？」（ビジネスジャーナル）http://biz-journal.jp/2013/10/post_3098.html

おっと、
タケシも良いところに気がつくことがあるんじゃのう、感心感心。ハハハ。
おか爺、バカにしないで教えてよー。
ハハ、ま、そう怒るな、
ワシが悪かったな。エンゲージメントとは本来“約束”とかの意味なんじゃが、
ここではちょっと違って“愛着心”とか“忠誠心”とかの意味で使われておるんじゃ。
ま、マーケティング用語になってしまったのう。
え、それって最近の話なの？
そうなんじゃ。最近は人口が減りつつあるし、消費者の購買行動が変わってしまったんじゃな。単に性能が良いとか、有名だからといっていつも買ってくれるとは限らなくなっておる。
それで、企業側が消費者との“関係性”に関心を持ちはじめてきたんじゃ。元来“忠誠心”は“ロイヤリティ”とか呼ばれていたんじゃが、エンゲージメントはもっと強い意味なんじゃ。要は企業が“消費者に心から愛着を持ってもらいたい”と願うようになったんじゃな。
それで今は“エンゲージメントの確立”というのが重要視されておる。ただ、これはブランド化と同じ話で、一朝一夕にはできんのじゃよ。
へぇー、なんか、マーケティングっておもしろそうだね！
そうか！少しは分かってくれたかのー。
それは嬉しいぞよ！
（つづく）【今回の用語まとめ】
・ブランド化またはブランディング：消費者の視点から発想し、ブランドに対する共感や信頼など消費者にとっての価値を高めていく企業と組織のマーケティング戦略のひとつ。
ブランドとして認知されていないものをブランドへと育て上げる、
あるいはブランド構成要素を強化し活性・維持管理していくこと。
またその手法。
（出典：Wikipedia）
・バイラルマーケティング：製品やサービスの利用者の健全な口コミを通じて広告に依存せずに新たな顧客の獲得や信頼感醸成を狙うマーケティング方法。拡散の仕方がウィルス（Virus）の拡散に似ていることから名付けられた。“健全でない”とは、
自然な拡散ではなく企業側が意図的に仕掛けるもので、“ステルス・マーケティング”と呼ばれ批判の対象となる。
・エンゲージメント：企業と利用者との関係において、利用者がその企業の製品やサービスを積極的に支持し、継続的に購入するような強く醸成された愛着心。
参考：「顧客エンゲージメントとは」（エンゲージメントブログ）
http://www.engagement-forum.com/engagement/customer-engagement「新聞・雑誌・ラジオ・テレビ」を指す。
この4大メディアのシェアは国内広告費
・４大メディア：主要広告メディアである
総額約6兆円(2014年）の約50%を占める。

38

2015 April

6

北の赤い星ふたたび！ -RedStar Linux 3.0 で遊んでみたレポート 皆さんこんにちは。@nullpopopoでございます。コアなシェルスクリプトマガジンファンの方はご存知かもしれませんが、私、2011年3月発売のUSP MAGAZINE vol.0で「RedStar2.0をインストールしてみた。」という記事でRedStar Linux（以下RedStar）をWEBサーバーにして遊びました。あれから3年10ヶ月後、Slashdot Japanのつぶやき※1がタイムラインに流れてきてRedStar
Linux 3.0がtorrent経由で入手できるのを知ったので、今回はWordPressをインストールして動
かしてみました。
なお、最初にお断りしておきますが、私@nullpopopoおよびシェルスクリプトマガジン編集部
は、特定の政治信条や団体に対して中立であり、今回も技術的な興味のみでレポートしていることを申し添えておきます。もう1つ最初に申し上げますと、今回のWEBサーバー構築は単なるキ
ワモノOSで遊んでおしまいというわけではなく、シェル芸のスキルと、yumを使えない環境で最適なパッケージを探してインストールする能力が求められます。インターネットに繋がらない環境でサーバー構築しなければならないシチュエーションは、まだ少なからず残っているはずです(金融系は特に)。4月ですよね。是非御社の新人研修のメニューにRedStarでのWEBサーバ
ー構築を取り入れてみませんか？RedStarエバンジェリストの@nullpopopoがお伺いしますよ。

RedStar を VirtualBox へインストールし、root を取るまで（ダイジェスト）

sshd を起動するまではコンソールでターミナルを起動し、頑この節だけでいつものページ数が埋まるくらい書くことがあが英語のようなので、英語キーボードでの入力に慣れていな

張って手打ちでコマンドを入力します。

RedStar は ( ちゃんと調べてないけど ) キーボードマップ

るので、RedStar のインストールに興味のある方は是非私のい場合は、ターミナルから「setxkbmap jp -model jp106」

・ハングルが読めないので野生の勘を頼りにインストール

きます。ただし、再起動すると設定が消えるので、この後何ブログ※2 をご覧いただきたいのですが、要約するとし、ターミナル起動までこぎつけたを実行すると日本語キーボード配列で楽に入力することがで回か再起動するたびに実行します。

・RedStar は ( いろんな意味で ) 内部統制のとれた環境で作られたデスクトップ OS のため、一般ユーザーから管理者ユーザー (root) に昇格させない設計思想がある■キーボードレイアウトを日本語にする・
とは言え、ちょこちょこ抜け道があったので root を取れたという内容になっております。

RedStarで自由を手にするまで
私はハングルが読めず、コンソールでいちいちコマンド入力するのも面倒なので、まずは ssh でログインできるようにします。しかし、ssh でログインするには sshd を起動せねばならず、すなわち root を取る必要があるわけです。なので、※1 #linux 北朝鮮の独自 OS「Red Star 3.0」が入手可能に https://twitter.com/slashdotjp/status/554861658435108864※2 [ 異種 OS 格闘戦 ]RedStar Linux 3.0をインストールして root 取ってみた http://nullpopopo.blogcube.info/2015/01/redstarlinux3_install.html

562015 Aprilまず最初にやる設定ですが、iptables の無効化です。外向き TCP/UDP53番ポートが塞がっており、DNS による名前解決ができないため、ファイアウォールを無効化します。こす。この html ページではスタイルシートが上の行に表示され、シェルスクリプト本文は末尾 13 行に書かれているので、tailコマンドで本文のみを抜き出します。そして最後に sh コマン

れは root を取るためのシェルスクリプトを curl コマンドでドに渡してやることで、このシェルスクリプトを実行します。

root も取れないのにそんなことできるのか？と思われる方が後の sh コマンドにさえ渡さなければ何度でもやり直しがきく

ンを見て我が目を疑いました…。

するだけで安全にデバッグできるため、エディタでシェルスク

http で取得するために名前解決を行う必要があるからです。
多いかと思いますが、iptables 設定ファイルのパーミッショ■リスト1：iptables ファイルのパーミッション$ ls -l /etc/sysconfig/iptables-rwxrwxrwx. 1 root admin 4658 2013-02-14 18:24 /etc/
sysconfig/iptables

案外長いワンライナーで気が滅入るかもしれませんが、最上に、bash のヒストリ機能から呼び出してちょちょいと編集

リプトを編集して一発実行して失敗→ OS 再インストールという大きな手戻りを防ぐことができるので、是非覚えておきたい
スキルです。

■リスト 3 の URL をブラウザで表示というわけでやっちまいましょう。勿論、service iptables

restart なんてできませんので、設定変更後は OS ごと再起
動しちゃいます。

■リスト2：iptables 無効化$ echo -n "" > /etc/sysconfig/iptables$ reboot

RedStar は一般ユーザーでもコマンドから再起動ができます。なお、GUI からの再起動はハングルが読めないので難易度が高かったです…。

いよいよ root 取得シェルスクリプトの実行です。ローカルにシェルスクリプトファイルを置いてもよいのですが、1 文字 1

文字タイプしてバグを産み、再生不能なマシンを作るのも嫌なので、すでに完成したシェルスクリプトを curl で取得してそのまま実行します。WEB サイトにホストされているシェルスク

リプトを実行するには「curl http:// 〜〜〜 /< シェルスクリプ

さて、ここで再起動がかかるので、コンソールログインしてターミナルを起動し、sshd を起動します。sudo コマンドによる sshd 起動ができれば OK です。
■リスト 4：sshd 起動$ setxkbmap jp -model jp106$ sudo service sshd start$ sudo chkconfig sshd on

トのファイル名 > | sh」というワンライナーで、標準出力に吐き出されたシェルスクリプトのテキストを、パイプで sh コマン

ドに渡してあげれば実行できます。それでは少々長いですが、ワンライナーを実行してみましょう。

これで、残りの作業を ssh 経由で行うことができるようになりました※3。なお、RedStar の root ユーザーはデフォル

トのシェルが /sbin/nologin なので、root ユーザーに su

してシェルを使いたい場合は「$ sudo usermod -s /bin/■リスト3：root 権限取得
$ setxkbmap jp -model jp106$ curl -s http://sprunge.us/cIKN?sh | \sed -e 's/<[^>]*>//g' | cut -b 4- | \sed -e "s/\&\#39\;/\'/g;s/\&quot\;/\"/g;s/\&gt\;/>/
g;s/\&lt\;/</g" | \grep . | tail -n 13 | shbash root」と実行してシェルログインできるようにしてしまいましょう。ssh でログイン後、SELinux を無効化するには次のようにします。

■リスト 5：SELinux 無効化$ sudo sed -i 's/enforcing$/disabled/' /etc/selinux/
config$ sudo reboot

このサイトをブラウザのソース表示で見るとわかるのですが、

行番号つきのソースコード表示を html+css で整形しています。なので、最初の sed で html タグを除去しています。次に、行番号を削除するため cut コマンドで4文字目以降をバッサリ削っています。2回目の sed では、
「'」
「"」
「>」
「<」を実

態参照から変換し、その後 grep で空行以外を表示していま※ 3 今更言うことではないのかも知れませんが、ssh クライアントを使うことで、文字列のコピペでコマンドを入力することができます。いろんな勉強会で、コマンド入力をコンソールからずーっと続けている人をたまに見るのですが、1 文字 1 文字打ち込むことにあまり意味があるとは思えません。楽できる方法があるなら楽したほうがよいに決まってます。

57

MySQL インストール
ご 存 知 の 通 り、WordPress は WEB サ ー バ ー、PHP、MySQL 環 境 で 動 作します。RedStar の ISO イメー ジ には、httpd や php、MySQL の 各 種 rpm パッケ ージ が 含まれているのですが、筆者が手元の環境で試してみたとこ

ろ、たかだか4つ程度の DB があるだけにも関わらず、show
databases するだけで10分以上待たされるくらい MySQLの動作が重たかったため、同じバージョンの MySQL を外部サイト（http://olex.openlogic.com/）からダウンロードし、
zip ファイルを解凍します※4。以下 curl のワンライナーが長これらパッケージをインストールする前に、最初からインストールされている「MySQL-client」「MySQL-shared」をrpm コマンドで削除します。この時に「--nodeps」オプションをつけるのを忘れないようにしましょう。

■リスト 7：「MySQL-client」「MySQL-shared」削除$ sudo rpm -e --nodeps MySQL-client MySQL-shared

そして、今回ダウンロードしてきたパッケージをインストー

ルします。

くて嫌だという方は、ブラウザの検索窓にパッケージ名を入■リスト 8：MySQL-client MySQL-server MySQL-shared の

ジョン番号」の順にクリックしてダウンロードしても構いません。

インストール$ sudo rpm -ivh mysql-5.5.18-ins/*

力し、「パッケージ名」→「Versions & Downloads」→「バー■リスト6：パッケージのダウンロードと解凍
MySQL Server 5.5.18 Client Rpm Linux IA32 Installer
ダウンロード$ curl -k -L -o openlogic-mysql-5.5.18-linux-ia32ins-Client-Rpm-1.zip "http://olex.openlogic.com/
package_versions/11526/download?package_version_
id=6508&path=https%3A%2F%2Folex-secure.openlogic.com%2Fcontent%2Fopenlogic%2Fmysql%2F5.5.18%2Fopenlog
ic-mysql-5.5.18-linux-ia32-ins-Client-Rpm-1.zip"
MySQL Server 5.5.18 Server Rpm Linux IA32 Installer
ダウンロード$ curl -k -L -o openlogic-mysql-5.5.18-linux-ia32ins-Server-Rpm-1.zip "http://olex.openlogic.com/
package_versions/11529/download?package_version_
id=6508&path=https%3A%2F%2Folex-secure.openlogic.com%2Fcontent%2Fopenlogic%2Fmysql%2F5.5.18%2Fopenlog
ic-mysql-5.5.18-linux-ia32-ins-Server-Rpm-1.zip"
MySQL Server 5.5.18 Shared Rpm Linux IA32 Installer
ダウンロード$ curl -k -L -o openlogic-mysql-5.5.18-linux-ia32ins-Shared-RPM-1.zip "http://olex.openlogic.com/
package_versions/11530/download?package_version_
id=6508&path=https%3A%2F%2Folex-secure.openlogic.com%2Fcontent%2Fopenlogic%2Fmysql%2F5.5.18%2Fopenlog
ic-mysql-5.5.18-linux-ia32-ins-Shared-RPM-1.zip"
zip ファイルの解凍$ for A in $(ls | grep ^openlogic); do unzip -o $A;
done

以 上3つのパッケージをダウンロードし、zip ファイルを解 凍 すると mysql-5.5.18-ins ディレクトリができあがり、その中に MySQL-client-5.5.18-1.linux2.6.i386.rpm
MySQL-server-5.5.18-1.linux2.6.i386.rpm MySQL-

shared-5.5.18-1.linux2.6.i386.rpm ができあがっていることを確認してください。

58

2015 April

インストール途中に「/sbin/insserv failed, exit code 1」と表示されますが、どうやら OS 起動時のスタートアップ登録はできたものの、自動起動が有効にならないようです。今回は使い捨てのサーバーなので特に気にせず、OS 起動時に mysql

を手動で起動することにします。それでは起動してみましょう。
■リスト 9：mysql 起動$ sudo service mysql start
Starting MySQL..                            [  OK  ]

このままでは無法地帯の MySQL なので、mysql_secure_installation コマンドで最低限のセキュリティを確保します。
■リスト 10：mysql_secure_installation$ mysql_secure_installation
Enter current password for root (enter for none): （空エンター）

Set root password? [Y/n] y
New password:（パスワード入力。ターミナルには表示されない。）
Re-enter new password: ( パスワード再入力 )Remove anonymous users? [Y/n] yDisallow root login remotely? [Y/n] yRemove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] y

次に、wordpress 用データベースを作成します。ここではDB 名を「wordpress」とします。データベース作成後の確認で、「DEFAULT CHARACTER SET utf8」と表示されていれば OK です（リスト 11）。

データベース作成が終わったら、wordpress データベー

スにすべての権限を持つユーザー「wpuser」を作成します（リスト 12）。

データベースの設定は以上です。

■リスト11：データベース作成$ mysql -u root -p< パスワード > -e "CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8;"$ mysql -u root -p< パスワード > -e "show create database wordpress;"+-----------+--------------------------------------------------------------------+| Database  | Create Database                                                    |+-----------+--------------------------------------------------------------------+| wordpress | CREATE DATABASE `wordpress` /*!40100 DEFAULT CHARACTER SET utf8 */ |+-----------+--------------------------------------------------------------------+■リスト12：データベース接続用ユーザー作成$ mysql -u root -p< パスワード > -e "GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY \"< パスワード >\";"$ mysql -u root -p< パスワード > -e "select user,password,host from mysql.user;"+--------+-------------------------------------------+-----------+| user   | password                                  | host      |+--------+-------------------------------------------+-----------+| root   | *A97C7CD09761823971F44DF0D3CEB0C805670B65 | localhost || root   | *A97C7CD09761823971F44DF0D3CEB0C805670B65 | 127.0.0.1 || root   | *A97C7CD09761823971F44DF0D3CEB0C805670B65 | ::1       || wpuser | *A97C7CD09761823971F44DF0D3CEB0C805670B65 | localhost |+--------+-------------------------------------------+-----------+

Apache, PHPのインストール
いよいよ Apache（httpd）と PHP をインストールします。

これらのパッケージは RedStar のメディアにあるので、あらかじめ ISO イメージをホームディレクトリに SCP 転送しておいてください。それでは ISO イメージをマウントしましょう。
■リスト13：RedStar ISO イメージマウント$ mkdir RS30ISO$ sudo mount -o loop -t iso9660 redstar_desktop3.0_
sign.iso RS30ISO

wp-cli のインストール
WordPress の設定を楽に行うため、WordPress をコマン

ドラインから設定できるツール wp-cli ※5 をインストールします。

■リスト 15：wp-cli インストール$ cd$ [ ! -d ${HOME}/bin ] && mkdir -p ${HOME}/bin$ curl -o ${HOME}/bin/wp https://raw.
githubusercontent.com/wp-cli/builds/gh-pages/phar/
wp-cli.phar$ chmod 755 ${HOME}/bin/wp

ISO イメージが読み込み専用でマウントされましたので、

rpm パッケージのあるディレクトリに移動し、パッケージをインストールします。

■リスト14：パッケージインストール$ cd ${HOME}/RS30ISO/RedStar/RPMS/$ sudo rpm -ivh httpd-2.2.15-5.rs3.0.i386.rpm
httpd-tools-2.2.15-5.rs3.0.i386.rpm php-5.3.2-6.
rs3.0.i386.rpm php-cli-5.3.2-6.rs3.0.i386.rpm
php-common-5.3.2-6.rs3.0.i386.rpm php-gd-5.3.2-6.
rs3.0.i386.rpm php-intl-5.3.2-6.rs3.0.i386.rpm
php-mbstring-5.3.2-6.rs3.0.i386.rpm phpmysql-5.3.2-6.rs3.0.i386.rpm php-pdo-5.3.2-6.
rs3.0.i386.rpm php-tidy-5.3.2-6.rs3.0.i386.rpm
php-xml-5.3.2-6.rs3.0.i386.rpm php-xmlrpc-5.3.2-6.
rs3.0.i386.rpm php-zts-5.3.2-6.rs3.0.i386.rpm
apr-util-1.3.4-3.rs3.0.i386.rpm apr-1.3.3-4.
rs3.0.i386.rpm apr-util-ldap-1.3.4-3.rs3.0.i386.rpm
mailcap-2.1.32-1.rs3.0.noarch.rpm

wp-cli を用いた WordPress インストール
それでは、先ほどインストールした wp-cli を使って、コマンドラインから WordPress をインストールしてみましょう。

■リスト 16：wp-cli を用いた WordPress インストール# .htaccess 作成、# ドキュメントルート オーナー・パーミッション変更$ sudo touch /var/www/html/.htaccess$ sudo chown -R apache:staff /var/www/html/$ sudo chmod -R g+w /var/www/html/※ 4 MySQL コミュニティ公式サイト（http://downloads.mysql.
com/）から同じバージョンをダウンロードしてインストールを試みましたが、rpm パッケージの依存関係地獄でした。
※ 5 http://wp-cli.org/

59

# wordpress インストール$ wp core download --locale=ja --path=/var/www/html/以上の設定が終わったら、自身のホスト名を /etc/hosts

ファイルに追加します。

$ wp core config --dbname=wordpress --dbuser=wpuser--dbpass=< データベースのユーザー wpuser のパスワード> --path=/var/www/html/  --extra-php <<PHP
define('FS_METHOD', 'direct');
PHP$ sudo wp --allow-root core install --url=< ホスト名
> --title=" ぬるぽぽぽ のブログ " --admin_user=< ブロ
グにログインするためのユーザー名 > --admin_password=<
ブログにログインするためのパスワード > --admin_■リスト 18：/etc/hosts 編集$ cat /etc/hosts | grep ^127.0.0.1 | sed -e "s/$/www.example.com/" | sudo tee /etc/hosts$ ip a | grep "inet " | grep -v 127.0.0.1 | awk'{print $2}' | sed -e 's/\/[0-9]*/\t\twww.example.
com/' | sudo tee -a /etc/hosts

email=< 自身のメールアドレス > --path=/var/www/html/

それでは Apache を起動しましょう。

最後に「wp core install」
した後「sh: /usr/sbin/sendmail:■リスト 19：Apache 起動

そのようなファイルやディレクトリはありません」というメッセ ー ジ が 表 示 され ます。これ は RedStar にあらかじめ

postfix をインストールしておけば解決しますが、そもそもメールを送信させたくないので今回は放置します。先ほどのエラーメッセージの直下に「Success: WordPress installedsuccessfully.」と表示されれば WordPress のインストール

は成功です。

$ sudo service httpd start

それでは折角なので、RedStar のブラウザからブログを見てみましょう。ブラウザはデスクトップ下部にある Dock のよ

うなものから地球マークのアイコンをクリックするか、ターミナルから firefox コマンドを実行します。

■ RedStar のブラウザでブログを表示

Apache の設定
RedStar は、スタイルシートの拡張子「.css」をテキストと見なしてくれず、WordPress のテーマが何であっても表示が崩れてしまいます。なので、<files *.css>
    ForceType text/css</files>を httpd.conf の <Directory "/var/www/html"> 直 下 の

何故か日本語は化けずにアルファベットのみが豆腐になっ行に追記します。さらに、WordPress のパーマリンク設定ています…なお、手元のマシンからアクセスしたところ、文字None から All にします。vim を開くのも面倒なので、以下のブラウザのエンコード設定なのでしょう。ともあれ、どうにか

変 更 を .htaccess に 反 映 で きるよう、AllowOverride をように2 行のワンライナーでやってしまいます。

■リスト17：httpd.conf 設定$ sudo cp -p /etc/httpd/conf/httpd.conf{,.orig}$ HTTPDCONF=/etc/httpd/conf/httpd.conf$ sudo sed -i 's/<Directory[[:space:]]*\"\/var\/www\/html\">/<Directory\ \"\/var\/www\/html\">\n<files *.css>\n    ForceType text\/css\n<\/files>/g' ${HTTPDCONF}$ NUM=$(cat -n ${HTTPDCONF} | egrep -A 1000'(<Directory[[:space:]]*"/var/www/html">)' | egrep-m 1 -B 1000 '(</Directory>)' | egrep"AllowOverride[[:space:]]*None" | awk '{print $1}'); sudo sed -i "${NUM}s/None$/All/" ${HTTPDCONF}

60

2015 April

化けは起きませんでしたので、これはもう RedStar の OS か
RedStar をデスクトップから WEB サーバーへと魔改造することに成功しました。

いかがでしたでしょうか？こうして書いてみると案外そんなに難しくなさそうに見えますが、ハングルが読めず、最初はroot も取れない中で RedStar のクセを掴み、WEB サーバーとして構築するのに物凄くトライアンドエラーを繰り返しました。しかし、いざやり遂げてみるとかなり Linux でのサーバー構築スキルが上達しているのが自分でもわかるはずです。
それではみなさん、ごきげんよう！

ア！
ニケージエンジニ
これであなたもユ

ユニケージ開発手法教育講座「ユニケージ開発手法教育講座」は、ユニケージ開発手法におけるデータ管理の方法や、オリジナルコマンドの使用方法などをハンズオン形式で具体的に学べる講座です。UNIX の基礎からユニケージ開発手法による開発プロジェクトの進め方まで、ユニケージエンジニアとしてのトータルスキルを習得できます。

http://www.usp-lab.com/LECTURE/CGI/LECTURE.CGI
ジ
ユニケー
講座
基礎技術

充実中！
続々と新講座もK - BASIC

ユニケージ基礎編

K - WEB

WEBアプリケーション編

K - BATCH

バッチ処理編（ウェブアプリケーション処理）

K - ARCH

ユニケージアーキテクチャ編

K - SETUP

ユニケージ開発環境セットアップ編

K - UNYO

システム運用・管理編

K - PROJECT

プロジェクトマネジメント・人材育成編

K - SQL

速習：SQL からの移行編

K - STAT

ユニケージにおける統計コマンド編

UNIX 初心者のための講座などもご用意しています。
技術の草原で百獣の王を目指す
エンジニアたちの新感覚トークライブ！

http://techlion.jp/

上記のサービス内容は 2015 年 3 月現在のものです。最新の情報はホームページにてご確認ください。

ISBN 978-4-904807-18-7
C3455 ￥500

USP 研究所
定価（本体 500 円＋税）