MENU

CPIのシェアードプランACE01に移行するにあたっての最低限の押さえどころ。

なんか無駄にドメインやら共有サーバやらVPSやら借りまくって、無駄にお金を浪費しているモトヲです。ご機嫌いかがですか?

気がついたんですよ。
Webサービスを構築するのに、root権限が必要なことは滅多にないって。
そんな自由さよりも、メアド一個追加したり、メーリングリスト作成するのに「ボタン1発!」みたいな容易さの方がありがたいって。

もうね、いいかげん一つにまとめようと思ったのですよ。
今週落ち着いていたので借りてみましたよ。んで、何件かのサイトを移行してみましたよ。


CPIのシェアードプランACE01

選んだ理由としては、
・サーバ容量・マルチドメイン無制限。
・強力なバックボーン。
・各サイトごとにコントロールパネルが設定されるので、複数メンバーで管理しやすい。(これが一番の理由)
・なんなら知人にサイトの管理権限まるごと貸し出せる。
・でもちょっと高い。月額3,990円3,800円(2015/09/09時点)。まぁ仕方ないか……。
みたいなところ。

で、ちょっとハマったところをご紹介。

ベーシック認証などなど。

普通に.htaccessやら.htpasswdを書いても認証通りません(汗
CPIのシェアードプランACE01には「テストサーバ」と「公開サーバ」という概念があって、その間を
SmartReleaseというリリースツールでシームレスに繋ぐ、という構成になっています。

» SmartReleaseの詳細はこちら

従来のZシリーズでは、コントロールパネルからアクセス制限、という設定でOKでしたが、ACE01では、テストサーバでアクセス制限を設定して、その設定をSmartReleaseでリリース(公開)という手順で設定します。

ちょっとめんどい(;´Д`)

[2015/09/09追記] 今更ですが、CPIのシェアードプランACE01でも.htaccessでのベーシック認証は可能です。
.htpasswdの作り方が一般的ではないだけでした(暗号化の方法がMD5である必要あり)。
もし同じような悩みを持ってる人がいたら、http://dev.nearly.jp/htaccess/を使ってみてください(宣伝w)。

CPIではおなじみのPHPを動かすためのチョメチョメ。

いままでもお仕事でたくさんのCPIサーバを触ってきたので大方わかってはいたんだけど、やっぱり面倒くさい。

まずは.htaccess。ただただPHPが動くようにするために、

AddHandler x-httpd-php536 .php

が必要です。(バージョンは5.2.8でも可能)

[2015/09/09追記] 2015年の仕様変更により、これは不要です。普通に動きます。

んで、PHPのデフォルト文字コードが未だにEUC-jpなので、この辺をphp.iniで設定して、.htaccessにて反映させます。

まずはphp.iniを、外の人から見られないようにhtmlディレクトリの1階層上に置いて、

mbstring.internal_encoding = utf-8
mbstring.encoding_translation = Off

んで、そのphp.iniを反映させるために、.htaccessで、

suPHP_ConfigPath /usr/home/USER_ID

とします。

あと、これは今までになかった現象なんだけど、date()関数を使ったら、

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. (以下省略

てな具合で怒られたので、その対応もphp.iniに追加。

date.timezone = 'Asia/Tokyo'

あと、Wordpressでもそうだし、ボクがよく使っているCodeigniterというPHPフレームワークでもそうだけど、よくURLの書き換えをして、URLをスマートに見せる手法を使っています。この対応は.htaccessにて。

#Codeigniterのmod_rewrite対策
Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /HOGE/index.php [L]

んで、ウチのtwitSandboxみたいに、トップページのHTMLソースが250KBを超えるようなクソ肥大HTMLなどの対応として、圧縮して配信します。

#クソ長いHTML対策の圧縮処理

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

まとめますと、

.htaccess

AddHandler x-httpd-php536 .php
suPHP_ConfigPath /usr/home/USER_ID

#Codeigniterのmod_rewrite対策
Options +FollowSymLinks

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /HOGE/index.php [L]


#クソ長いHTML対策の圧縮処理

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

php.ini

date.timezone = 'Asia/Tokyo'
mbstring.internal_encoding = utf-8
mbstring.encoding_translation = Off

てな感じで。

ちょっとフガフガなところ。

SmartReleaseという機能が追加されたが故に、
・公開サーバ設定、テストサーバ設定が分離
・これはその前からだけどメールの設定も別
・SmartReleaseの管理画面は別
みたいに、1つのサーバで幾つものコントロールパネルがあります。これがね、面倒ですよCPIさん。なんとかしてください。
(まぁそのうちまとめてくると思いますけどね)

あとSSL。共有SSLが無くなったのは理解できます。必ずしも安全じゃないしね。
けど、その代替となるCPI SSLサーバー証明書がいただけない。「安価に独自ドメインを使ってSSL」って唄ってるわりには年38,850円。
いまどき年間2,000円ってSSL証明書もあるのに、高いスよCPIさん。

他に気がついた点があったらココで追記していきましょうかね(気が向いたら)。