- CentOSの入手
- CentOS公式サイトにアクセス
- Downloads → Mirrors
- CentOS Public Mirror Listをクリック
- South American, Asian, Oceania, Middle Eastern, African and Other Regional Mirrorsをクリック
- Japanエリアの中から、どのサーバーを選択するか決めて、右欄のHTTPをクリック(現在地から近い場所を選択するが吉)
- 各バージョン名のフォルダが一覧表示されるので、最新版を選択(システム要件にあったものをクリック)
- isosをクリック
- i386とx86_64が表示されるので、プロセッサに合わせたものをクリック
- i386は32bit
- x86_64は64bit
- さらに一覧が表示されるので、isolinuxをクリック
- CentOS-6.4-x86_64-bin-DVD1.iso・CentOS-6.4-x86_64-bin-DVD2.isoのファイルをダウンロード
- ライティングソフトを使って、インストールディスクを作成
- インストール
- インストールディスクをサーバー用マシンに挿入する
- 他のOSソフトがインストールされていて、起動してしまったら挿入したまま再起動する
- インストール画面が表示される
- LiveDVDであればInstallを選択する
- Disc Found画面ではSkipを選択、OKを選択するとインストールディスクのチェックを行える
- インストールディスクを、もしチェックしたのであれば最後にContinueを選択
- CentOSのインストール画面が立ち上がる
(インストールディスクがminimalやnetinstallはCUIになりキーボードのみの操作になります) - 次へ(Next)を選択
- インストールに使用する言語を選択 英語を選択
- キーボードを選択 日本語を選択
- ストレージデバイスの選択
基本ストレージデバイスを選択(Basic Storage Dvices) 次へ(Next)を選択 - ドライブを初期化する画面が表示されるが、初期化しても良いのであれば次へ
- ホスト名の設定を行う 以下の様な形式で 自身の環境にあった記述を任意で行う 名前はaでもbでも可能かと思われる
例 取得したドメインをホストにする com
例 取得したドメインをホストにし、複数用意する場合など 1.example.com
例 1台しか使わないしローカルで使うだけ…等 server.localhost
→ sambaで共有する際は、HOSTNAME=***** の*****を同じにしないと、いけないみたいです - 地域の選択
日本であればアジア/東京(Asia/Tokyo) マウスを使い、地図上の東京の位置をクリックすれば早く選択できる - Rootパスワードの設定
なるべく推測されにくく、長く、忘れないパスワードにする - タイプの選択
すべての領域を使用する(Use All Space)を選択 次へ(Next)を選択
他を選択する際はそれに合わせたものを - パーティションを削除しても良いか警告が出た場合
(Writing storage configuration todisk)は
変更をディスクに書き込む
(Write changes to disk)
を選択 - Formatting & Creating が表示され、インストールが始まる
- Desctop、Minimal Desctop、Minimal、Basic Server、Detabase Server、
Web Server、Virtual Host、Software Development Workstation
の中から、Web Serverを選択する 次へ(Next) - 完了したら、再起動を選択する
- 再起動前にディスクを取り出しておく
- インストールディスクをサーバー用マシンに挿入する
- ルータの設定
- 固定IPアドレスの場合は168.0.*のようにそのサーバーの設定を追加しないといけない
- 初期設定
- rootでログイン
- SELinuxの停止
セキュア強化機能のSELinuxを無効にします
※安全な運用を行う際には有効にするが、設定が面倒で、鬱陶しいので切っておく- # setenforce 0
- # vi /etc/selinux/config
SELINUX=disabled
に変更 - # reboot
- 再起動される
- レゾルヴァファイルが有るか、記述が正しいかチェック
- vi /etc/resolv.conf
- nameserver 192.168.x.x
nameserverが記述されていないとyumが動かない。
自動生成されるようだが、ない時はviで記述する - service network restart
反映させる
- サーバー時刻の設定
- rootでログイン
- # yum -y install ntp
- # ntpdate ntp.nict.jp
- ユーザーの追加 ****はパスワード
- # useradd -p ‘****’ **********
- グループ作成
- # groupadd ******
グループを作成する******はグループ名 - # usermod -aG ****** ******
最初の******はグループ名、後ろはユーザー名
- # groupadd ******
- NIC(ネットワークインターフェースカード)の設定
→LANアダプターの設定- # ifconfig –a
で確認 - # vi /etc/sysconfig/network-scripts/ifcfg-eth0
- # ifconfig –a
DEVICE=eth0 #デバイス名
HWADDR=**:**:**:**:**:** #MACアドレス
TYPE=Ethernet #インターフェースのタイプ
UUID=*****-****-******-*******-********** #デバイス識別ID(自動生成される重複の心配の少ないID)
ONBOOT=yes #起動時に有効にする
NM_CONTROLLED=yes #ネットワークマネージャーの管理下に置く
BOOTPROTO=static #プロトコルを使用しない。他にnone・dhcpもある
NETMASK=255.255.255.0 #ネットマスク
IPADDR=192.168.0.2 #このマシンのIPアドレス
GATEWAY=192.168.1.1 #ルータのIPアドレス
IPV6INIT=no #IPv6を無効
PEERDNS=no #固定IPにする場合はnoにしておく
USERCTL=yes #このデバイスの制御をroot以外のユーザーにも許可するか
- # service network restart
反映させる
- ネットワークの設定
- # vi /etc/sysconfig/network
- NETWORKING=yes
NETWORKING_IPV6=no
GATEWAY=192.168.1.1
- SSHの設定
- # vi /etc/ssh/sshd_config
- Protocol 2
→この記述を確認 - #LoginGraceTime 2m
→#を外す - PermitRootLogin yes
→PermitRootLogin no - PasswordAuthentication yes
→yes担っているのを確認 - Subsystem sftp /usr/libexec/openssh/sftp-server
→この行の後ろに
AllowUsers ****
と記述する。****はユーザー名 - 上書きして保存
- Protocol 2
- # service sshd start
- # chkconfig sshd on
- # vi /etc/ssh/sshd_config
- sshdを起動する
# service sshd start - sshdを自動起動するように設定
# chkconfig sshd on - yumでソフトウェアをアップデート
- # yum update
- アップデートする?で yを入力してEnter
- アップデート終了後再起動
# reboot
再起動しないとTeraTermでログインできなくなった - Sambaのインストール・設定
- # yum install samba
- ファイアウォールの設定
- # vi /etc/sysconfig/iptables
- -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
- 上書き保存
- # service iptables restart
ファイアウォールの設定を反映する - # pdbedit -a ****
****はユーザー名を入れる
- Sambaの設定
vi /etc/samba/smb.conf- [global]
を
[global]
workgroup = *****
- [global]
server string = ******
dos charset = CP932
unix charset = UTF-8
display chaset = UTF-8
security = user
passdb backend = tdbsam
とする
※[global]セクションに追加する
- ;security = domain
のコメントを外し、
security = user
とする - ;passdb backend = tdbsam
のコメントを外し、
passdb backend = tdbsam
とする
- ;wins support = yes
のコメントを外し、
wins support = yes
とする - load printers = yes
を
load printers = no
とする - 必要のない領域をコメントアウト「;」をあたまにつける
;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes
- 共有領域の追加
- [**********]
comment = *********
browseable = yes
create mode = 2775
directory mode = 2775
path = /
valid users = yoiho
guest ok = no
read only = no
writable = yes
※[]に記述する共有フォルダ名は12文字以内にしないと共有できない
※# testparm でチェックする
- Sambaの起動
# service smb start
# service nmb start - Sambaの自動起動設定
# chkconfig smb on
# chkconfig nmb on - サーバーを再起動
# reboot - クライアントを再起動
※サーバーにアクセスする他のPCのこと - Apacheをインストール
# yum install httpd httpd-manual
- 各フォルダの権限・所有者を変更
- 所有者をユーザー名に変更・フォルダの確認
- WWWフォルダ
# chown ***** /var/www/html
# ls -l /var/www - httpdフォルダ
# chown ***** /etc/httpd
# chown yoiho /etc/httpd/conf
# chown ***** /etc/httpd/conf.d
# ls -l /etc/httpd - confフォルダ
# chown yoiho /etc/httpd/conf/httpd.conf
# ls -l /etc/httpd/conf - dフォルダ
# chown yoiho /etc/httpd/conf.d/welcome.conf
- WWWフォルダ
- 所有者をユーザー名に変更・フォルダの確認
- Apacheの初期設定
- /etc/httpd/conf/httpd.confのバックアップを取る
例) /etc/httpd/conf/backup/httpd.conf20050101-1 - /etc/httpd/conf/httpd.confをリモートよりアクセスして、テキストエディタで開く
- DirectoryIndex index.html index.html.var
→
DirectoryIndex index.html index.htm index.php index.cgi index.pl index.py - ServerSignature On
→
ServerSignature Off - ServerTokens OS
→
ServerTokens Prod - <Directory />
- DirectoryIndex index.html index.html.var
- /etc/httpd/conf/httpd.confのバックアップを取る
Options FollowSymLinks
AllowOverride None
</Directory>
→
<Directory />
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
- 実行ユーザーに変更
インストールしたままだと.htaccessが使えない
<Directory “/var/www/html”> ~ </div>
→
AllowOverride等をコメントアウトにする - User *****
Group *****
→
User *****
Group *****
- /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>
- # service httpd restart
でApache再起動
- MySQLとPHPをインストール
# yum install php php-mbstring php-mysql mysql-server - MySQLをスタートする
# service mysqld start
# chkconfig mysqld on - MySQL準備・設定
- MySQLのデータベースを作成する
# mysqladmin create testman - MySQL管理コマンドを起動
# mysql - rootのパスワード設定
mysql > SET PASSWORD FOR root@localhost=PASSWORD(‘hoge’); - mysql > exit;
- # mysql -u root –p
で再度ログイン
- MySQLのデータベースを作成する
- Webサイト専用フォルダを用意する
- PHPMyAdminをダウンロードして、
- /var/www/htmlにPHPMyAdmin用のフォルダを作成する
- PHPMyAdminにログインしてユーザを作成
※rootでアクセスできない工夫を パスワードはrootと別のものを
※管理の権限を与えずに作成
※ホストはlocalhost
- vhostsファイルの作成
- /etc/httpd/conf.dにconfを作成する
以下を記述 増やす場合はコピーして******をサイトごとに変更する- <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>
- <VirtualHost *:80>
- /etc/httpd/conf.dにconfを作成する
- /etc/php.ini
- ; save_path = “N;/path”
→
; session.save_path = “N;/path”
session.save_path = “/var/lib/php/session” - エラーメッセージをOnにする
display_errors = Off
→
display_errors = On - ポスト出来る最大サイズを設定
post_max_size = 8M
→
post_max_size = 100M - 最大アップロードファイルサイズを設定
upload_max_filesize = 2M
→
upload_max_filesize = 100M - 適宜メモリサイズ変更
memory_limit = 32M
→
memory_limit = 64M - タイムゾーンの確認
;date.timezone =
→
timezone = “Asia/Tokyo” - MySQLのエクステンションの追加
- ; save_path = “N;/path”
extension=msql.so
- Apache再起動
# chkconfig httpd on
# service httpd restart - # chown -R root.nginx /var/lib/php/session
- 所有者:グループ 所有者とグループをconfと同じにする
User ***
Group ***
のところ
# chown *****:***** /var/lib/php/session - 各ユーザーのパスワードを変更する
*****はユーザー名
# passwd *****
Changing password for user *****.
New Password:******* - SMTPサーバーの設定
- # vi /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
- # vi /etc/sysconfig/iptables
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-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 smtp -j ACCEPT
-A INPUT -p tcp -m tcp –dport pop3 -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
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
の行の後ろに
-A INPUT -p tcp -m tcp –dport smtp -j ACCEPT
-A INPUT -p tcp -m tcp –dport pop3 -j ACCEPT
を追記して上書き
- # service iptables restart
で設定を反映 - Postfixの設定
# vi /etc/postfix/main.cf - #myhostname = virtual.domain.tld
の次の行に
myhostname = www.example.com
というようにホスト名を設定
- PHPのバージョンを確認
- # yum info php