2012 1月 ITかあさん

ITかあさん

Apacheのバージョンを上げる

さくらVPSではApacheが最初から入っていないのですが、ServersmanではApacheが入っていますが、デフォルトで入っているバージョンはやや古い可能性があるので、Apacheのバージョンを本格的な運用が開始される前に対応しておきましょう。

Apacheバージョンアップのコマンド

# yum update httpd

もしもアップデートするバージョンが存在しない場合は下記のように表示されると思います。

Could not find update match for httpd
No Packages marked for Update/Obsoletion

Complete!したらApacheを再起動

必要に応じてApacheを再起動しておきます。

# /etc/rc.d/init.d/httpd restart

Apacheのバージョンを確認

全て完了したらApacheのバージョンも確認しておきましょう。

# apachectl -v

以上でApacheのバージョンアップは終了です。

CentOS5のバージョンアップする

さくら VPSにCentOSにアップデート

(2012/01/13現在では、バージョンアップするとCentOS5.7になりました。)

一般ユーザーでログイン

TeraTermで、一般ユーザーにてログインします。
ログイン方法は前回記事rootログインとやり方は全く一緒です。
ユーザー名とパスワードとポート番号は自分で変更・設定したものを入力してください。
まだユーザーを追加していない人は、下記リンクを参考にユーザーの追加を行ってください。
関連:CentOSでユーザーを追加する

ログイン完了したら、rootに切り替え

一般ユーザーからrootに切り替えを行います。
基本的にはログインは一般ユーザーで行い、SSHにログインしてからrootにユーザーを切り替えます。
ユーザーの切り替えはsuコマンドでrootに切り替えます

$ su – root

するとrootのパスワードを聞かれるので、rootのパスワードを入力したら、rootに切り替わります。

自分のCentOSのバージョンを確認

以下コマンドで自分のCentOSのバージョンが分かる

#cat /etc/redhat-release

現在のバージョンが表示される。
(2011年末に借りたさくらVPSではバージョンは5.5のようです。)

CentOS release 5.5 (Final)

アップデート実行

さっそくCentOSのバージョンを新しくしましょう。

#yum upgrade

しばらくするとダウンロードの許可を求められる

Is this ok [y/N]

[y]を入力して許可。
しばらくするとまたIs this ok [y/N]と聞いてくるので
[y]を入力して許可。

Complete!

と表示されればCentOSのアップグレードの終了。

再びCentOSのバージョンチェック

# cat /etc/redhat-release

でバージョンを確認。

CentOS release 5.7 (Final)

2012/01/13段階でアップデートを実行したところ、5.7になりました。

以上でバージョンアップ完了です。

注意

2012年7月現在、さくらVPS OS再インストールを行うと、最新CentOS6.2になります。しかし、CentOSのアップデートの場合はCentOS5.8にアップデートされます。

CentOS5 Apache起動・停止・再起動とか

Apacheの再起動

Apacheの再起動は以下のコマンド。
新しくモジュールを追加したり、PHPやMysqlをインストールしたり、あるいはApacheの設定を変更したら、必ずApacheを再起動させて変更を反映させます。

/etc/rc.d/init.d/httpd restart

Apache 停止

/etc/rc.d/init.d/httpd stop

緩やかな再起動

/etc/rc.d/init.d/httpd graceful

再読み込み

/etc/rc.d/init.d/httpd reload

CentOS5ユーザーの削除

ユーザーが削除するときは以下のコマンドを実行します。

userdel -r centos

なお、ユーザー削除時にこのユーザー名のフォルダも同時に削除されてしまいますので ご注意下さい。

CentOS5ユーザーの追加

ユーザーの追加

次にroot以外のログイン用ユーザーを作成します。
newuserとは例で示したユーザー名。各人それぞれ好きな名前のユーザー名を追加してください。

# useradd newuser[Enterキー]

作業用ユーザーにパスワードを設定

# passwd newuser[Enterキー]

パスワード入力

パスワードはいずれも入力しても何も表示されないので注意。

New UNIX password:[ログイン用ユーザパスワード]
Retype new UNIX password:[ログイン用ユーザパスワード確認用]

homeディレクトリにユーザー名と同じフォルダ名が出来る

CentOSの場合、ユーザーを追加すると、ユーザー名と同じフォルダ名が自働で作られます。
FTPサーバーを構築していない場合は、WinSCPなどのSCP接続が可能なソフトで接続してみます。
試しにWinSCPクライアントでつないでみましょう。

WinSCPで繋ぐ

以下は先ほど追加したユーザーでのWinSCPの設定について

ログインしてみましょう。赤線のディレクトリ部分に注目してください。home下に先ほど追加したユーザー名でディレクトリが作られていることが確認出来ますね。

さくらVPS開通したら真っ先にやること

さくらVPS初期設定
さくらVPSは初期状態は停止状態にあるので、まずはVPSの起動から

サーバーを起動する

まずはさくらVPSサーバーのコントロールパネルにログインする。

さくらはVPSホームより、VPSサーバーの起動、停止、再起動が行える。
この時点ではまだサーバーは起動していない。
VPS ホームより 起動をクリック。

画面に『起動中』と表示されれば起動OK。

ログイン用のユーザーを作成する

ここからはTeraTermという、SSHターミナルエミュレーターを使って作業をしていきます。サーバーではこのSSHのコマンドでなんでも作業を行います。コマンドさえ間違えなければ何も難しいことはありません。

TeraTermを利用してrootでログイン

TeraTermを起動します。ホストにはIPアドレス、さくらVPSはデフォルトではポートは22番なのでそのまま。Serversmanでは3843だったります。SSH2になっていることを確認し、OK。

初期はまだrootしかユーザーが無いので、ひとまずrootと開通後に届いたメールに記載されているパスワードを入力しログインします。

下の画像はログイン直後の画面です。
(左端が#になっていたら、現在rootで作業しているということ)

ログイン用ユーザーの作成

次にroot以外のログイン用ユーザーを作成します。
newuserとは例で示したユーザー名。各人それぞれ好きな名前のユーザー名を追加してください。
#とはrootで入っていますよ、の意味なので、間違えて#も一緒に書かないようにね。

# useradd newuser[Enterキー]

作業用ユーザーにパスワードを設定

# passwd newuser[Enterキー]

パスワード入力

パスワードはいずれも入力しても何も表示されないので注意。

New UNIX password:[ログイン用ユーザパスワード]
Retype new UNIX password:[ログイン用ユーザパスワード確認用]

以上でユーザーの追加が完了しました。

rootログイン禁止

次にrootログインを禁止します。
TeraTermでいきなりrootでログインしていくと、rootのパスワードが漏れる恐れがあるので、rootでの直接ログインを今後禁止します。
必ずログイン用ユーザーを作成してから作業を行う。ログインができなくなります

viモードでsshの設定ファイルを編集

viモードでsshd_configというファイルを編集します。viとFTPでの作業することの決定的な違いは、FTPは都度アップロードするのに対し、viモードとはサーバー内のファイルを直接編集する点です。
viモードの詳しい使い方・操作方法

まずは以下のコマンドを実行。/etc/ssh/sshd_configを編集します。

# vi /etc/ssh/sshd_config[Enterキー]

下の画像はSSH設定ファイルsshd_configをviで開いた直後の状態。
[iキー]を一度クリックするだけでインサートモード(編集できる状態)に切り替わります。

変更前

 #PermitRootLogin yes

変更後(コメントアウトもはずすこと)

 PermitRootLogin no

変更した内容を保存する

:wq![Enterキー]

保存せず終了

間違えたりして、変更を反映したくない場合は以下コマンドを実行します。
変更が反映されずviエディタを終了することが出来ます。

:q![Enterキー]

保存して再起動をしないと変更は反映されない。
まだ設定する内容があるのでそのまま次の作業。

VPSポート番号を変更

そのままSSHポートも変更。さくらVPSは初期で22番ポートを利用。
一般的すぎるポート番号ではやはりセキュリティホールになるのでポート番号を任意の数字に変更します。
インサートモードを終了せずに、13行め付近 ポート変更

ポート番号を任意の番号に。
1000以下だと他のサービスと被る恐れ。

Port 1000

SSH再起動

インサートモードを終了して、SSHを再起動。
インサートモードを終了するには[Escキー]。Escキーをクリックすると、INSERTの青字が消える。

viエディタの終了と保存

viエディタで設定ファイルの変更が終わったら、下記を入力。

:wq![Enterキー]

保存せずにviエディタ終了

あれれ?設定ファイルがおかしくなった?変になったと思ったら、慌てず変更をせずに一度終了しましょう。以下コマンドを入力すれば、変更が反映されず、viエディタが終了します。

:q![Enterキー]

ここまで終わったら、設定を反映させるため、SSHを再起動します。
下記がSSH再起動のコマンド

# /etc/init.d/sshd restart

確認のため、一度TeraTermを落として、再びTeraTermを起動する
ほど変更したポート番号と一般ユーザーでログインする。

すでにrootログインを禁止したので、もうrootログインはできなくなっている。
以後、TeraTermでログインするときは一般ユーザーで行う。

一般ユーザーでログインすると、左端が$になっていることが確認できる。現在一般ユーザーで作業中という意味になる。

以後、TeraTermでログインするときは一般ユーザーで行う。
すでにrootログインを禁止したので、もうrootログインはできなくなった。

Serversmanだと3843なので変更しなくてもいいのかな~と思いつつ、Serversmanは3843のポート番号だということはServersmanを一度利用したことのある人なら周知のことなので、変更するのが理想。

Javascript 電話番号正規表現

Javascriptの電話番号のバリデーションを行っていたのですが、どうも電話番号を『現実的にかつ完璧に』正規表現チェックをするのは難しいらしい。
よく出回っている電話番号のバリデーションチェックだと以下のようなものがあるのですが、下記の場合だと最後のケタ数が4桁で終わらないといけないのでフリーダイヤルの一般的な形『0120-000-000』の対応が出来ない。

/^\d{2,4}-\d{2,4}-\d{4}$/

結論:電話番号正規表現は妥協が必要

下記が私が書いた電話番号の正規表現

/^0\d{1,4}-\d{1,4}-\d{3,4}$/

左のブロックから順に解説すると、

0から始まる2桁以上4桁以下-1桁以上4桁以下-3桁以上4桁以下

この形だと03-1-4678などありえない電話番号でもtureが返ってしまうのですが、そこはケースバイケースで。

おまけ:ハイフンなし

/^\d{7,13}$/

Linkタグ+rel属性でSEO効果をアップ


relを利用する『要素(タグ)』によって使い方、意味が異なるようです。
また、SEO上の強い因果関係もあるようで、非常に興味深い属性です。

スタイルシートやファビコンの読み込みで使ったり、後はlibht-box系のjQueryでたまにrelタグに画像のURLを書いたりなど 普段あまり意識して使ったことはありませんでした。最近趣味サイトを作ったときにふと気になったので、
良い機会ですし、 rel属性について色々調べてみたいと思います。

今すぐ使えるSEO効果のあるrel属性参考

今回非常に内容が長くなってしまったので、先に参考のコードを示しておきます。詳しい解説は下まで読んでいってください。

index

ITかあさんのインデックスを示す場合。各ページのトップページとして認識される。

<link rel="index" title="ITかあさん" href="/" />

alternate

RSSリーダーの設定

<link rel="alternate" type="application/rss+xml" title="ITかあさん" href="http://www.kaasan.info/feed" />

携帯サイトのURLを設定。携帯版があるなら、対応した携帯版のURLを記述。ポイントは携帯版のトップページだけでなく、各PC版に対応したページを記述すること。携帯サイトは自分で出来るSEO対策が少ないので、携帯版があるなら必ず対応したほうがよいでしょう。(残念ながらITかあさんに携帯版はありませんが・・・)

<link rel="alternate" media="handheld" href="ページに対応した携帯サイトのURL" title="ITかあさん携帯版" />

archives

現在のページと関係のあるページ。ブログ記事に対して、目次がそれにあたる。

<link rel="archives" title="WEBサイトテクニック" href="http://www.kaasan.info/archives/category/html">

author

このサイトの所有者。会社概要のホームページのリンクを張ったり、『所有者』を示すもの。mailto:メールアドレスの設定もOK。

<link rel="author" title="ITかあさん" href="http://www.kaasan.biz/archives/category/html">

canonical

301リダイレクトと同じ効果あり?

<link rel="canonical" href="http://www.kaasan.info/"/>

archives、や携帯サイトの設定は、クローラーが巡回する上での手助けとなってくれるでしょう。

そもそもrel属性とは?

HTMLタグ/ページ全般タグ/別ページとの関係を示す – TAG index Webサイト

link要素を使用すると、関連する別の文書との関係を示すことができます。この要素はhead要素の中で使用します。
一部のブラウザは、この情報を利用してナビゲーション用のメニューを表示します。

とのこと。効果的に使うことで前後との関係性を表すことが出来るようです。

canonicalでURLの正規化

よく、パラメータがあたってしまう検索結果に対して.htaccessで私もURLをきれいに正規化してあげるのですが、すると問題として『URLの重複』が発生するということ。

違うURLで全く同じコンテンツがあるとして正しいSEOの効果を得ることが出来ない。

そこでいらないほう(つまり、URLを正規化されていないパラメータがまだあたっているほう)を、正規化したURLのコピーですよ!と検索エンジンに認識させる必要がある。

このタグは301リダイレクトと同等の効果があるとされ、サイトのドメイン移転の際にも効果的に使うことが出来そうです。

こうすることで上記タグがあった場合検索エンジンは/archives/690のコピーなんだな、コンテンツの重複が存在しているわけではないんだな、と認識することが出来るのです。

canonical補足:なるべくソース上部に記述すると確実

Google先生によると、canonicalはheadの最初にに書くとより効果的なのだそうです。

<head>
<link rel="canonical" href="http://www.kaasan.info/">
・
・
</head>

検索エンジン3社、正しいサイトURLを認識させるcanonical属性を導入より。

まとめ

canonicalの存在自体は知ってはいたものの301リダイレクトと同じ効果があるとは知りませんでした。何でもリダイレクトさせるのは乱暴ですし、同じ効果が得られるならcanonicalを利用したほうがいいかも知れませんね。

HTML5マークアップ

HTML5でサイトを作ってみました

さてさて、お正月休みも終わって、3連休も終わって今日から本格的に仕事モード。久々に早起きしてブログ更新です。
お正月休みを利用して初HTML5マークアップサイトを作ってみました。
そこでのHTML5マークアップのコツなども踏まえて数回にわたってHTML5マークアップとプラスしてCSS3の解説もしていきたいと思います。

HTML5で作成したITかあさんのサイト

さて、お正月休みを利用して作ったのは下記サイトです。
HTML5 マークアップの解説も下記サイトを利用して進めたいと思います。

HTML5書き出し

HTML5 では書き出し(ドキュメントタイプの宣言)がずいぶんシンプルになっていることはご存じの方も多いはず。

xhtml1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">