「ServersMan@VPS」にPHP5.3,MySQL5.1,PostgreSQL8 をインストールする

DTI(ドリーム・トレイン・インターネット)が提供中の「ServersMan@VPS
(仮想専用サーバー)を契約してみてPHP5.3,MySQL5.1,PostgreSQL8 をインストールしてみました。

ServersMan@VPS」とは?
初期費用0円
月額料金490円~(今なら2ヶ月無料キャンペーン中)
メモリ:256MB
HDD:10GB

という、とってもお得な仮想専用サーバーです。
料金プランは3種類あって、Entry 、Standard、Proです。
自分は、Standardプランを契約しました。

さて、実際のコマンドですが自分用メモなので凄く簡単にまとめたものになっています。

▼yum
※「–enablerepo=remi」は、PHP、MySQLの最新バージョンを入れる為に必要です。
詳しくは、「PHP5.3 やMySQL5.1 などの最新版をyum でインストールする方法」をご参照下さい。

$ sudo yum --enablerepo=remi install mysql mysql-{server,devel}
$ sudo yum --enablerepo=remi install postgresql postgresql-{server,devel}
$ sudo yum --enablerepo=remi install php php-{devel,gd,mbstring,mcrypt,mysql,pgsql,pear}

▼mysql

$ sudo /sbin/chkconfig mysqld on
$ sudo /etc/init.d/mysqld start

$ /usr/bin/mysql_secure_installation

$ sudo mv /etc/my.cnf /etc/my.cnf.org
$ sudo cp /usr/share/doc/mysql-server-5.1.50/my-medium.cnf /etc/my.cnf

▼postgres

$ sudo /sbin/chkconfig postgresql on
$ sudo /etc/init.d/postgresql start

$ sudo /usr/bin/passwd postgres
$ sudo -u postgres psql template1

▼phpMyAdminのインストール。

$ sudo yum --enablerepo=remi install phpMyAdmin

※インストールすると以下の所にファイル等があります
/etc/phpMyAdmin
/etc/httpd/conf.d/phpMyAdmin.conf
/etc/phpMyAdmin/config.inc.php
/usr/share/phpMyAdmin
/var/lib/phpMyAdmin

$ sudo cp -p /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.org
     ※$cfg['blowfish_secret'] の値を適当な値に書き換えます

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf
     ※allow from [IPアドレス]

$ sudo /etc/init.d/httpd restart

▼phpPgAdmin のインストール

$ sudo yum --enablerepo=remi install phpPgAdmin

※インストールすると以下の所にファイル等があります
/etc/phpPgAdmin
/etc/httpd/conf.d/phpPgAdmin.conf
/etc/phpPgAdmin/config.inc.php-dist
/usr/share/phpPgAdmin

$ sudo mv /etc/phpPgAdmin/config.inc.php-dist /etc/phpPgAdmin/config.inc.php
$ sudo /etc/init.d/httpd restart

▼php.iniの変更

$ sudo cp -p /etc/php.ini /etc/php.ini.20100821
$ sudo vi /etc/php.ini
$ diff /etc/php.ini.20100821 /etc/php.ini
> error_log = /var/log-php/php_errors.log
> default_charset = "UTF-8"
> include_path = ".:/usr/share/pear/"
> mbstring.language = Japanese
> mbstring.internal_encoding = UTF-8
> mbstring.http_output = UTF-8
> mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII

$ sudo /etc/init.d/httpd restart

▼CentOSにphpコンパイラのapcをインストール

$ sudo yum --enablerepo=remi install php-pecl-apc
$ sudo /etc/init.d/httpd restart

以上です。

送受信メールサーバー構築設定(sendmail+Dovecot)

送受信メールサーバー構築の設定メモ。

参考URL:
メールサーバー構築(sendmail+Dovecot)

sendmailの設定はこちらを参照。

Dovecotインストール

# yum -y install dovecot ← Dovecotインストール

Dovecot設定

# vi /etc/dovecot.conf ← Dovecot設定ファイル編集
protocols = imap imaps pop3 pop3s ← コメントアウトを解除

Dovecot起動

# /etc/rc.d/init.d/dovecot start ← Dovecot起動

Dovecot Imapを起動中:           [  OK  ]
# /sbin/chkconfig dovecot on ← Dovecot自動起動設定

# chkconfig --list dovecot ← Dovecot自動起動設定確認

dovecot  0:off   1:off   2:on    3:on    4:on    5:on    6:off ← ランレベル2~5のonを確認

sendmailの送受信設定

sendmailで送受信するための簡単な設定メモ。

参考URL:
sendmail の設定(メールを送るために最低限度すべき事)

まずは、local-host-names の編集。

# vi /etc/mail/local-host-names

このファイルの中にサーバが扱う(このサーバにメールが送られてくる)ドメイン名またはサブドメイン名を記述します。
たとえば、該当サーバで【 ユーザ@example.jp 】と【 ユーザ@hoehoe.jp 】を使いたい場合、ファイル中には次のようにドメイン名を列挙しておきます。

example.jp
hoehoe.jp

この記述は「サーバが扱うメールのドメイン名」の定義です。ここに記述されていないメールは扱われない=迷惑メール対策にもなります。

次に、sendmail.mc の設定
sendmail.mc は sendmail の設定ファイル sendmail.cf の元となっているファイルです。この sendmail.mc ファイルは M4 マクロ形式で記述されています。

# vi /etc/mail/sendmail.mc

などで、ファイルを編集します。
編集点は下記の通りです。

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

初期状態では 127.0.0.1(自分自身)に対してのみ SMTP ポートを開きます。これではメールを外部に送ることはできても、メールを受け取ることは出来ません。
以下のように行自体をコメントにして無効にします(M4 マクロでは dnl がコメントの意味です)

dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl

次はローカルドメインの編集です。

LOCAL_DOMAIN(`localhost.localdomain')dnl

初期状態ではこのように、自ホスト名が localhost.localdomain となっています。
このままではメールの配送に支障が出ますので、自分のホスト名を適切に記述します。たとえば、hoehoe.jp であれば

LOCAL_DOMAIN(`hoehoe.jp')dnl

このように書き換えます。
最後に、自ホスト名を Cw で定義します。sendmail.mc の末尾に、ドメインが hoehoe.jp であるなら

Cwhoehoe.jp

このようにして記述しておきます。この記述は無くてもよいのですが、sendmail は自分のホスト名を “localhost.localdomain” として認識されてしまうので、念のために自ホスト名は記述することに越したことはありません。
以上で sendmail.mc の最低限の設定は終わりです。

sendmail.mc から sendmail.cf の作成
次のコマンドを実行して sendmail.cf の構築を行います。

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

実行しても特に結果は出ません。sendmail.cf ファイルがこれで準備できました。

/etc/mail/access による利用者の制限
このファイルで「制限」を行わないと、世界中の誰でもそのサーバからメールが発信できてしまいます。つまり予期せぬ利用をされることもあります(スパムメール発信の為の踏み台)。そうならないよう、access ファイルで適切に制限をかける必要があります。

vi エディタでファイルを開き【許可する環境 RELAY】のように記述します。

# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain           RELAY
localhost                       RELAY
127.0.0.1                       RELAY
example.jp                      RELAY

記述が終わったら access.db ファイルを構築します(sendmail は直接 /etc/mail/access ファイルを読むことは出来ません)。

# makemap hash /etc/mail/access.db < /etc/mail/access

この access ファイルに記述されていない環境から送信を試みようとすると、/var/log/maillog に次のようなログが記録されます。

Jun 24 20:54:02 sion sendmail[4937]: j5OBs2fs004937: ruleset=check_rcpt,
arg1=<to@example.jp>, relay=dhcp102.internal [192.168.11.102],
reject=550 5.7.1 <from@example.jp>... Relaying denied

【 reject=550 5.7.1 】の【 Relaying denied 】=メールの中継を拒否した、という記録です。正しく環境が /etc/mail/access に記入されているかどうか、再確認をされることをオススメします。

sendmail の起動テスト

# /sbin/service sendmail start
sendmail を起動中:                                         [  OK  ]
sm-client を起動中:                                        [  OK  ]

sendmail の自動起動設定
初期状態で sendmail パッケージが選択されていれば、自動起動する設定になっています。

# /sbin/chkconfig --list sendmail
sendmail        0:off   1:off   2:on    3:on    4:on    5:on    6:off

もし自動起動しないような設定であれば、chkconfig で変更をします。

# /sbin/chkconfig sendmail on

CentOSのインストールが終わってyumでインストールしたいパッケージリスト

まずは、yumのキャッシュなどをクリア

# /usr/bin/yum clean all

次に、ミラーリスト内より最速サイトを自動検知してダウンロードをするために↓を入れる。

【FedoraCore5 / FedoraCore6 / Fedora7 / Fedora8 / CentOS5 の場合】

# /usr/bin/yum install yum-fastestmirror

【CentOS4 の場合】

# /usr/bin/yum install yum-plugin-fastestmirror

次に、centosplusの設定【CentOS4 の場合】

# vi /etc/yum.repos.d/CentOS-Base.repo

[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1   #ここを1に変更
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4

次に、アップデート。結構時間がかかる。

# /usr/bin/yum update

アップデートが終わったら念の為、ここで一旦再起動をする。

そして、再起動が終わったら開発に必要なパッケージをインストールしていく。
PHP等を最新にしたいので、yumのリポジトリを追加。
まずは、GPGキーのインポート。

# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

次に、yumのリポジトリ追加(ファイルを新規追加)

# vi /etc/yum.repos.d/utterramblings.repo

[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka

ファイル作成が終わったら、yumでインストール。

# yum --enablerepo=utterramblings install httpd httpd-devel
# yum install postfix openldap-servers postgresql-server mysql-server
# yum --enablerepo=utterramblings install php-{mbstring,pgsql,mysql,ldap,imap,devel,gd}

とりあえず、このくらいかな。
残りは、必要になった時点で入れていく感じで。

VMwareの既存環境コピーで新しく開発環境を作る手順。[CentOS]

VMwareで既に開発環境があり、その環境を元に新しく作る。
1.まずは、現在ある環境をコピーします。
2.次にVMwareを立ち上げます。すると以下の文章が表示されます。

The location of this virtual machine's configuration file has changed since it was last powered on.
If the virtual machine has been copied, you should create a new unique identifier (UUID).  If it has been moved, you should keep its old identifier.
If you are not sure, create a new identifier.
What do you want to do?
・Create
・Keep
・Always Create
・Always Keep

簡単に訳すと、コピーしたのなら新しいユニークな識別子(UUID)を作成するべきで、
移動(move)したのなら古い識別子を保つべきです。
どうしますか?という事を言っていると思います。多分。。
今回はコピーなので、「Create」を選びます。

OSが起動し終わったら、必要の無いサービスを止めます。

for SERVICE in cups isdn kudzu gpm smartd pcmcia; do /sbin/chkconfig ${SERVICE} off; done

次にuseraddで一般ユーザーを作成し,ウェブ開発用のグループを作成します.
作成した一般ユーザーにはパスワードもちゃんと付け,vigrを用いてwebに所属させます.
作成した一般ユーザーはsshの公開鍵をちゃんと入れておき,パスワードログインはしないようにしましょう.

# /usr/sbin/useradd webmaster
# /usr/bin/passwd webmaster
# /usr/sbin/groupadd web
# /usr/sbin/vigr

次に,またvigrを用いて今度は先ほど作成したユーザーをグループwheelに所属させ,visudoを用いてsudoの設定をします.
sudoの設定でwheelはsudo経由でrootになれるようにし,sudoを併用することにより一般ユーザーをrootに直接ログインしないでいい環境にします.

# /usr/sbin/vigr    (「wheel:」で始まる行の右にカンマ区切りで先ほど作成したユーザーを追加)
# /usr/sbin/visudo      (「# %wheel」で始まる行にある行頭の「#」を削除する)

「# %wheel」と書いている行は「NOPASSWD:」という文字列を含む行の方の行頭の「#」をはずすとsudoをするたびにパスワードが聞かれなくなります.これを使うか使わないかは運用方針と好みになりますね.

ssh関連はパーミッションなども意識して動作するので,しっかり設定してあげてください.

# su - webmaster
$ mkdir -p ~/.ssh
$ chmod go-rwx ~/.ssh
$ vi ~/.ssh/authorized_keys2
$ chmod go-rwx ~/.ssh/authorized_keys2

最後にsshd(sshサーバー)の設定をします.今回はrootへはssh経由でログインできないようにし,パスワードでのログインも禁止します.

# /bin/vi /etc/ssh/sshd_config

編集のポイントは下記のようになり,編集が終了したらsshdを再起動します.

  • PermitRootLogin no
  • PasswordAuthentication no
# /sbin/service sshd restart

とりあえずここまで。