サーバー構築方法(Linux編)

提供: JUNKWIKI(ジャンクウィキ)
移動: 案内検索

Linuxでサーバを組みたい方へ。


はじめに

ここではCentOSを使った自宅サーバの構築方法(というよりも構築レポート?)を公開します。
初めてサーバーを立てる方や、初心者の方はまず自宅サーバーを始めるあなたにをご覧になることをお勧めします。

Linuxサーバー構築で参考になるサイト:http://www.server-world.info/


使用したもの

miniITXサーバ

今回は小型な自作PCでCentOSを動かすことに。詳細は以下。

分類 名称 備考
OS CentOS 6.7 最新版は7ですが、色々変わってて慣れないのでとりあえず
マザーボード H61M-VG3 Mini-ITX並の小ささではあるが、PCI-Expressが2本挿せる
今回はUSB3.0拡張カードとPT3で埋めた
CPU Core i5 2400S 省電力版
メモリ DDR3 8GB 多分4GBもあれば充分じゃないかな?


Linuxについて

LinuxはWindowsとはいろいろと概念が異なることを頭に入れておこう。特に、WindowsならGUIで行えていた作業も、Linuxサーバー構築作業ではコマンドベースのCUIが避けて通れない点とか。

概念と仕組みとコマンドを理解すれば何も怖いことはないが、最初戸惑うのは仕方ない、恐れずいこう。


準備

まずは必要なモノの準備から。

  • ブロードバンド回線&ブロードバンドルーター
  • サーバにするPC

詳しくは こちらを参照。


OSのインストール

多分こんな画面でインストール進めてますよね?

CentOSを使うなら、 http://wiki.centos.org/Download からISOを落として空のDVDに焼くかUSBメモリに書き込みましょう。あとは焼いたメディアから起動してOSインストールするだけ、簡単!

USBメモリからインストールした方が速いけれど、PCによってはUSBメモリから起動出来なかったり、BIOS設定変更が必要だったりするので、これもうわかんねぇなってなったらDVDに焼いちゃった方がいい。

ちなみに今回はとりあえずMinimal(最小構成)でインストールしてます。サーバーとしてしか使わないPCだったらデスクトップ環境は入れない方が良い。


ログイン

まずは、ログイン。
Login.jpg

(設定したクライアント名) login:

と出ているはずなので、rootと入力。パスワードはOSインストール時に設定したパスワードを入力。パスワード入力時には「*」などは出てこないけれどご心配なく。
なお、今回私が設定したクライアント名はodangoserverです。

[root@odangoserver ~]# _

みたいに出ていればログイン成功。


ネットワーク設定

ローカルIPを固定しておく。設定を変更するためにviエディタでファイルを書き換える。

vi /etc/sysconfig/network-scripts/ifcfg-eth0

普通は有線ならeth0だろうから上記でいけるはず。ダメならifconfigでインターフェース名を確認。

なおviコマンドの使い方は、「I」や「A」キーでInsertモードになって編集できる。終わったらEscapeでモードを抜ける。「:wq」で保存して終了。「:q!」で保存せずに終了。

なんか色々書かれていると思うけれど、以下を追加。もしくは既にある場合は編集。

BOOTPROTO="static"
IPADDR="192.168.0.200"
NETMASK="255.255.255.0"
DNS1="192.168.0.1"
GATEWAY="192.168.0.1"

DNS1やGATEWAYにはブロードバンドルータのIPアドレスを、IPADDRは、ルータのIPと第1~第3オクテット合わせて第4オクテットは好きな数字を設定(ただし他のPC等と被らないように)。だいたいこれでいけるはず、多分。

設定完了したらネットワークサービスを再起動。

/etc/rc.d/init.d/network restart

あと、ファイアウォールもいらんので停止させちゃう。

/etc/rc.d/init.d/iptables stop

システム起動時にファイアウォール起動しないようにしておく。

chkconfig iptables off
chkconfig ip6tables off

SELinuxもいらんので無効に。

vi /etc/selinux/config

で、以下を書き換え。

SELINUX=disabled

とりあえず再起動。

reboot


SSH Serverのインストール

ずっと実機にディスプレイとキーボードを繋いでセットアップしていくのは面倒くさいのでSSHでリモート操作していく。とりあえずここではユーザ名とパスワードでログインしちゃうけど、公開鍵認証設定すると楽だしセキュアで良いので、余裕あったらググってやってみて。

SSHは、OSインストール時Minimal以外選択すればこれはデフォで入ってるんじゃないかな? なのでそういう人は設定だけでOK

インストール

インストールする場合はyumコマンドで。

yum -y install openssh-server

ダーッと出てきてインストール完了。

設定

SSHサーバの設定も変更する。特にポート番号は変更しておいた方がいいっすね。

vi /etc/ssh/sshd_config

で、

#Port 22

となっているのを、以下のように書き換え。

Port (適当なポート番号)

ポート番号は、0~65535のうちウェルノウンポートに無いものにする。

終わったらSSHサービスを再起動。

service sshd restart


SSHで接続する

PuTTYでSSH接続した様子

ここまで終わったら普段使っているWindows機にお好きなSSHクライアントをインストール。PuTTYとかTeratermとか。
インストールしたらIPアドレス・ポート番号・ユーザ名・パスワードを入力してログイン。

多くのSSHクライアント共通?で、選択したらコピーされて、右クリするとペーストという操作法があるので、以後活用していく。


NTPの設定

時刻合わせるためにNTPインストール。

yum -y install ntp

サーバーを変更します。

vi /etc/ntp.conf

予めあるNTPサーバーの設定をコメントアウトして、

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

新たに追加。

server ntp1.jst.mfeed.ad.jp iburst
server ntp2.jst.mfeed.ad.jp iburst
server ntp3.jst.mfeed.ad.jp iburst

サービス起動して、登録。

/etc/rc.d/init.d/ntpd start
chkconfig ntpd on

確認は以下のコマンドでできる。

ntpq -pn


WebServerをインストール

サーバといったらまずウェブサーバー。代表的なWebServerアプリケーションであるApacheを入れます。

yum -y install httpd

インストールしたらサービスを起動。

service httpd start

んで、ブラウザからIPアドレスを打ち込めばとりあえずテストページが見られるようになっているはず。
Testpage.png

起動とともにサービスも立ち上がるようにしておく。

chkconfig httpd

PHPインストール

phpinfoのイメージ

やっぱ鯖立てたらいろいろ動かしたい…動かしたくない? というわけでWeb上で動的コンテンツを実現するPHPをインストールします。

インストール

まずはyumで。

yum -y install php php-mbstring php-pear

設定

Apache設定の書き換え。

vi /etc/httpd/conf/httpd.conf

で、ディレクトリインデックスを

DirectoryIndex index.html index.php

と変更。402と押してエンターでその付近にジャンプできるはず。

Apacheを再起動して完了。

service httpd restart

確認

確認のためにPHPテストページ作ってみよう。

vi /var/www/html/phptest/index.php

で、

<?php
phpinfo();
?>

だけ入れて保存して終了(:wq)。

PCでhttp://サーバーのIP/phptest/にアクセスして、PHPのバージョンとかいろいろズラーッと出てきたら成功。


MySQLのインストール

PHPと一緒に用いられることが多いデータベースソフトのMySQLをインストールします。

インストール

yumでインストール。

yum -y install mysql-server

設定

文字コードをUTF-8にするため、設定を編集。

vi /etc/my.cnf

で、最後に

character-set-server=utf8

を追加。

サービスを開始。

service mysqld start

起動とともにサービスも立ち上がるようにしておく。

chkconfig mysqld on

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] y

リモートでrootログインいらん!却下。

Disallow root login remotely? [Y/n] y

テストデータベースいらん!削除。

Remove test database and access to it? [Y/n] y

リロード。

Reload privilege tables now? [Y/n] y

確認

mysql -u root -p

でさっき設定したパスワードを入力してログイン。

show databases;

と打つと今あるデータベース一覧が出てくる。

exit

で終了。

書きかけです

関連項目