長年FFFTPを使ってますが、たまに「アップロードできませんでした。」というエラーが出ます。
このエラーが出るときに共通しているのは「大型ファイル」のアップロードです。
例えば、フォームメールCGIでお世話になっているhttps://www.synck.com/(シンクグラフィカさん@札幌)。
おそらく、国内最強のスマホ対応レスポンシブ・フォームメールCGIスクリプトだと思います。
でも、それをダウンロードして解凍、そしてアップロードしようとすると、どうしてもエラーがでてしまうんですよね・・・
「アップロード・エラーが出て困っている。」方にぜひ知って頂きたい、サーバー運用の基礎テクニックの1つです。
サーバ上で解凍すれば一瞬
シンクグラフィカさんのフォームメールCGI(メールフォーム・プロ)はzip圧縮状態で11.4MB。
そして解凍すると、21.5MB。
11MBだとFTPはスムーズなんですが20MBを超えるとFFFTPもエラーを起こすような感じですね。
EC CUBEもFFFTPでアップロードしようとするとエラー出まくりです。(今はかんたんインストールがあるので問題ないですが。)
だから、ローカル(パソコン上)で解凍せず、サーバーにZIPファイルごとアップロードしてサーバー上で展開するとうまくいきます。
ポテローザのように サーバー上で圧縮ファイルを展開できるソフトもあるのはあるのすが、そもそもソフトの使い方をおぼえることから始めないといけないのは面倒だし、めったに使わないソフトを入れるのも気が進みませんよね。
PHPファイル1つコピペするだけ
用意するのはFFFTP以外に用意するのは2つだけ。
(1)サーバー上で解凍したいZIPファイル
(2)以下のPHPファイル1枚
PHPのファイルと言っても、プログラミングの知識は一切不要です。
以下のスクリプトをterapadなどにコピペして、拡張子を「適当ファイル名.php」にして解凍するファイルと同じディレクトリに放り込むだけです。
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
$zipfile = "ファイル名.zip";
return shell_exec("unzip $zipfile");
?>
</body>
</html>
「ファイル名.zip」のところを変更するだけです。
そして、ブラウザで、このファイルにアクセスするだけでサーバー上で展開されます。
https://*******.com/abc/適当ファイル名.php
アクセス後、ブラウザは真っ白のままですがFFFTP側で、ZIPファイルを置いたディレクトリ上で「最新の情報に更新」をやれば、しっかり展開されています。
なんともあっけない話です。
「いままでの苦労はなんだったのか!?」です。
おそらく、プログラマーにとっては、このサーバー上で圧縮ファイルを展開するやり方は、1+1=2レベルの簡単な話なんですが、プログラムの知識のない人にとっては目からウロコのテクニックですね。(私もプログラミングは一切できない。)
ショップサーブ・サーバーでも動作確認
ネット通販をやっていると、あれこれプラグイン的にプログラムをインストールすることがあります。
ショップサーブはFTPが使える、おそらく唯一のネットショップ開業サーバーではないでしょうか。
ま、それが良い悪いという話ではないですが、FTPが使えるとショップの機能のカスタマイズが自由自在にできるんで玄人好みかも知れません。
フォロメール用に、ステップメールCGIを導入したときも、この方法でアップロード・エラーが出ることなく、スムーズにインストールできました。
プログラミングの勉強
話は前に戻りますがPHP。
これまで何度もプログラミングを学ぼうと思って挑戦したのですが、確実に挫折しています。
でも、「上記のPHPならプログラムならできるのでは?」と思って調べてみました。
PHPの書き方は、基本HTMLファイルを作って<body>の中に「<?php」で書き始めて「?>」で閉じる、というのは理解できましたね。
そして、phpプログラムの「return(戻る)」や「shell(貝殻)」は、結局理解できず、「exec」は「コマンドを実行して終了する」という意味だけわかりました。
「歳を取ると頭が固くなる。」とは言いますが、若い頃からプログラミングが理解できないのは、もはや才能なんでしょうか・・・
ちなみに、小学生の頃に学んだBASICはかなり理解できたんですけど。
バカでもマスターできる(PHP、 Phython等)のプログラミング講座とかあれば、ぜーひ受けてみたいんですね。
もちろん、バカ向けなのでマスターできない場合の返金保証はしっかりつけてください。