お名前.com(KVM)の初期設定


VPSサーバーを契約した後、VPSの初期設定の手順を踏んでいきます。

次に、以下の順でセットアップをしていきます。

  • Apache
  • PHP+PEAR
  • MySQL
  • vFTP
  • 一般ユーザー作成
  • Bind
  • phpMyAdmin
  1. 初期設定または[OSの再インストール]にてOSを選択。

  2. [ディスク構成]について[カスタム]を選択し、単一で200GBにする。

    →[確認]→インストール。

  3. [Minimal]を選択して次へ進む。

    ※ソフトについてはどこにもチェックを入れない。そのまま次へと進んでいく。
  4. yumを最新にする。
    (これによりほぼ最新のPHP、MySQL等がインストールされる。)

    yumのバージョンの確認

    yum --version

    yum install yum-fastestmirror
    yum upgrade
    yum update

  5. リポジトリ(Fedora EPEL 、remi、RPMForgeの3つ)の追加。

    ・wgetコマンドをインストール。

     yum install wget

    ・Epel(epel-release-*-*.noarch.rpm)のダウンロード。

     まず、

     wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

     を実行してみて、404エラー(存在していない)であったら、URLで上の階層をたどって最新の「epel-release-」から始まるファイルを探す。

    ・remiのダウンロード。

     wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

    ・RPMForgeのダウンロード。

     http://pkgs.repoforge.org/rpmforge-release/

    で「rpmforge-release-*.*.*-*.el6.rf.x86_64.rpm」を探す。

     wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

    ・ダウンロードしたEpel、remi、RPMForgeの有効化。

    ↓それぞれ、ダウンロードしたファイルを指定。

    rpm -Uvh epel-release-6-8.noarch.rpm
    rpm -Uvh remi-release-6.rpm
    rpm -Uvh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

  6. リポジトリをいったん無効化。(必要となった時にだけ一時的に有効化する)

    【epel】
      vi /etc/yum.repos.d/epel.repo
      「enabled=1」を「enabled=0」に編集。

    【remi】
      デフォルトで無効化されている。

    【RPMForge】
      vi /etc/yum.repos.d/rpmforge.repo
      「enabled=1」を「enabled=0」に編集。

    これでリポジトリの追加が完了。

  7. Apache、BIND、bind-chroot、FTP、PHP、PEAR、MySQLおよび、
    php-mbstring、php-mysqlの一括インストール。

    yum --enablerepo=epel,remi,rpmforge install httpd-devel bind bind-chroot vsftpd php-devel php-pear mysql-server php-mbstring php-mysql

  8. 各種バージョンの確認コマンド。

    Apache:  /usr/sbin/httpd -v
           rpm -qa | grep httpd
    BIND:    rpm -qa | grep bind
    FTP:    rpm -qa | grep ftp
    PHP:    rpm -qa | grep php
           php -v
    PEAR:   pear info PEAR
    MySQL:  mysql --version

  9. Apache、FTP、MySQLの起動。

    service httpd start
    service vsftpd start または /etc/rc.d/init.d/vsftpd start
    service mysqld start

  10. MySQLの管理者パスワードの設定

    /usr/bin/mysql_secure_installation

    「Enter current password for root (enter for none)」

    と、rootのパスワードを聞いてくる。

    →まだ無いのでそのままEnter。
    →全ての設問で「Y」。


  11. ApacheとFTPとMySQLを自動起動するようにする。

    ・設定の確認コマンド

     chkconfig --list|grep -E "httpd|mysql|vsftpd"

    ・自動起動の設定。

     chkconfig httpd on
     chkconfig vsftpd on
     chkconfig mysqld on

    ・コントロールパネルでOSを再起動(https://cp.myvps.jp/Login.aspx)

    ・Apache、FTP、MySQLが自動で起動したかどうかを確認。

     service httpd status
     service vsftpd status
     service mysqld status

  12. 一般ユーザーの新規作成。

    useradd -G wheel ユーザー名
    passwd ユーザー名

    一旦exitして今作成した一般ユーザーでログインし直し、「su -」でrootに昇格してみる。

  13. Wheelグループの所属者に「sudo」の実行権限を与える。

    visudo

    ↓この行をコメントアウト
    %wheel ALL=(ALL) ALL

  14. rootへの切り替えをパスワード無しで行なえるようにする。&
    root権限に切り替えられるユーザーを制限する。

    vi /etc/pam.d/su

    ↓この2行のコメントをはずす。(4行目と6行目)
    auth sufficient pam_wheel.so trust use_uid
    auth required pam_wheel.so use_uid

  15. rootでログインできなくする。&SSHのポート番号を変更する。

    vi /etc/ssh/sshd_config

    ・rootでログインできなくする。

     変更前: #PermitRootLogin yes
     変更後: PermitRootLogin no

    ・SSHのポート番号を変更する。
     (秘密鍵で接続する場合はこれを行わないこと)

     変更前: #Port 22
     変更後: Port 9999  ←Serverman@VPSは4桁の数値。

    /etc/init.d/sshd restart

    ※SSHによるFTP接続時に、ここで指定した番号を指定する必要があります。

  16. ファイヤーウォール(iptables)の設定

    vi /etc/sysconfig/iptables

    ・SSHのポートを開く。
      (=デフォルトで22番が開いているのを閉じて、9999番を開く。)

     変更前: -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
     変更後: -A INPUT -p tcp -m tcp --dport 9999 -j ACCEPT

    ・iptablesを再起動して設定を反映する。
     /etc/init.d/iptables restart

    ・現在の設定値を確認。
     iptables -L

  17. FTPのセットアップ

    1. 設定ファイルを開く。
     vi /etc/vsftpd/vsftpd.conf

    2. 匿名ログインを禁止。
     変更前: anonymous_enable=YES
     変更後: anonymous_enable=NO

    3. アスキーモードでの転送許可
     ↓コメントアウト
     ascii_upload_enable=YES
     ascii_download_enable=YES

    4. サブディレクトリを含む一括転送有効
     ↓コメントアウト
     ls_recurse_enable=YES

    5. タイムスタンプを日本時間にする(ファイル末尾に追記)。
     & lsコマンドで-a無しでもドットファイル(.htaccessなど)を表示するようにする。     
     use_localtime=YES
     force_dot_files=YES

    6. ホームディレクトリ(ログイン時のフォルダの場所)を指定。
     local_root=/var/www/html

    7.「vsftpd.conf」の編集を、保存して終了。
     :wq

    8. vsftpdの再起動
     /etc/rc.d/init.d/vsftpd restart

  18. FTPでのコンテンツのアップロードを可能にするため、ドキュメントルートの所有者を変更。

    chown -R ユーザー名 /var/www/html

  19. DNSの設定

    ・お名前.comのドメイン管理画面「ドメインNavi」にログイン。

    ・[ドメイン設定]タブ → [DNS関連機能の設定]
     → ドメインを選択 → [次へ進む] →
     → [DNSレコード設定を利用する]の[設定する]をクリック。

    ・[入力]欄に、値を入力し、下記の通りの設定とする。

     ・1つ目のレコード追加
      [ホスト名]を空白のまま。[VALUE]にサーバーのIPアドレス。
      → [追加]ボタン。

     ・2つ目のレコード追加
      [ホスト名]に「www」。[VALUE]にサーバーのIPアドレス。
      → [追加]ボタン。

     ・3つ目のレコード追加
      [TYPE]欄の値を「A」から「MX」に変える。
      → [VALUE]に、サーバーのIPアドレスにちなんだ
       「v157-7-210-28.myvps.jp」など。
      → [優先]に「100」。
      → [追加]ボタン。

     ・[DNSレコード設定用ネームサーバー変更確認]に
      チェックが入っていることを確認。

     ※[DNSレコード設定用ネームサーバー変更確認]にチェックを入れておくことで、先頭の4レコード(NSレコード部分)が自動登録されます。



     これで、お名前.comで取得したドメインを、
     お名前.comで借りたVSPへ割り振る作業が完了しました。
     (BINDのゾーンファイルを作る必要はありません。)

  20. Apacheの設定

    vi /etc/httpd/conf/httpd.conf

    ・「# NameVirtualHost *:80」をコメントアウト。

    ・「DocumentRoot "/home/feg/public_html"」をコメントアウト&URLを編集。

    ・下記コードを末尾に追記。

     ※下記の例では3つのドメインを作成。

    Options Indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all

    ServerAdmin aaa@test.net
    DocumentRoot /home/(ユーザー名)/public_html/www.test.net
    ServerName www.test.net
    ServerAlias test.net
    ErrorLog logs/www.test.net-error_log
    CustomLog logs/www.test.net-access_log common

    ServerAdmin aaa@test2.com
    DocumentRoot /home/(ユーザー名)/public_html/www.test2.com
    ServerName www.test2.com
    ServerAlias test2.com
    ErrorLog logs/www.test2.com-error_log
    CustomLog logs/www.test2.com-access_log common

    ServerAdmin aaa@test3.com
    DocumentRoot /home/(ユーザー名)/public_html/www.test3.com
    ServerName www.test3.com
    ServerAlias test3.com
    ErrorLog logs/www.test3.com-error_log
    CustomLog logs/www.test3.com-access_log common

    ・HTMLファイルの文字化けを防ぐ設定を行う。

     HTMLファイルをShift-JISで作成してアップロードした場合、
     文字化けを起こすことがあります。
     これを回避するには、HTMLファイルの文字コードをUTF-8として作成するか、あるいは以下の編集をします。

     変更前: AddDefaultCharset UTF-8
     変更後: AddDefaultCharset OFF

    ・保存してリスタート
     /etc/init.d/httpd restart

    ・「/home/xxx/」のフォルダのパーミッションを設定。

    これで、
    www.test.net
    www.test2.com
    www.test3.com
    という3つのサイトをウェブ上で見れるようになりました。

    /home/(ユーザー名)/public_html/www.test.net/index.html
    /home/(ユーザー名)/public_html/www.test2.com/index.html
    /home/(ユーザー名)/public_html/www.test3.com/index.html

    などを作成し、ブラウザでアクセスして動作確認。

  21. メールの設定

    ・Postfixが既にインストールされていることを確認。
     yum list installed | grep postfix

    ・Postfixの設定ファイルを編集
     vi /etc/postfix/main.cf

     変更前: #inet_interfaces = all
     変更後: inet_interfaces = all

     変更前: inet_interfaces = localhost
     変更後: #inet_interfaces = localhost

     「mydestination = $myhostname, localhost.$mydomain, localhost」
     という行の末尾に、
     「, test.net, test2.com, test3.com」

     を追記。
     (test.net、test2.com、test3.comという3サイトを作成する場合。)

     変更前: #home_mailbox = Maildir/
     変更後: home_mailbox = Maildir/

    ・メールの受信フォルダを作成
     mkdir /home/(ユーザー名)/Maildir

    ・Postfixをスタート(またはリスタート)。
     /etc/rc.d/init.d/postfix start

    ・Dovecotのインストール
     yum -y install dovecot

    ・Dovecotの3つの設定ファイルを編集。

     vi /etc/dovecot/conf.d/10-auth.conf

     変更前: #disable_plaintext_auth = yes
     変更後: disable_plaintext_auth = no

     変更前: auth_mechanisms = plain
     変更後: auth_mechanisms = plain login

     vi /etc/dovecot/conf.d/10-mail.conf

     変更前: #mail_location =
     変更後: mail_location = maildir:~/Maildir

     vi /etc/dovecot/conf.d/10-master.conf

     変更前:

    # unix_listener /var/spool/postfix/private/auth {
    # mode = 0666
    # }

     変更後: 

    unix_listener /var/spool/postfix/private/auth {
    mode = 0666
    user = postfix
    group = postfix
    }

    ・Dovecotをスタート(またはリスタート)。
     /etc/rc.d/init.d/dovecot start

    ・PostfixとDovecotを自動起動するようにする。
     chkconfig postfix on
     chkconfig dovecot on

    これで、ユーザー名を@の左側としてのメールの送受信が出来るようになりました。

    なお、メールアドレスを追加する場合は、Linuxアカウントを追加するか、
    あるいは/etc/aliasesの末尾にエイリアスアカウントを追加します。

    ・メールクライアントソフト(例えばGmailなど)で、迷惑メールのフィルターを設定する。

  22. コントロールパネルでドメインの設定。

    ・ドメインを設定しても、パーミッションエラーが出て、ドメインフォルダにアクセス出来ない場合は、上位階層のフォルダから順に、ユーザーapache以外のユーザーがアクセスできるフォルダとなっているかどうかを確認。

    →フォルダのパーミッションにotherに閲覧権限を与える。

  23. WordPressで大きなサイズのプラグインやテーマをインストール出来る様にするために、PHPの最大アップロードファイルサイズを変更する。

     ・php.iniの場所を探す。
      php -i | grep php.ini

     ・vi /etc/php.ini

     ・「upload_max_filesize = 」の値を変更。

     ・httpdのリスタート。
      service httpd
      または、
      /etc/init.d/httpd restart

  24. SVG画像を表示できるようにする。

    サイトのトップの「.htaccess」に下記を追記。

    image/svg+xml svg
    image/svg+xml svgz

関連記事

  1. cronの設定・書き方


Top