• このエントリーをはてなブックマークに追加

サーバーのことは全くわからない、インフラ技術者じゃないし苦手だけど、チャレンジしてみるって人向けのフローです。 ※WindowsでダウンロードしてCentOS用のソフトを作成するパターンの手順です。それ以外は記載していません。
手順のテストをしっかりと行っていません。正しく入力したのに、うまくいかない時は内容が間違っているかもしれませんので、ほかのサイトの情報と照らしあわせて確認してください。

設定などは自分の構築したいサーバーの目的に合わせて適宜行ってください。 ※サーバーの構築は自己責任で。

【自己責任】

インストールされるコンピュータのデータはLinuxのデータに上書きされます。セキュリティの問題により、なにか損害が起きたとしてもこちらは責任を終えません。

この記事で紹介している内容は、
サーバーとはどのようなものか、サーバーを構築して学習したい。テストサーバーを立ち上げて確認したい。人向けです。

準備するもの

細かい設定や、ハードの愛称などは調べるか、その場で確認する。

  • Windows PC
  • DVDに書き込めるドライブ
  • DVD-Rなどの書き込めるメディア
  • CentOSをインストールする対象のPC(書き込んだメディアを読み込めるドライブ付き)
    ※インストールや設定の体験をするだけならば、安い中古のPCでOK、ノートPCとかでも
  • ネットワーク
  • ルータ
  • ハブ
  • キーボード
  • マウス

CentOSの入手

サーバーにアクセスし、CentOSを入手する。

  1. CentOS公式サイトにアクセス
  2. Downloads → Mirrors
  3. CentOS Public Mirror Listをクリック
  4. South American, Asian, Oceania, Middle Eastern, African and Other Regional Mirrorsをクリック
  5. Japanエリアの中から、どのサーバーを選択するか決めて、右欄のHTTPをクリック(現在地から近い場所を選択するが吉)
  6. 各バージョン名のフォルダが一覧表示されるので、最新版を選択(システム要件にあったものをクリック)isosをクリック
  7. i386とx86_64が表示されるので、プロセッサに合わせたものをクリック ※i386は32bit、x86_64は64bit
  8. さらに一覧が表示されるので、isolinuxをクリック
  9. CentOS-6.4-x86_64-bin-DVD1.iso・CentOS-6.4-x86_64-bin-DVD2.isoのファイルをダウンロード
  10. ライティングソフトを使って、インストールディスクを作成

インストール

書き込んだメディアをサーバーに利用しても問題のないPCにインストールする。 ※失敗したら困るPCは使用しない、失敗してもいいやを前提にインストールすること。
インストールディスクをサーバー用マシンに挿入する

  1. (ア)他のOSソフトがインストールされていて、起動してしまったら挿入したまま再起動する
  2. インストール画面が表示される
  3. LiveDVDであればInstallを選択する
  4. Disc Found画面ではSkipを選択、OKを選択するとインストールディスクのチェックを行える
  5. インストールディスクを、もしチェックしたのであれば最後にContinueを選択
  6. CentOSのインストール画面が立ち上がる (インストールディスクがminimalやnetinstallはCUIになりキーボードのみの操作になります)
  7. 次へ(Next)を選択
  8. インストールに使用する言語を選択 英語を選択
  9. キーボードを選択 日本語を選択
  10. ストレージデバイスの選択 基本ストレージデバイスを選択(Basic Storage Dvices) 次へ(Next)を選択
  11. ドライブを初期化する画面が表示されるが、初期化しても良いのであれば次へ
  12. ホスト名の設定を行う 以下の様な形式で 自身の環境にあった記述を任意で行う 名前はaでもbでも可能かと思われる 例 取得したドメインをホストにする example.com 例 取得したドメインをホストにし、複数用意する場合など
    1.example.com
    例 1台しか使わないしローカルで使うだけ…等
    server.localhost → sambaで共有する際は、
    HOSTNAME=***** の*****を同じにしないと、いけないみたいです
  13. 地域の選択 日本であればアジア/東京(Asia/Tokyo) マウスを使い、地図上の東京の位置をクリックすれば早く選択できる
  14. Rootパスワードの設定 なるべく推測されにくく、長く、忘れないパスワードにする
  15. タイプの選択 すべての領域を使用する(Use All Space)を選択 次へ(Next)を選択 他を選択する際はそれに合わせたものを
  16. パーティションを削除しても良いか警告が出た場合 (Writing storage configuration todisk)は 変更をディスクに書き込む (Write changes to disk) を選択
  17. Formatting & Creating が表示され、インストールが始まる
  18. Desctop、Minimal Desctop、Minimal、Basic Server、Detabase Server、 Web Server、Virtual Host、Software Development Workstation の中から、Web Serverを選択する 次へ(Next) 19. 完了したら、再起動を選択する 20. 再起動前にディスクを取り出しておく

初期設定

正しくインストールされているようであれば、rootでログインして初期設定を行っていく。

  1. rootでログイン ※インストール時に設定したパスワード。rootというアカウントは様々な権限を持っているアカウント。
  2. SELinuxの停止 セキュア強化機能のSELinuxを無効にします ※これを切っておかないと他のアプリなどで公開設定などをしてもアクセス出来ない ※本来は、安全な運用を行う際には有効にする。設定が面倒なので切っておく
    1. # setenforce 0
    2. # vi /etc/selinux/config SELINUX=disabled に変更
    3. # reboot
    4. 再起動される
  3. サーバー時刻の設定
    1. rootでログイン
    2. # yum -y install ntp
    3. # ntpdate ntp.nict.jp
  4. ユーザーの追加 ****はパスワード
    1. # useradd -p ‘****’ **********
  5. グループ作成
    1. # groupadd ****** グループを作成する
    2. ******はグループ名
    3. # usermod -aG ****** ****** 最初の******はグループ名、後ろはユーザー名

ネットワークの設定

ネットワークの設定をしないと、サーバーとしての機能が果たせなくなる。 IPアドレスを固定にしたり、設定を行う。

  1. NIC(ネットワークインターフェースカード)の設定 →LANアダプターの設定
    1. # ifconfig –a で確認
    2. # vi /etc/sysconfig/network-scripts/ifcfg-eth0
    3. DEVICE=eth0 #デバイス名
    4. HWADDR=**:**:**:**:**:** #MACアドレス
    5. TYPE=Ethernet #インターフェースのタイプ
    6. UUID=*****-****-******-*******-********** #デバイス識別ID(自動生成される重複の心配の少ないID)
    7. ONBOOT=yes #起動時に有効にする
    8. NM_CONTROLLED=yes #ネットワークマネージャーの管理下に置く
    9. BOOTPROTO=static #プロトコルを使用しない。他にnone・dhcpもある
    10. NETMASK=255.255.255.0 #ネットマスク
    11. IPADDR=192.168.0.2 #このマシンのIPアドレス
    12. GATEWAY=192.168.1.1 #ルータのIPアドレス
    13. IPV6INIT=no #IPv6を無効
    14. PEERDNS=no #固定IPにする場合はnoにしておく
    15. USERCTL=yes #このデバイスの制御をroot以外のユーザーにも許可するか
    16. service network restart 反映させる
  2. ネットワークの設定
    1. # vi /etc/sysconfig/network
    2. NETWORKING=yes NETWORKING_IPV6=no GATEWAY=192.168.1.1

SSHの設定

安全にリモートでサーバーに接続してコマンドを打ち込むためにSSH関連の設定を行う。SSHはプロトコル。

  1. SSHの設定
  2. # vi /etc/ssh/sshd_config
    1. Protocol 2 →この記述を確認
    2. #LoginGraceTime 2m →#を外す
    3. PermitRootLogin yes →PermitRootLogin no
    4. PasswordAuthentication yes →yes担っているのを確認
    5. Subsystem sftp /usr/libexec/openssh/sftp-server →この行の後ろに AllowUsers **** と記述する。****はユーザー名
    6. 上書きして保存
  3. # service sshd start
  4. # chkconfig sshd on
  5. yumでソフトウェアをアップデート
  6. # yum update
  7. アップデートする?で yを入力してEnter
  8. アップデート終了後再起動 # reboot
    ※ 再起動しないとTeraTermでログインできなくなった
    TeraTerm等のターミナルソフトを使って今後は、サーバーにログインします。

Sambaのインストール・設定

Windowsとlinuxのファイル・フォルダを共有する事ができるソフト。
Windowsからサーバーのファイルにビジュアル的に操作・確認することが出来て作業が捗る。

  1. # yum install samba ファイアウォールの設定
    1. # vi /etc/sysconfig/iptables
    2. -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
      の後ろに以下の行を追加
      -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
      -A INPUT -p tcp -m tcp –dport 135:139 -j ACCEPT
      -A INPUT -p udp -m udp –dport 135:139 -j ACCEPT
      -A INPUT -p tcp -m tcp –dport microsoft-ds -j ACCEPT
    3. 上書き保存
    4. # service iptables restart ファイアウォールの設定を反映する
    5. # pdbedit -a **** ****はユーザー名を入れる
  2. 2. Sambaの設定
    1. vi /etc/samba/smb.conf
  3. [global] を [global] workgroup = *****
  4. server string = ******
  5. workgroup = *****
    server string = ******
    dos charset = CP932
    unix charset = UTF-8
    display chaset = UTF-8
    security = user
    passdb backend = tdbsam
    ※[global]セクションに追加する
  6. ;security = domain のコメントを外し、
    security = user とする
  7. ;passdb backend = tdbsam のコメントを外し、
    passdb backend = tdbsam とする
  8. ;wins support = yes のコメントを外し、 wins support = yes とする
  9. load printers = yes を load printers = no
  10. workgroup = MYGROUP 以上の記述を
    workgroup = ******
  11. 任意のワークグループ名に修正
  12. 必要のない領域をコメントアウト「;」をあたまにつける
    ※プリンター機能が必要ならば適宜設定する。
    ;[printers]
    ; comment = All Printers
    ; path = /var/spool/samba
    ; browseable = no
    ; guest ok = no
    ; writable = no
    ; printable = yes
  13. 共有領域の追加
  14. [**********]
    comment = *********
    browseable = yes
    create mode = 2775
    directory mode = 2775
    path = /
    valid users = *******
    guest ok = no
    read only = no
    writable = yes
    ※[]に記述する共有フォルダ名は12文字以内にしないと共有できない
    ※# testparm でチェックする
    ※ ******に適切な名前を入れる
  1. サーバーを再起動
  2. クライアントを再起動

Apacheをインストール

Webサイトを構築するのに必要不可欠なソフト、他にも様々なものがあるが最も普及してて技術的な文献も多いのでおすすめ。これ以外のものを導入したい人は調べてみてください。

# yum install httpd httpd-manual

1 各フォルダの権限・所有者を変更

2 所有者をユーザー名に変更・フォルダの確認 (ア)WWWフォルダ

# chown ***** /var/www/html
# ls -l /var/www

(イ)httpdフォルダ

# chown ***** /etc/httpd
# chown ユーザー名 /etc/httpd/conf
# chown ***** /etc/httpd/conf.d
# ls -l /etc/httpd

(ウ)confフォルダ

# chown ユーザー名 /etc/httpd/conf/httpd.conf
# ls -l /etc/httpd/conf

(エ)conf.dフォルダ

# chown ユーザー名 /etc/httpd/conf.d/welcome.conf

Apacheの初期設定

設定は各個人の好みで。

1. /etc/httpd/conf/httpd.confのバックアップを取る

例) /etc/httpd/conf/backup/httpd.conf20050101-1

2. /etc/httpd/conf/httpd.confをリモートよりアクセスして、テキストエディタで開く

a. DirectoryIndex index.html index.html.var
→
DirectoryIndex index.html index.htm index.php index.cgi

b. ServerSignature On
→
ServerSignature Off

c. ServerTokens OS
→
ServerTokens Prod
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
→
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

d. 実行ユーザーに変更
インストールしたままだと.htaccessが使えない
<Directory "/var/www/html"> ~ </div>
→
AllowOverride等をコメントアウトにする

e.
User *****
Group *****
→
User *****
Group *****

3. /etc/httpd/conf/httpd.conf/welcome.conf
<LocationMatch "^/+$">
Options -Indexes
ErrorDocument 403 /error/noindex.html
</LocationMatch>

をコメントアウトする

#<LocationMatch "^/+$">
#Options -Indexes
#ErrorDocument 403 /error/noindex.html
#</LocationMatch>

4. # service httpd restart
でApache再起動
MySQLとPHPをインストール・設定
CMSを導入したり、PHP・MySQLを利用したシステムを構築する際にはPHP、MySQLのインストール、設定が必要になります。
# yum install php php-mbstring php-mysql

1 MySQLをスタートする

# service mysqld start
# chkconfig mysqld on

2 MySQL準備・設定 2.1 MySQLのデータベースを作成する

# mysqladmin create testman

2.2 MySQL管理コマンドを起動

# mysql

2.3 rootのパスワード設定

mysql > SET PASSWORD FOR root@localhost=PASSWORD('hoge');

2.4

mysql > exit;

2.5

# mysql -u root –p

で再度ログイン 3 Webサイト専用フォルダを用意する Sambaで公開フォルダを、Windowsからアクセスできるようにしておけば便利 4 PHPMyAdminをダウンロード ※Windowsで 4.1

/var/www/html

にPHPMyAdmin用のフォルダを作成する 4.2 PHPMyAdminにログインしてユーザを作成 ※rootでアクセスできない工夫を パスワードはrootと別のものを ※管理の権限を与えずに作成 ※ホストはlocalhost 5 vhostsファイルの作成 5.1

/etc/httpd/conf.d

にvhosts.confを作成する 以下を記述 増やす場合はコピーして******をサイトごとに変更する 5.2

<VirtualHost *:80>
ServerName ******
DocumentRoot /var/www/html/******
ErrorLog logs/******.biz-error.log
CustomLog logs/******.biz-access.log common
<Directory "/var/www/html/******">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

6

/etc/php.ini

6.1

; session.save_path = "N;/path"

; session.save_path = "N;/path"
session.save_path = "/var/lib/php/session"

6.2エラーメッセージをOnにする

display_errors = Off

display_errors = On

6.3 ポスト出来る最大サイズを設定

post_max_size = 8M

post_max_size = 100M

6.4 最大アップロードファイルサイズを設定

upload_max_filesize = 2M

upload_max_filesize = 100M

6.5 適宜メモリサイズ変更

memory_limit = 32M

memory_limit = 64M

6.6 タイムゾーンの確認

;date.timezone =

date.timezone = "Asia/Tokyo"

7 Apache再起動

# chkconfig httpd on
# service httpd restart

8 所有者:グループ 所有者とグループをhttpd.confと同じにする

User ***
Group ***

のところ

# chown *****:***** /var/lib/php/session

9 各ユーザーのパスワードを変更する *****はユーザー名

# passwd *****
Changing password for user *****.
New Password:*******