PerlとRubyがくしゅう帳

プログラミングの勉強会の参加記録や学んだことなど。 twitter ID : @tomcha_です。 最近は主にPerl関連の勉強会やコミュニティに参加しています。

2013年04月

昨年度、Perl入学式式第一期生として1年間受講者として参加していた勉強会にサポーターとして参加して来ました。
今日の課題はLinux、Plenv、Perlのインストール(環境構築)と誰もが通る第一歩、

「Hello,world !」を出力するコードを書くところまででした。

環境構築は、意外とハマるとことも有り、手こずった感じでした。(in東京、大丈夫かな?マンパワー的な意味で)インストールしようとするPCの環境って十人十色なので、ハマる時はハマるって感じでしょうか。

参加者は、何かしらの言語経験があり、Perl ”も” 使ってみたいという方が大多数でした。中には、プログラミング言語自体を勉強したいという方もおられました。

自分自身が後者側の者として昨年度参加し、今年は気がついたら何故かサポーター側に回っていたという人間です。ですので、自分のポジションとしては、初学者特有の悩み?を初学者視点で・・・例えば、

「こんなしょうもない事聞いていいのだろうか?」とか、

「質問して帰ってきた答えが難しくてわからない」とか、

「(ごく簡単な質問をしたつもりが)質問した内容が(回答者側で)高度に解釈されてしまい、帰ってきた答えが求めていたものと違った」

などの部分を埋められる感じで役に立てれば良いなぁと思っています。(ですので、手に負えない高度な質問は、真のプロの方に私も助けを求めるでしょう(笑)) 

ですので、どんな質問でも遠慮せず、 #Perl入学式 のハッシュ タグを付けての質問してもらえれば幸いです。Perl入学式は、「プログラミング初心者大歓迎」が売りのハードルを低く設定した勉強会ですので。


次回は6月、偶数月に開催の予定です。今日の資料は、総裁がweb上に上げてくれるはずなので、上がれば リンクを張ります。

昨日のtwitterで、「今度、Perl入学式の総裁に聞いてみよう」とつぶやいた時、思いついたサービスを作ってみた。

思いついた経緯はこんな感じ。

Perl入学式の総裁 -> 電車
今度 -> こんど


初めて東京へ行った時、電車の案内板の「こんど」と「つぎ」、どっちが早いのかわからなくて「つぎ」に乗ったら「こんど」が先に出発して悲しかった。

ニュアンス的には、「つぎ」が直近ぽくて「こんど」は随分先のイメージなのに、、、 
この春、東京に初めて出て困っている人も多かろう。 

ということで、 初めて東京に出て「つぎ」と「こんど」のどちらの電車が先に出発するかすぐに分かるサービスをつくってみました。


さくらVPSで、Perlで書いた自動メール送信DAEMONを使うため、使っているcpanモジュールをインストールしてみたが、いくつかのモジュールがエラーで入らなかった時の対処メモ。

入らなかったモジュールは
Email::Sender::Simple
Email::Sender::Transport::SMTP::TLS

さくらVPSのOSは、標準でセットアップされているCentOS6.4。
インストール方法は、cpanm  コマンド。
インストールログを確認すると、どうやらperl-Net-SSLeayとかのモジュールが原因っぽい。 

ググってみると、どうやら、Perlの基本モジュール?の一部がデフォルトでインストールされておらず、その一部がperl-Net-SSLeayらしいという記事を発見。LinuxとかUnixとかズブの素人なので、かなり自分の感覚で解釈して読んでるいるので、本当にそれが原因で合っているのか不安ながら、ま、失敗すればOS再インストールからやりなおせばいいかの精神で試してみました。

こちらのブログ記事を参考にさせて頂きました。

記事通りに3つのモジュールをインストールしてから、再度cpanmでEmail::~モジュールをインストールしたら、見事入りました!

perlbrewの不具合とか原因が何なのかよくわからない手探り状態から何とか解決。
とりあえず、何でもやって見ることが大切なんでしょうね。
あと、Perlコミュニティの人のヘルプはとても助かります。感謝。 

さくらVPSを借りて、ドメインも取得していよいよインターネットに書いたperlのコードやらサービスを公開する為にした事とハマった事メモ。

 さくらVPSの契約をしてから初期設定するまでは、ドットインストールの手順通りで大丈夫でした。ドットインストール、なんて便利なんだろう。

起動〜基本設定

  1. さくらvpsの公式webページのコントロールパネルから、仮想サーバー操作の「起動」スイッチでサーバー起動
  2. ローカルのMacbookAirから、ssh接続。rootで接続。
  3. コマンド yum updateでサーバー内のアプリ類をアップデート。 
  4. imを使って、/etc/sysconfig/i18n  ファイルを書き換えて日本語化する。
    lang"C"をja_jp.UTF-8に書き換え。

ログイン周りのセキュリティ対策

  1. ->useraddコマンドとpasswdコマンドで、通常使うユーザーアカウントを追加。
  2. ローカルのMacbookAirにある秘密鍵、公開鍵でログインする様に変更。
    (公開鍵ファイルをscpコマンドでサーバーへアップロード)
  3. upした公開鍵のパーミッションを600へ変更。 公開鍵のファイル名をauthorized_keysに変更。
  4. rootでログインし、追加したユーザーをsudousers(/etc/sudousers)に追加する。
    visudoを使って、root ALL=(ALL) ALL
    に同じ書式で追加するユーザー名を追記。
  5. /etc/ssh/sshd_config をcpでバックアップしてから編集。 
    #port22のコメントアウトを消して、アクセスするポートを別のポートへ変更。
    PasswordAuthentication yesをnoに変更。パスワード認証を禁止して公開鍵認証onlyにする。 
    #PermitRootLogin yesのコメントアウトを消して、yesをnoに変更。rootでのログインを無効化する。

あと、セキュリティ的にはルーティングテーブルを設定した方が良いみたいなので、それはまた後日。

このページのトップヘ