さくらVPSを借りる PHP・MySQL・Ruby編


やること

  • PHPの設定
  • MySQLの設定
  • Ruby & Ruby on Railsの設定

PHPの設定

まずは管理者としてログイン。

$ sudo -s

yumコマンドを利用して必要そうなものをインストールします。

# yum install php php-devel php-mysql php-mbstring php-gd

インストールが終わったら、念の為バージョンを確認します。

# php -v

設定をいじります。その前にバックアップを忘れずに。

cp /etc/php.ini /etc/php.ini.org
vim /etc/php.ini
/etc/php.ini
修正前:;error_log = php_errors.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

MySQLの設定

yumコマンドを利用してインストールします。

# yum install mysql-server

設定をいじります。その前にバックアップを忘れずに。

cp /etc/my.conf /etc/my.conf.org
vim /etc/my.conf

以下の行を[mysqld_safe]の上に追加します。

/etc/my.conf
...
character_set_server=utf8
default-storage-engine=InnoDB
innodb_file_per_table
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
...

修正が完了したら、サービスを開始します。

# service mysqld start

サービスの開始後、以下のコマンドを実行してパスワードを設定します。

# mysql_secure_installation

パスワードを設定したら、あとはデフォルト設定のまま進めます。

...
Set root password? [Y/n] Y
New password:(mysqlのrootユーザのパスワードを設定)
Re-enter new password:(上記パスワードの確認)
...

パスワードの設定が終わったら自動起動をonに設定。

# chkconfig mysqld on

以下のコマンドでmysqlを立ち上げるとpasswordの入力が促されるので入力。

# mysql -u root -p

無事ログインできたら完了です。

Ruby & Ruby on Railsの設定

現在node.jsのインストール方法が変わっていたようなので、
ドットインストールさんのやり方とは一部違う箇所があります。

必要なあれこれをインストールします。

# yum install zlib-devel openssl-devel sqlite-devel

複数のRubyを管理するためのツールrvmをインストールします。

# curl -L https://get.rvm.io | bash -s stable

インストール後、表示された下記コマンド(人によって違う)を実行。

# source /home/username/.rvm/scripts/rvm

ドットインストールさんの動画の時にはRuby on Railsが1.9系を推奨していたようなのですが
現在は公式によると2.1も推奨しているようですので、今回は2.1をインストールしてみます。

# rvm install 2.1

インストールが終了したら下記コマンドを実行してRubyとGemのバージョンを確認します。

# ruby -v
# gem -v

あると便利らしいのでドキュメントは除外してSQLliteをインストールします。

# gem install --no-ri --no-rdoc sqlite3

Railsに必要なJavaScriptランタイムとしてnode.jsをインストールします。
まずはrepolistにepelがあるのを確認します、無い場合はnode.jsの公式見て何とかしましょう。

# yum repolist

node.jsのインストールをします。

# yum install nodejs npm --enablerepo=epel

インストールが完了したら、いよいいRailsのインストールをします。

# gem install rails

こちらもインストールが完了しましたらバージョンを確認します。

# rails -v

無事インストールが出来ていたら、Railsに必要な3000番のポートを開放するため、
以前編集したiptablesに(念の為ip6tablesも)記述を追加します。

/etc/sysconfig/iptables
...
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3000  -j ACCEPT
...

ファイヤーウォールの再起動で設定を反映。

# service iptables restart
# service ip6tables restart

おまけ

おまけですが、起動を確認してみます。
まずは新しいアプリケーションを作成します。

# rails new myapp

ディレクトリを移動し、サーバーを起動します。

# cd myapp
# rails server

http://vps.address:3000/でRails画面が確認できたら成功です。

引っかかった箇所

  1. yum install mysql-serverを実行した際、エラーがでていた
    • 内容は恐らく「リポジトリのサーバが不調であるため別のmirrorに転送します」
    • mirrorに移る仕様を知らずインストール失敗してるのかと必死に解決法調べてしまった
  2. railsコマンドがないと言われる
    • 当初rvm install 1.9.3を実行していたため、途中でrvm install 2.1に変更した
    • その際Railsも1.9.3に紐付いていたらしく消えたことが理解できなかった
    • 再度gem install railsコマンドでインストールで解決