@blog.justoneplanet.info

日々勉強

さくらのVPSに乗り換えてサーバーをセットアップしてみる

■申し込み

http://vps.sakura.ad.jp/

  1. 「初めて」or「アカウント」があるか入力
  2. メルアドとか名前とか
  3. 支払い方法

思ったこと

各種支払い方法の画面において、マウスオーバーでデメリットメリットが表示されるUIは素敵だった♪但し、支払い方法にpaypalとかが欲しかった。

■コントロールパネル

「[さくらのVPS] 仮登録完了のお知らせ」というメールが届くまではログインできない。10分くらいで届くのだがこのあたりをチャント明示して欲しいね(´ω`)

試しにコマンドを何かうってみる

hostname
#http://www1234u.sakura.ne.jp/

キタ━━━━(゚∀゚)━━━━!!。でも、Apache, PHP, MySQLとかは正直最初からインストールされていても良い。最新のパッケージにしておく。

yum update

特に今回は使わないけどいつか使うので入れておく。

yum install yum-utils

各種サーバを入れる前に、以下のコマンドでファイアーウォールを設定し必要なポート以外は閉じておく。

system-config-securitylevel-tui

これが終わったら現在の接続を閉じないまま、別クライアントで接続できるか確認すること。

■公開鍵認証

以下のコマンドで公開鍵をサーバーに転送する。

scp ~/.ssh/id_rsa.pub user@123.123.123.123:/home/user

サーバー上で以下のコマンドを実行する。

su user
cd ~
mkdir .ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
exit

以下のコマンドで設定ファイルを編集する。

vim /etc/ssh/sshd_config

以下は一例。

PermitRootLogin no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
UsePAM no

以下のコマンドでsshを再起動する。

/etc/init.d/sshd restart

新しいウインドウで以下のコマンドを実行しログインできるか確認する。

ssh user@123.123.123.123

■sudo

visudo

以下のコメントアウトされた部分を

## Same thing without a password
# %wheel  ALL=(ALL)       NOPASSWD: ALL

以下のようにする。

## Same thing without a password
%wheel  ALL=(ALL)       NOPASSWD: ALL

■Apache

言わずと知れたWebサーバー。以下のコマンドでインストールする。

yum install httpd

設定

デーモンの登録と起動設定をしておく。

chkconfig --list httpd
httpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off
chkconfig httpd on
chkconfig --list httpd
httpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
HTTPヘッダのApacheのバージョンを隠す

以下のコマンドで設定ファイルを編集する。

vi /etc/httpd/conf/httpd.conf

以下の記述を探す。

ServerTokens OS

以下のように編集する。

ServerTokens ProductOnly
サーバーネームの変更
#ServerName www.example.com:80

以下のように変更する。

ServerName justoneplanet.info:80
ディレクトリの一覧表示を禁止
Options Indexes FollowSymLinks

以下のように変更する。

Options -Indexes FollowSymLinks
htaccessの使用を許可
AllowOverride None

以下のように変更する。

AllowOverride All
エラーページにおけるサーバ情報の表示禁止
#ServerSignature On

以下のように変更する。

ServerSignature Off

できた。(´ω`)

ログローテーション
vim /etc/logrotate.d/httpd
/var/log/httpd/*log {
    missingok
    daily
    rotate 7
    notifempty
    sharedscripts
    delaycompress
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

起動

configファイルのチェックをしてから、とりあえず起動だけしてみる。

apachectl configtest
/etc/init.d/httpd start
/etc/init.d/httpd stop

本当は以下のコマンドを使用し設定ファイルの妥当性だけ先に検証して起動する。

apachectl configtest
Syntax OK

■リポジトリの追加

デフォルトのリポジトリを使用してyumすると、PHPが5.1.6で古かったりするのでremiとepelをリポジトリに追加する。

wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

php53というパッケージ名を使えばこの作業も要らないような気がするが、php53にはphp53-pecl-apcなどは存在しない。

■MySQL

以下のコマンドでインストールする。

yum --enablerepo=remi,epel update mysql-server

ちなみに以下のコマンドで標準リポジトリからインストールした場合は、ちょっとしたエラーに後で遭遇する。

yum install mysql-server

ちょっと動かす。

/etc/init.d/mysqld start

設定

vi /etc/my.cnf

以下の記述を加える。

[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
パスワード

MySQLはインストール直後、rootのパスワード無いのでセキュリティを考えて必ず設定しておくこと。

myql -u root
SET PASSWORD FOR root@localhost=PASSWORD('fugafuga');
exit;

確認する。

myql -u root -p
Enter password:

デーモンの登録と起動設定をしておく。

chkconfig --list mysqld
mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off
chkconfig mysqld on
chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

できた。(´ω`)

止めておく。

/etc/init.d/mysqld stop

■PHP

yum --enablerepo=remi,epel install php

以後、PHP周りのアップグレードは以下のように「–enablerepo=remi」を付加しないとダメである。

yum --enablerepo=remi,epel install php-devel php-pdo php-pear php-mcrypt php-mysql php-mbstring

APCをインストールしたい場合は以下のコマンドを実行する。

yum --enablerepo=remi,epel install php-pecl-apc

MySQLをインストールしたときにデフォルトのリポジトリからインストールした場合は、php-mysqlを入れようとするとエラーが出ると思われる。

yum --enablerepo=remi,epel install php-mysql
Transaction Check Error:
  file /etc/my.cnf from install of mysql-libs-5.1.51-1.el5.remi.x86_64 conflicts with file from package mysql-5.0.77-4.el5_5.3.x86_64

ちゃんとリポジトリを指定してmysql-serverだけをインストール。

yum --enablerepo=remi,epel update mysql-server

再チャレンジ。恐らく上手くいくと思う。

yum --enablerepo=remi,epel install php-mysql

PHP設定

vi /etc/php.ini

以下の部分は用途に合わせて調整せねばなるまい。

mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_output = UTF-8
expose_php = Off
date.timezone = Asia/Tokyo

PDO系別解

pecl install pdo_mysql
cp /etc/php.d/pdo_sqlite.ini /etc/php.d/pdo_mysql.ini

拡張モジュールを読み込むように設定。

vi /etc/php.d/pdo_mysql.ini
; Enable pdo_mysql extension module
extension=pdo_mysql.so

httpdを再起動。

/etc/init.d/httpd restart

不要なパッケージの削除

途中でinstallできなかったりしたときに是非とも試したいコマンド。

rpm -qa | grep mysql

MySQLが二つはいってたりするので、不要なものはチャント削除したほうが長きにわたり運用が楽にできる。

yum remove mysql-5.0.77-4.el5_4.2.i386

■テスト

vi /var/www/html/phpinfo.php
<?php
phpinfo();

以下のコマンドでhttpdを起動した後、ブラウザでアクセスしphpinfoが実行されていればとりあえずOK。

/etc/init.d/httpd start

普通に1つのサイトをやるだけならコレで大丈夫だよね。

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment