なんか無駄にドメインやら共有サーバやらVPSやら借りまくって、無駄にお金を浪費しているモトヲです。ご機嫌いかがですか?
気がついたんですよ。
Webサービスを構築するのに、root権限が必要なことは滅多にないって。
そんな自由さよりも、メアド一個追加したり、メーリングリスト作成するのに「ボタン1発!」みたいな容易さの方がありがたいって。
もうね、いいかげん一つにまとめようと思ったのですよ。
今週落ち着いていたので借りてみましたよ。んで、何件かのサイトを移行してみましたよ。
選んだ理由としては、
・サーバ容量・マルチドメイン無制限。
・強力なバックボーン。
・各サイトごとにコントロールパネルが設定されるので、複数メンバーで管理しやすい。(これが一番の理由)
・なんなら知人にサイトの管理権限まるごと貸し出せる。
・でもちょっと高い。月額3,990円3,800円(2015/09/09時点)。まぁ仕方ないか……。
みたいなところ。
で、ちょっとハマったところをご紹介。
ベーシック認証などなど。
普通に.htaccessやら.htpasswdを書いても認証通りません(汗
CPIのシェアードプランACE01には「テストサーバ」と「公開サーバ」という概念があって、その間を
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 +FollowSymLinksRewriteEngine 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 +FollowSymLinksRewriteEngine 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さん。
他に気がついた点があったらココで追記していきましょうかね(気が向いたら)。