さくらVPS設定マニュアル ITかあさん

ITかあさん

目次:さくらVPS設定マニュアル

さくらVPSサーバーCentOS64bitをレンタルしました。そこでの設定の模様を初心者でも分かりやすく解説。

さくらVPSが開通した直後から基本的なWEBサーバーを一通りたてるところまでを通して解説します。
さくらのVPSですが、CentOS5の64bitであればどなたでも参考にして頂くことが出来ます。

あと、このブログは仕事のメモとして記述していきますので 動作において責任は持ちません。ご利用はあくまで自己責任でお願いします。

また、よりよい記事作りのため、些細なことでも質問ありましたら、記事下よりコメントを下さい。また、間違った情報への指摘も参考にさせて頂きますっ

CentOS6 に yum localinstallが警告でまったくインストールできない!


CentOS6に、mySQL5.6インストール時にmySQL公式サイトから追加したリポジトリがyum localinstallが警告出てしまって全く使えない!

警告: /var/tmp/rpm-tmp.PvyEG0: ヘッダ V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY

ええええ!エラーもこれだけ。意味がわからん!

MySQL公式サイトから追加したCentOS6用リポジトリ

何度やってもyum localinstallが警告でて失敗。。

yum localinstall mysql-community-release-el6-5.noarch.rpm

そもそもyum localinstallコマンドってなんだ!

そもそもyumコマンドって登録されたリポジトリからパッケージインストするコマンド。yum localinstallコマンドはローカルの(自分のLinux環境)RPMをyumコマンドでインストするためのものらしい。

localinstall 実行時にGPGキーをチェックしないlocalinstallもあるよ

ずっと気になっていた警告、key ID 0608b895: NOKEY localinstallについて調べていたらGPGキーというものがわかりました。

よくわからないですが、yumコマンド使う際に、公開鍵を求められるケースがあって、すべてが公開鍵があるわけではなくて中にはGPGキーの存在しないものもあるってことがわかりました。
で、今回MySQLの公式から追加したRPMリポジトリが、単純に公開鍵が設定しているものじゃないから注意せえよ!っていうことみたいですね。
なので、今回はGPGキーがないものは仕方がないこととして、実行時にGPGキーをチェックしないlocalinstallを実行。

実行方法

*みにくいですが、nogpgcheck前のハイフンは2回です
yum localinstall mysql-community-release-el6-5.noarch.rpm –nogpgcheck

これに数時間はまりましたが、これでlocalinstallは理解できましたー

CentOS Apache 2 Test Pageを非表示にする

Apache 2 Test Pageを非表示にする

Apache 2 Test Pageとはこれ!

これは404など、サーバーにファイルが無い場合などこの画面が出ます。
まあ自分で404ページを.htaccessなりApacheなりで設定すればいいだけの話なのですが、ただの

Forbidden

でええじゃないか!ということで。

Apache 2 Test Pageのあのファイルの場所

Apache 2 Test Pageのファイルはここにあるそうです。

/error/noindex.html

このファイルを削除してもよいそうですが、ちょっとApacheのデフォルトページを削除するのも気がひけるので、このページを表示させないようにだけ設定します。

vi /etc/httpd/conf.d/welcome.conf
# This configuration file enables the default "Welcome"
# page if there is no default index page present for
# the root URL.  To disable the Welcome page, comment
# out all the lines below.
#以下をコメントアウトするだけ
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /error/noindex.html
#</LocationMatch>

後はApacheを再起動すればOKです。

Apache再起動で設定反映

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

PostgreSQL8.4のインストール

調べた結果、デフォルトでバージョン指定するだけでPostgreSQL8.4.xはインストール出来るらしい・・・

remi、epelリポジトリから新しいPostgreSQLはインストできるか

浅はかな考えですが、追加したリポジトリから新しめのPostgreSQLはインストールできるかをやってみる

yum –enablerepo=remi,epel install postgresql
psql –version PostgreSQLのバージョン確認
[root@www ~]# psql –version
psql (PostgreSQL) 8.1.23
contains support for command-line editing

8.1という残念な結果に。。。この残念さ加減はリポジトリを追加していないで行うPHPや、Mysqlと同じですね。

古いPostgreSQLを削除

PostgreSQLのアンインストール

yum remove postgresql

設定,データの削除。

rm -rf /var/lib/pgsql

CentOS 5.8 に PostgreSQL 8.4 をインストール

調べてみると、バージョンを指定すれば、標準リポジトリでもPostgreSQL 8.4はインストールできるようでして。

yum search postgresql84

yum search postgresql84の実行結果

=============================== Matched: postgresql84 ================================
postgresql84.x86_64 : PostgreSQL client programs
postgresql84-contrib.x86_64 : Contributed modules distributed with PostgreSQL
postgresql84-devel.i386 : PostgreSQL development header files and libraries
postgresql84-devel.x86_64 : PostgreSQL development header files and libraries
postgresql84-docs.x86_64 : Extra documentation for PostgreSQL
postgresql84-libs.i386 : The shared libraries required for any PostgreSQL clients
postgresql84-libs.x86_64 : The shared libraries required for any PostgreSQL clients
postgresql84-plperl.x86_64 : The Perl procedural language for PostgreSQL
postgresql84-plpython.x86_64 : The Python procedural language for PostgreSQL
postgresql84-pltcl.x86_64 : The Tcl procedural language for PostgreSQL
postgresql84-python.x86_64 : Development module for Python code to access a PostgreSQL
: DB
postgresql84-server.x86_64 : The programs needed to create and run a PostgreSQL server
postgresql84-tcl.x86_64 : A Tcl client library for PostgreSQL
postgresql84-test.x86_64 : The test suite distributed with PostgreSQL

PostgreSQL 8.4のインストールコマンド

84と記述するのを忘れずに!

yum install postgresql84-server postgresql84-devel

念のためバージョン確認

# psql –version

psql (PostgreSQL) 8.4.12
contains support for command-line editing

めでたし!

PHPでPostgreSQLを動かすphp-pgsqlのインストも忘れずに!

yum php php-pgsql

もしも起動、再起動に失敗したら?

インスト直後のPostgreSQLがうまく起動しない時のトラブルが発生したらこちらをご確認下さい。

複数サイトが展開できるよう、バーチャルホストを設定する

複数サイトが展開できるよう、バーチャルホストを設定する

WEBサーバー構築に欠かせないこと、バーチャルホストの設定についてです。
一つのサーバーで複数サイトを展開出来ます。
イメージとしては、サーバーの中に違うドメインのお部屋を複数用意してあげることでしょうか?
何はともあれ、バーチャルホストの設定をしてみます。

バーチャルホストが使えるよう、Apacheに設定

vi /etc/httpd/conf/httpd.conf ←Apache設定ファイル変更

httpd.confのファイルが表示されたらすかさず

?NameVirtualHost

と書いて、Enter
カーソルが移動します。
(これはviエディタの検索機能です)

[iキー]を押してインサートモード
#
# Use name-based virtual hosting.
#
NameVirtualHost *:80 ←コメント解除
#

このコメント解除をすることで、バーチャルホストが使えるようになります。

Escキーを押して、インサートモード終了

:wq![Enterキー] ファイルの変更を保存して終了

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

再起動でApacheの変更設定を反映させます。

バーチャルホスト設定

ここでは

example.com

と、いう例のドメインでバーチャルホストでhttp://example.comとアドレスバーに打つとページが表示されるまでの手順を紹介します。

まずはユーザーの追加

ユーザーを追加し、追加したユーザーディレクトリに対しバーチャルホスト用のドキュメントルートディレクトリとします。

adduser example.com

ユーザーを追加した段階で

/home/example.com

と、いうユーザーにマッチしたディレクトリが出来るんでしたね。今回はこのディレクトリをドキュメントルートを作るのに利用します。

まずはユーザーに対するパスワードの設定

passwd example.com

パスワードまで設定し、ユーザーの追加を完了させます。

ユーザーの追加がパスワードまで完了したら、以下のコマンドを順番に打ってください

chmod 755 /home/example.com ←example.comのディレクトリパーミッション700を755に変更
#
mkdir /home/example.com/public_html ←example.comディレクトリの下にpublic_htmlディレクトリ
chown example.com /home/example.com/public_html/ ←ディレクトリの所有者変更 これがないとFTPツールで変更がかけられなくなる

バーチャルホストの設定ファイルを作成

vi /etc/httpd/conf.d/virtualhost-example.com.conf ←赤字部分にドメイン指定
<VirtualHost *:80>
ServerName example.com ←赤字部分にドメイン指定
DocumentRoot /home/example.com/public_html ←URLを叩いたら読みにいくディレクトリ
ErrorLog logs/virtual-error_log
CustomLog logs/virtual-access_log combined env=!no_log
</VirtualHost>

ここまで書けたら、

Escキー(インサートモード終了)
:wp!

で、ファイルを保存し、Apacheを再起動します。

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

テストファイルの作成

echo ‘‘ >> /home/example.com/public_html/index.php

phpinfo

CentOSにリポジトリからMysql5.5をインストールする

リポジトリからMysql5.5をインストールする

追加したリポジトリからMysqlをインストールするのはたったこれだけ

# yum –enablerepo=remi,epel install mysql-server

Complete!が表示されれば無事完了。

Mysqlを起動させる

Mysqlを再起動させます。

# /sbin/service mysqld start

これですべてOKと表示されれば問題なくMysqlを利用することが出来ます。

もしもうまく起動できない、/mysql/mysql.sock’ (2) のエラーが出てしまったらこちらを参考にして下さい。

Mysqlの初期設定

Mysqlの初期設定をやっておかないと、今後phpMyadminなどからもアクセスすることが出来ません。

Mysqlのルートパスワードを設定したり、テストテーブルの削除をします。

Mysql初期設定実行コマンド

必ずMysqlを起動してから実行して下さい。起動前に以下コマンドを実行しても、/mysql/mysql.sockエラーになってしまいます。

# mysql_secure_installation

Mysqlの初期設定
テストテーブル、テストユーザーの削除について聞いてきますので、すべてYesで削除と応えてOKです
mysql初期設定の質問はすべてYes(Yキーで)

Mysql自働起動設定

chkconfig mysqld on

以上でMysqlの初期設定を含めたインストールの手順は完了です。

最新のPHP5.3.xをインストールしよう

最新のPHP5.3.9をインストールしよう

普通のyumコマンドではPHPは5.1系しか入れることが出来ず、WordpressでさえPHPは5.2.4以上が必要です。前回追加したリポジトリを利用して最新のPHP環境を手に入れましょう。
なお、remi、epelリポジトリから追加できるPHPは2011/1/27現在5.3.9となります。

PHP5.3.9インストール

PHPのインストールは以下のコマンドを入力するだけ。

#yum --enablerepo=remi,epel install php

Complete!という表示が出たら、バージョンを確認しましょう。

念のためバージョン確認

# php -v

CentOSのデフォルトのリポジトリでインストしたら?

もしここで、remi、epelリポジトリを使わずにPHPをインストールするなら

# yum -y install php

となります。ただし、ここでremi、epelリポジトリを使わないと、PHPは5.1系しか入らないので注意が必要です。

PHPでよく使うモジュールをインストール

PHPを使う上で、比較的利用頻度の高そうなモジュールをまとめてインストールしておきます。

#yum --enablerepo=remi install php-devel php-gd php-mbstring php-mysql php-pdo php-pear php-xml php-imap

※依存関係を考慮して、追加したリポジトリからPHPを入れた場合、PHPのモジュールも追加したリポジトリから入れるようにしてください。その場合必ず –enablerepo=remiの記述が必要です。

必要であればpearもインストールするとよいでしょう。
あるといいのは pear:MDB2(データベースの取扱),pear:pager(ページャー),pear:auth(ユーザーセッション)
pearのインストールはこちらを参考にして下さい。

Apache再起動

Apache再起動/etc/rc.d/init.d/httpd restart

※PHPのパッケージとモジュールをインストールしたら Apacheを再起動しないとhttpdに反映されません。必ず再起動を。

PHPの動作確認

PHPがインストールされたかどうか確認します。

# vi /var/www/html/test.php ← PHPテスト用ページ作成

※/var/www/html/は、IPアドレス直下の閲覧可能ディレクトリのこと

インサートモードで以下を入力

インサートモードになって、以下を入力してください。


phpinfo();
?> ?>

[iキー]でインサートモード
[Escキー]インサート終了、
:wq! と入力で、保存して終了
:q! と入力で、保存しないで終了

:wq! と入力で、保存して終了したら試しにアクセスします。

アクセスするURLは以下。

http://サーバーのIPアドレス/test.php

表示が確認できたらテストページを削除します。

# rm -f /var/www/html/*

以上でPHPのインストールは完了です。

リポジトリの追加をしよう

そもそもリポジトリとは?

リポジトリとはパッケージの管理ツールのことです。何かしらのパッケージ管理ツール(リポジトリ)があるからこそ、コマンドとパッケージ名を入力するだけでパッケージのインストールが可能になるのです。
(パッケージとは、例えばPHPとかperlとかApacheとか。)
リポジトリを利用しない場合、ソースファイルをダウンロードして自分でコンパイルしなければならず、手間がかかります。
リポジトリがあるからこそ、簡単にパッケージの管理が出来るわけですね。
リポジトリにはもともとCentOSについているものもあれば、後からインストールすることも出来ます。

remiリポジトリを追加しよう

CentOSにだけでのリポジトリでは『安定している』と認定されたパッケージしかダウンロードすることが出来ません。
PHPにいたっては5.1、Mysqlは5.0系しかダウンロードが出来ません。(一応、PHPは確か5.3.3までは何とかCentOSのリポジトリでいけたはず)
もっと新しい、最新のパッケージが欲しい!しかも手軽に!となったらremiとepelリポジトリを利用しましょう。
インストールはとても簡単です。
以下のコマンドを入力するだけでインストールが可能です。

CentOS 5.8にepelリポジトリの追加

依存関係でepelリポジトリを先にインストします。

epelリポジトリの追加

# rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
こちらでは2012年7月現在- Unknown or unexpected errorで、インストール出来ませんでした。
現在はこちら
# rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

CentOS 5.8remiリポジトリの追加

# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm

追加したリポジトリの設定

一応これだけで使えるようにはなるのですが、このままでは常に追加したリポジトリからパッケージを探すことになるので、通常は出てこないようにしなければなりません。

enableを全て0に

enableを全て0にします。たったこれだけです。
viエディタでそれぞれ2つのファイルを変更してください。
enable = 0

コマンド:
#vi /etc/yum.repos.d/remi.repo

[remi]
name=Les RPM de remi pour Enterprise Linux $releasever – $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
failovermethod=priority

[remi-test]
name=Les RPM de remi en test pour Enterprise Linux $releasever – $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

コマンド:
#vi /etc/yum.repos.d/​epel.repo
[iキー]でインサートモード、[Escキー]でインサート終了、保存してコマンド画面に戻るには[:wq!]と入力して[Enter]キー
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 5 – $basearch – Debug
#baseurl=http://download.fedoraproject.org/pub/epel/5/$basearch/debug
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-debug-5&arch=$b
asearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 5 – $basearch – Source
#baseurl=http://download.fedoraproject.org/pub/epel/5/SRPMS
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-source-5&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
gpgcheck=1

以上でリポジトリ関係は終了です。

もし、リポジトリを削除したくなった場合はこちらを参考にして下さい。

さくらVPSにApacheをインストールしよう

さくらにはApacheがインストールされていない

初期段階ではさくらVPSにはApacheがインストールされていません。これではPHPどころか、HTMLすら表示することは出来ませんのでApacheをインストールしましょう。

apacheインストールコマンド

Apacheのインストールは以下のコマンド一発で終了です。
#なので、rootユーザーにてコマンドを実行しています。

# yum -y install httpd

しばらくすると、インストールの旨確認を求められるので[Yキー]Enterを押してください。
インストールが終了したら、念のため、Apacheのバージョン確認をします。

# apachectl -v
Server version: Apache/2.2.3
Server built: Oct 20 2011 17:00:12

これだけでApacheのインストールは完了です。
Apacheの起動、再起動はこちらを参考にして下さい
Apache起動、再起動など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にアップデートされます。

さくら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を一度利用したことのある人なら周知のことなので、変更するのが理想。