さくら(sakura)のSSD利用vps 契約後の設定②(複数WordPressサイトの立ち上げ)
前回までで、vpsサーバ契約後の初期設定を一通り行いました。あの作業で、サーバのセキュリティ対策が一通りできたことになります。
今回は「1つのvpsサーバ上に複数のWordpressサイトを立ち上げ、運営する」という目的で作業を行っていきます。


この目的を達成するには、Apacheのバーチャルホストという機能を使います。
バーチャルホストは、ひとつのIPアドレスに対して複数のドメインのマッピングを行う「名前ベース」と複数のIPアドレスを複数のドメインにマッピングする「IPベース」がありますが、ここでは、「名前ベース」の設定を行い、vpsに割りあたっているIPアドレスを、自分で取得した複数のドメイン(サブドメイン)に割り当てることにします。
また、Wordpressを動かすためには、Apacheの他に「PHP」と「MySQL」が必要なので、一緒に設定していきます。
今回は、以下のことを行って行きますよー。
- Apacheのインストールとセキュリティのための設定
- PHPのインストール
- PHPの設定を行う
- MySQLのインストール
- WordPressのインストール
Apacheのインストールとセキュリティのための設定
それでは最初にWebサーバのApacheをインストールします。
rootで作業しますので、Teraterm等のターミナルソフトで、一般ユーザでログインした後、
$ su
をタイプします。パスワードを聞かれますので、rootのパスワードを入力します。
「su」はswitch userのコマンドで、一時的にrootユーザにスイッチできます。次に
#httpd(apache)をyumでインストールする。 $yum -y install httpd
と入力します。httpdとその関連モジュールがインストールされます。
上記のように、「Complete!」と表示されればインストール完了ですので、次のコマンドを打ちます。これで、VPSサーバを再起動しても、常にApache(httpd)が起動するようになります。
$ chkconfig httpd on
次にApacheのセキュリティを高める設定を行いましょう。
Apacheの設定は主にhttpd.confというファイルで行っていますので、バックアップを取ったのち、このファイルを書き換えていくことにしましょう。
# 設定ファイルのバックアップを取る cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org # 設定ファイルを編集する vi /etc/httpd/conf/httpd.conf #以下のように変更 ServerTokens OS ↓ ServerTokens Prod ServerSignature On ↓ ServerSignature Off Options Indexes FollowSymLinks ↓ Options -Indexes FollowSymLinks #Apacheのconfファイルに文法エラーがないか、チェックする service httpd configtest
Syntax OK と表示されれば問題ありません。 最後に service httpd start と入力し、設定をスタートさせます。
その後、ブラウザを起動し、URLにVPSサーバのIPアドレスを入力しましょう。
下記のようなテストページが表示されればApacheが正常に動いています。
>
さて、Apacheの稼働が確認できたら、いよいよApacheを複数サイトに対応させる設定を行っていきます。
それには、Apacheのバーチャルホストという機能を使います。
ApacheのバーチャルホストにはNameベースとIPベースの2つの種類がありますが、さくらのVPSではサーバに割り当てられるIPアドレスは基本的に一つですので、同一IPに対するリクエストを複数のWebサイトに振り分けることのできる、Nameベースのバーチャルホスト機能を使うことにしましょう。
sample.domain1.netにアクセスされたらsite1に置かれたコンテンツを返し、
test.domain2.netにアクセスされたらsite2に置かれたコンテンツを返す設定例
上記のように、sample.domain1.netにアクセスされたらsite1に置かれたコンテンツを返し、test.domain2.netにアクセスされたらsite2に置かれたコンテンツを返す例で設定を行います。
まず、site1,site2それぞれのコンテンツを配置するためのディレクトリを作成しましょう。
# DocumentRootディレクトリを作成する。 mkdir /var/www/html/site1 mkdir /var/www/html/site2 # 作成したディレクトリを一般ユーザでも書き込みできる権限に変更する。 # 下記の「myuser」はご自身の一般ユーザに変更して入力してください。 chown -R myuser.myuser /var/www/html/site1 chown -R myuser.myuser /var/www/html/site2
次にNameベースのバーチャルホストの設定を、設定ファイル「/etc/httpd/conf.d/httpd-vhosts.conf」に記述します。
# 設定ファイル「httpd-vhosts.conf」をviエディタで開く vi /etc/httpd/conf.d/httpd-vhosts.conf
上記テキストをターミナルソフトでタイプし、Enterを押して設定ファイルを開いたら「i」を押して編集モードに入ります。
その後、下記のテキストをコピーして、貼り付け、「Esc」で編集モードを抜けた後、「:wq」+Enterで保存します。
設定が保存できたら、下記を入力してApacheを再起動します。
/etc/rc.d/init.d/httpd restart
FilezillaやWinSCPなどのソフトでDocumentRootディレクトリにホームページのコンテンツをアップロードし、アクセスして表示されることを確認してください。
※ドメイン名でアクセスするには、DNSの設定が必要です。
別の記事で解説しますが、さくらVPSに契約したばかりでは、まだ設定できていないと思いますので、
その場合は以下の方法を使います。
Windowsの場合
Windowsでは、ドメイン名とIPアドレスのマッピングをhostsファイルで優先的に行えまます。
つまり、このファイルに記述しておけば、ドメイン名とIPアドレスのマッピングを上書きできるということです。
「C:WindowsSystem32driversetc」フォルダにある「hosts」を、管理者権限でエディタで開き、下記の設定を追加します。IPアドレスの「xxx.xxx.xxx.xxx」およびドメイン名は、皆さんの環境に合わせて修正してください。この設定は動的に反映されますので、Windowsの再起動はいりません。
# 下記をhostsファイルに追記 xxx.xxx.xxx.xxx sample.domain1.net xxx.xxx.xxx.xxx test.domain2.net
PHPのインストール
それでは次にPHPをインストールします。Root権限のあるユーザでターミナルソフトでログインし、作業しましょう。
私が契約した時のさくらVPSのOSのバージョンであるCentOS6.7の標準リポジトリからインストールできるPHPのバージョンは5.3ですが、上記のようにCentOS6.7の標準リポジトリからインストールできるApache2.2.15を使用している場合、RemiのリポジトリからPHP5.6をインストールすることができます。
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm rpm --upgrade --verbose --hash remi-release-6.rpm yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-gd
途中、必要なパッケージをダウンロードするか聞かれますが、「y」を入力して続行します。
終わったら、「Complete!」もしくは「完了しました!」というメッセージが表示されます。
インストールできたら、「php -v」と入力してPHPのバージョンを確認しましょう。
PHPの設定を行う
PHPの設定は、「php.ini」ファイルで行います。
変更の前にバックアップをとっておきましょう。
# php.iniファイルのバックアップを取る cp /etc/php.ini /etc/php.ini.org vi /etc/php.ini ;error_log = php_erros.log ↓ error_log = /var/log/php_errors.log ;mbstring.language = Japanese ↓ mbstring.language = Japanese ;mbstring.internal_encoding = EUC-JP ↓ mbstring.internal_encoding = UTF-8 ;mbstring.http_input = auto ↓ mbstring.http_input = auto ;mbstring.detect_order = auto ↓ mbstring.detect_order = auto expose_php = on ↓ expose_php = off ;date.timezone = ↓ date.timezone = Asia/Tokyo service httpd restart
Apahceの再起動が終わったら、phpがうまく設定されているか、確認を行っておきます。info.phpなど適当な名前でファイルを作り、中身を
<? php phpinfo(); ?>
のように記述して、FTPソフトまたはSCPソフトで先ほど設定したサブドメインのルートディレクトリにアップし、アクセスします。
このような画面が表示されればOKです。
MySQLのインストール
次にMySQLをインストールします。
yum -y install mysql-server
インストールできたら、設定ファイルを修正します。下記の修正は、DBや扱うデフォルトの文字コードをUTF-8に変更するものです。
cp /etc/my.cnf /etc/my.cnf.org vi /etc/my.cnf [mysqld] character-set-server=utf8 collation-server=utf8_general_ci skip-character-set-client-handshake [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8
修正が終わったら、MySQLのサービスを再起動します。サーバ再起動時にも自動で起動するように、chkconfigもonにしておきましょうか。
service mysqld start chkconfig mysqld on
無事起動できたら、rootのパスワードをセットし、それでログインできるかを確認しておきます。
mysqladmin -u root password 'xxxxxxxxx' mysql -u root -p
上記の確認でMySQLにログインし、以下のコマンドを入力すると、DBで設定されているデフォルトの文字コードが表示されますので、変更した設定がきちんときいて、UTF-8になっているかが確認できます。
show variables like 'char%';
WordPressのインストール
ここまでくれば、あとは、各サイトでWordpressをインストールするだけです。
各RootディレクトリにWordpressのファイルをUploadします。
その後、
CREATE DATABASE xxx_db_name CHARACTER SET utf8; grant all on xxx_db_name.* to 'xxx_user_name'@'localhost' identified by 'xxxxx_password';
で各サイトのWordpress用のDBの作成、ユーザの作成と権限の付与を行い、インストールを行いましょう!