ようやく分かった。なぜ CPI の FTP サーバーでたびたび切断させられるか

これまで、CPIのFTPサーバーでファイルをアップロードしようとすると、たびたび接続が切断されたりしていました。なぜかというと、5つ以上同時に接続すると切断される仕組みになっていたからです。

サーバーに接続を閉ざされてしまう。。。

これまで、CPI の FTP サーバーでファイルをアップロードしようとすると、たびたび接続が切断されたりしていました。

なぜそうなるか、実は CPI のヘルプに書かれていました・・・。

同一IPから5つ以上同時接続すると切断される

同一 IP から5つ以上アクセスしている場合
同一 IP からの FTP アクセスは最大5つまでです。同一拠点(企業様など)からの同時アクセス時などにはご注意ください。

サポート|よくある質問 FTP サーバーに接続できません。:レンタルサーバーなら【CPI】

そして自分のFTPの設定を確かめてみたら・・・

Transmit の設定。同時接続数が、6になっていました。

6接続になっていました。そりゃあ切断されてしまいます。

今は半分の3接続にしてなるべく切断されないようにしています。

【追記】今はSSHで接続することもできる

2016年2月25日追記

今では、CPIでFTP接続だけではなく、SSHで接続することもできます。この方法では5つ以上のアクセス制限を受けるかどうかは分かりませんが・・・現状不自由なくファイル転送することが出来ています。

これに関するヘルプ情報がこちらです。

SSH(鍵認証) | SSH(鍵認証) | Online Help for ControlPanel
http://acesr.document.secure.ne.jp/tools/sshkeys/

CPI サーバーで Internal Server Error になったらまず確認すること

まず最初に .htaccess に目に行きましたが、CPI のサーバーでは php.ini も一緒に直さないといけないということに、最初気付けませんでした…私的備忘録です。

1. .htaccessの記述に間違いがないかを確認する

何よりも第一。
記述をよく確かめたり、怪しい記述行をコメントアウトしたりなど・・・一般的に .htaccess を書き間違えていないかを確認する。

また、エラー起こる前の .htaccess があったら戻してみたり、
2つの .htaccess をテキスト比較ツール (difff.jp)などに貼り付けて何が違うか・どこの記述が間違っているかを確かめる。

2. 適切なPHPのバージョンになってるか?対応している php.ini をアップしているかを確かめよう

執筆時現在(2015年3月10日)、
.htaccess や php.ini をアップしないと既定で PHP 5.6 で動作するようになっている。

けれどそれだと困るアプリケーションもあるんだよな・・・
たとえば、

  • 古い WordPress
    PHP 5.6 × WordPress 3.6 の組み合わせで遭遇。管理画面が真っ白・・・
  • Research Artisan Lite
    PHP 5.4 で遭遇。管理画面の一部ページでエラーが吐き出されていました・・・

なので適切な PHP バージョン・php.ini を読み込ませる。

たとえば PHP 5.3.6 にしたい場合は CPI の公式ヘルプのうち項目3・4をする。
http://www.cpi.ad.jp/cms/wp/tips/ftp_install/

ほかの PHP バージョンにしたい場合は適宜読み替えて設定する。

そして重要なのが、PHP 5.5 未満の場合は php.ini の設定を忘れないこと!
(他のバージョンでも設定忘れちゃだめだけど、特に・・・)
そうしないと、Wordpress でテーマ・プラグイン編集中に真っ白になってしまうことがあるからな・・・

原因は、デフォルトのエンコーディングが EUC-JP になっているから、それを php.ini で UTF-8 にしなきゃいけないんだ・・・

追記:ひととおりZIPにして用意してみました

PHP 5.3、5.4、5.5の php.iniと.htaccessをZIPにして用意してみました。
http://www.ams.jp/staff_blog/wp-content/uploads/2015/04/CPI-Init-Files.zip

(2015年4月16日追記)

備忘録の後書き

初めてこのブログを執筆します西村と申します。
先月の下旬、これが原因でお客様のサイトをエラーにしてしまいました…

具体的にいうと、PHP 5.4 を動作させているのにも関わらず PHP 5.3 用の php.ini ファイルを読み込ませていたり、そういうことを知らずに PHP の読み込みバージョンを上げてみたり(5.3→5.4)…
これに気づくまでに完全復旧まで4〜5時間くらいを要してしまいました。

話は変わるのですが、僕自身はWeb系の専門学校を卒業してきました。
そのWeb担当の先生が言っていた愚痴を思い出しました。

「学校のサーバー EUC-JP 強いからな…この空間(ディレクトリ)を UTF-8 にしないといけない」

思い返せば学校のサーバーも CPI を使っていたのかな…なんて思いました。

最初の1記事目から専門的な記事になってしまいましたが。
Web ページを作る身として、まだまだ未熟なものではありますが、暖かく見守っていただければ幸いです。