fc2ブログ

BB.exciteはケチな会社!

当社は自前のWEBサーバーとメールサーバーを運用しています。
インターネット接続はNTT西のフレッツ光NEXTで、ISP(プロバイダー)は先月までi-revoでした。
i-revoは、税込¥550で常時接続してくれる親切な会社で、先月までは何の問題も無くWEBサイトを公開でき、メール送受信もできていましたが、親切な会社は儲からないらしく、先月末でサービスを止めてしまいました。
それでしかたなく、他のISPを探しましたが、同じ¥550で提供しているのはBB.exciteしかありませんでした。
実はこのBB.exciteは、i-revoの前に利用していたISPだったのですが、当方のメールサーバーが踏み台にされたことがあり、スパム対策を施して不正サーバーリストからも登録を消してもらったのですが、BB.exciteは当方からのメール送信をブロックしたまま数週間解除してくれませんでした。しかもブロックしていることを私に通知してくれませんでした。
この対応に不満を感じた私は、i-revoに変更したのでした。

そして今月からまたBB.exciteに変更したのですが、私から外部にメールを送ることがあまりなく、メール受信はできていたので、気づくのが遅くなってしまいましたが、外部への送信ができなくなっていました。
またBB.exciteがブロックしているらしいことが分かりました。
それでサポートにメールしましたが(Gmailから)、「当方のような運用方法はサポートしていない」旨の無碍な回答でした。
たぶんですが、オプションの固定IPアドレスを契約したら解決すると思われますが、¥2,750/月の追加費用がかかります。しかも、フレッツ光NEXTには対応していないとのことです。
固定IPアドレスサービスを提供しているISPでは「GMOとくとくBB」が最安で、税込¥1,210/月で、ここに乗り換えようかとも思ったのですが、BB.exciteの契約には1年縛りがあったのでした。

"ケチケチ運用"には自信がある私は、BB.exciteに解約金を払うのは嫌で、毎月のコストも増やしたくはなく、例によっていろいろググったり、知恵をめぐらせました。
結果思いついたのが、他のSMTPサーバーを利用する手です。

よほどの大きい企業や組織のように、自前で直接インターネットに繋いでいる場合を除き、我々はISPと契約し、ISPと接続することでISPを経由してインターネットに繋がっています。
一般個人はメールを送る際にはISPのSMTPサーバーを使って送信します。そして宛先のSMTPサーバーに送られます。
我々のように自前のSMTPサーバーを所有している場合は、自社のSMTPサーバーからISPのSMTPサーバーを経由して宛先のSMTPサーバーに送られます。
i-revoなどのISPは通常ブロックせず、そのまま転送してくれるのですが、BB.exciteはここをブロックして、我々のように"せこく"自前サーバーを運用しようとしている者から追加費用をせしめようとする"せこい"営業方針にしたのだと思います。
(いずれにしても"せこいもん同志"の戦いか?)

このブロックしているISPのSMTPサーバーを経由せず、他のSMTPサーバーを使ってメールを送る方法がありました。
ひとつは、自宅のネット回線を利用し、自宅でSMTPサーバーを立て、そこからメールを送る方法です。
これにはけっこう手間暇がかかります。
もうひとつは、無料のSMTPリレーサービスを行っている会社が海外にいくつかあり、これを利用する方法です。
中でも「sendinblue」というサービスは、1日300通までのメールなら無料で利用できます。我々のような業者なら十分な数字です。
フランスの会社らしいですが、ありがたい会社です。
無料会員登録をすれば、すぐに利用開始できます。
さっそく当社のメールサーバーに設定登録しました。
結果、メールが正常に送信されるようになりました。

余談ですが、「固定IPアドレスではないのに、何故自社サーバーを運用できるのか?」と疑問を抱かれる方も居られるかと思います。
基本的には、ドメイン名とIPアドレスは1対1で紐付されているので、ドメイン名でメールを送っても、DNSサーバーによってIPアドレスに変換され、宛先に届く訳なので、IPアドレスが変わってしまうとメールも届かないし、WEBサイトも見つからなくなります。
そこで登場したのが、「DynamicDNS」というサービスです。
通常BBルーターにISPからグローバルIPアドレスが付与されます。
このサービス会社に登録し、自社のドメインに関する情報を登録し、「DiCE」などのソフトを使ってルーターのIPアドレスをDynamicDNSサービス会社に通知すると、DNS情報を動的に書き換えてくれるのです。
「動的DNSサーバー」という役割です。DNS情報の変更が世界に行き渡るのに少しタイムラグがありますが、実用上問題ありません。
当社は、「MyDNS.jp」という無料のDynamicDNSサービスを利用しています。
当社の"ケチケチ・システム"は、様々な無料サービスのおかげで成り立っているのです。

theme : 通信・回線・サーバー
genre : コンピュータ

EC-CUBE3のバグ自己修正 -- HTML特殊文字のアンエスケープ(デコード)

ECサイトの構築もほほ完成し、動作確認をしていたところ、問題が見つかりました。
当店の名前は「T&Aシステムズ」で、半角の「&」が含まれています。
この記号はHTMLの特殊文字の中のひとつで、ユーザー入力フォームなどでこれらの文字が入力された時のセキュリティ対策のために、別のコードに変換する「エスケープ処理」が行われます。
「&」は「&」というコードに変換されます。
そしてフォーム入力内容を確認表示させるときに、「アンエスケープ(デコード)処理」をして元の文字に戻します。

ところが、このデコード処理がされず、「&」がコードのまま表示されている箇所が2ヶ所(実際には他にもあると思われる)見つかりました。
1ヶ所目は、前の記事で書きましたが、カード決済プラグインの決済画面で、当店名の&が化けていました。
決済会社に連絡しましたが、最初はEC-CUBEのせいにされ、受け付けてくれませんでした。
なので、いろいろと状況証拠を提示し、決済会社のシステム部門に上げてもらえることになりましたが、2週間以上回答がなく、ネットであれやこれやかなりの時間調べ、再度別の証拠を提出して催促したら、やっとプラグインのバグを認めました。
しかし、バグを修正するのは時間がかかるので、とりあえずEC-CUBEの中のプラグインが管理している当店名の情報を書き換えるコマンドを知らせてきたので、これを実行しました。
そうしたら、&がちゃんと表示されるようになりました。

2ヶ所目は、ECサイト訪問者が「お問い合わせページ」に質問を入力したときに、自動でユーザーに送られるメールの本文内でした。
これは明らかにEC-CUBE3.0.17のバグです。
ググったところ、HTML特殊文字をデコードする「htmlspecialchars_decode」関数が見つかりました。
src\Eccube\Service\MailService.phpが自動メール送信プログラムなので、その中の$body変数に上記デコード関数を適用しました。
この結果、メール本文の中の&がそのまま表示されるようになりました。


theme : WEB制作日記
genre : コンピュータ

IISでEC-CUBEを動かすのに(大きく)つまずいたこと

EC-CUBEにはバージョン2、3、4があり、バージョン2もまだサポートされています。
私は「新しモノ好き」ではなく、逆に新しいものを信用ていないので、多くの実績がある古いバージョンの2で構築しようとしました。
前のブログで書いたように、3つの”つまずき”がありましたが何とか克服し、商品を登録できる段階までは構築できたのですが、次に大きな壁に突き当たりました。

ECサイトでの決済はカード決済が主流なので、決済業者と契約しました。
当初はバージョン2の最終版である2.17で構築しようとしたのですが、決済業者のプラグインが2.13にしか対応していないとのことだったので、しかたなく2.13で構築しました。
そしてプラグインをダウンロードし、インストールまではできたのですが、設定段階で通信エラーが発生しました。
決済業者に報告したら、当方のサイトがTLS1.2に対応しているか確認されたので、IISサイトをHTTPS化する情報をいろいろ調べ、無料のSSL証明書を入手し、TLS1.2に対応させましたが、通信エラーは解決しませんでした。
ファイアウォール設定やPHPの設定なども確認しましたが、原因が分からず、決済業者からも新しい情報は得られず、先に進めなくなってしまいました。

仕方がないので、別の決済業者を試すことにしました。
ところが、別の業者は2.13に対応しておらず、2.17対応ということだったので、別のサーバーを用意し、2.17でサイトを再構築しました。
そしてその業者のプラグインをダウンロードしインストールしましたが、接続テストをしようとしたら、今度はEC-CUBEがクラッシュしてしまい、再インストールしないといけない状態になってしまいました。

どれもこれも、まともなプラグインは無いのか~~~!

「ただほど難しいものは無い」ですね。お金を使いたくないなら、手間暇を使うしかないです。
今度はバージョン2を捨て、最新版の4でやることにしました。
しかし、4はIISには対応していないらしいので、Apacheで構築する必要がありました。
Webサーバーの世界ではIISはごくマイナーで、Apacheがメジャーです。
だったら「何で最初からApacheを使わないのか?」と言われるかもしれませんが、それは、私個人の経験の問題で、Apacheは経験が無く、IISしか経験が無かったからです。
この際、何でも勉強なので、Apacheの情報を調べ、インストールしました。やはり主流だけあって、インストール自体はIISより簡単かもしれません。

しかし、次につまずいたのはSSL証明書の問題です。
IISの時は比較的簡単に証明書を取得できたのですが、Apacheではいろいろ方法を試しましたが、どうしても取得できません。
IISの証明書をエクスポートして、Apacheにインストールしようとしましたが、だめでした。
どうも同じサーバー(同じIPアドレス)では、証明書は1枚しか発行してもらえないらしいです。

ということで、またIISに戻ることにしました。
ただしバージョン4には対応していないので、バージョン3で構築することにしました。
しかし、バージョン3のダウンロードリンクが公式サイトから無くなっていました。2の最終版のダウンロードリンクはあるのに、なぜ3が無いのか理解できません。
しかたなく他のサイトを探し、3の最新版である3.0.18をダウンロードしましたが、何かが不足しているようなエラーでインストールできません。
先人たちのインストール手順を見ると、vendorというサブフォルダが存在しているのですが、私がダウンロードしたものにはありませんでした。
vendorを作成するコマンドがあるらしいので、やってみたら作成されましたが、それでも何やら不明なエラーでインストールできません。
なんでこんなに次から次に問題が出てくるのか、訳分からず、いい加減に腹立ってきました!

絶対に最初からvendorフォルダはあるはずだと思い、ひとつ前のバージョンの3.0.17を見つけダウンロードしたところ、やはりvendorフォルダが存在していました。(何で3.0.18には無かったのか?)
とりあえずインストールしようとしましたが、今度はweb.configファイルの構文に問題ありみたいなエラーが出てインストールできません。
もういい加減面倒くさくなってきたので、web.configファイルを削除してみたら、なんとインストールが始まりました。

インストールは無事完了しましたが、管理画面が出てきません。
ググったところ、管理画面のサブフォルダ名の前にindex.phpを入れると出るということだったので、やってみたら出ました。
基本情報を入力し、管理画面からサイトを確認したら、サイトもちゃんと表示されました。
バージョン2の標準サイトデザインはやはり古い感じでしたが、3ではかなり洗練されたものになっており、トップページには写真が自動スライド表示になっています。

次は肝心の決済プラグインです。
契約している業者のバージョン3用プラグインをダウンロードしました。
ところが、インストールしようとすると、「圧縮ファイルを確認してください」とエラーになります。
いったいこのEC-CUBEも決済プラグインも、どうなっているのか!無茶苦茶なシステムです。(ただやから文句も言えない・・・)

ダウンロードしたプラグインファイルは、拡張子.tar.gzの圧縮ファイルです。これを解凍したら.tarファイルができます。これも圧縮ファイルです。容量を小さくするために2段階圧縮をしているのです。
.tarファイルをEC-CUBEにアップロードしようとしたら、ファイルサイズがオーバーしていると断られました。
なので、PHPのupload最大容量設定を増やし、再度行ったらアップロードでき、インストールできました。(マニュアルにはこのことを書いておらず、非常に不親切です)
今度は通信エラーも発生せず、テスト決済も正常完了しました。

しかし、喜ぶのはまだ早かったのです。
「一難去ってまた一難」次の問題発生です。
管理画面からは全てのページが確認できるのですが、別のPCから確認すると、トップページは表示できるのですが、サブページのリンクをクリックすると、「存在しない」というエラーで表示されないのです。
管理画面から表示させた各ページのURLには、サブフォルダ名の前に必ずindex.phpが挿入されていますが、別PCから見る時のリンクにはindex.phpはありません。これが原因だと思われます。
どうもインストールする時に削除したweb.configが関係しているようで、このファイルの内容を確認したところ、URLの書き換えをしているようです。
とりあえずweb.configを元の場所に戻してみましたが、今度はトップページも表示されなくなりました。
やはりweb.configの構文エラーが出ます。

またググったところ、日本のサイトには答えが見つからなかったのですが、英語のサイトにヒントが見つかりました。
どうもIISの場合、URLリライト機能は標準搭載されていないらしいのです。
なので、「rewrite_amd64_ja-JP.msi」をダウンロードしてインストールすればよいらしいので、実行しました。
そうしたら、表示されるようになりました。

やれやれ、やっとECサイトを構築する目途がたちました・・・

結果的に考えてみると、殆どのつまずきの原因はIISにあるようです。
先述のように、IISのWebサーバーがごくマイナーなのがよく分かりました。
最初からApacheでやっていたら、こんなに苦労することは無かったかもしれません。


theme : WEB制作日記
genre : コンピュータ

IISでEC-CUBEを動かすのにつまずいたこと

いろいろあって、当Webサイトでパソコンと関係の無い商品を売り出すことになりました。
当方自社Webサーバーを運用しており、IISで公開しています。なので、無料でECサイトを簡単に構築できる(らしい)EC-CUBEをIISで動かすことにしました。

◆つまずき-その1 「インストール画面が表示されない」

原因から言うと、dataフォルダのパス指定が間違っていたことでした。
IISで仮想ディレクトリを設定し、EC-CUBEのインストール・ディレクトリをリンクしました。
元々インストール・ディレクトリの中にあるdataフォルダは、セキュリティを考えると、外部からアクセスできない場所にに置いた方が良いらしいので、IISの公開ディレクトリであるwwwrootの親ディレクトリであるinetpubの中に移動しました。
そして、htmlフォルダの中にあるdefine.phpの3行目で、htmlフォルダから見たdataフォルダの位置を相対パスで指定しましたが、これが間違いでした。
実際には、仮想ディレクトリの元フォルダであるwwwrootの親をたどらず、実ディレクトリの親をたどるから、dataフォルダが見つからず、エラーになっていたのです。
基本的な勘違いでした。
ということで、dataフォルダをhtmlフォルダの親階層に移動させ、パスを「../../data」としたら、無事インストール画面が表示されるようになりました。

◆つまずき-その2 「インストールの最終段階でサーバー・エラー」

最終段階はデータベースの構築なので、データベースを作成し直せばよいという情報があり、やりましたが、だめでした。
IISでPHPを動かす場合、IISの[モジュールマップの追加]で、「FastCgiModule」として「php-cgi.exe」を登録する必要があるのですが、このモジュールのタイムアウト・エラーが原因でした。
php-cgi.exeの設定項目の[アクティビティ タイムアウト]の値を600に設定したら、無事インストールが完了しました。
しょぼいCPUを使っているからでしょうか?(一応デュアルコアですが)

◆つまずき-その3 「商品画像が登録できない」

これが一番苦労しました。
画像のサイズがphp.iniの設定サイズを超えているからという情報と、画像の保存フォルダのセキュリティ権限の問題という情報が殆どでしたが、画像のサイズは小さく、権限を設定してもだめでした。
何日も先人の情報を検索し、最後に見つけたものが、EC-CUBEとは関係なく、IIS+PHPでファイルのアップロードができないという情報でした。
PHPは、ファイルのアップロード時にphp.iniの「HTTPアップロードファイルの一時ディレクトリ」指定項目のupload_tmp_dirで指定されたディレクトリに一時的に保存する仕様になっており、そのディレクトリにIISの匿名認証ユーザーであるIUSRの書き込み権限を与える必要があります。これを設定していなかったために、エラーになっていた訳です。

どうもIIS+PHP環境はいろいろ難しいようです。
この環境でのWEBの情報が少ないのも、こういう理由があるからかもしれません。

theme : WEB制作日記
genre : コンピュータ

楽天カードのセキュリティ・システムはポンコツ!

私は、パソコン機器の仕入れをネットで購入し、カードで決済することが多くあります。
昨日もいつも取引している購入先サイトで購入しようとし、最後にいつも使っている楽天カードで決済しようとしましたが、エラーになり決済できないので、仕方なく他のカードで決済しました。

その後別のサイトで購入しようと同じ楽天カードで決済しようとしてもエラーになり、他のカードで決済しました。
PayPayにも楽天カードを紐付ていて、スーパーなどでもよくPayPayで決済していますが、昨日はスーパーでも使えませんでした。
完全に楽天カードが使えなくなっています。
利用枠残高は十分あります。

帰宅してから、Gmailに楽天カードから来ているのに気づきました。
メールが来たのは15時代でした。
不正利用の可能性があるので電話してほしいとの内容でしたが、メールに気づいたときは21時を過ぎていて、対応時間外だったので、今朝電話しました。
電話番号は九州の市外局番で、0120ではありませんでした。
問い合わせたところ、昨日の朝最初に購入しようとした取引が、不正利用の可能性があったのでカードの使用を停止したそうです。

しかし前述のように、その購入先は初めてではなく、10年以上前から何度も購入している相手であり、購入金額もいつもと変わらない金額です。
私が、自分のPCから入力して、2段階でパスワードも入力しているのが、何故不正利用の疑いになるのか?

ネットで即時に拒否されているのですから、当然AIを利用したシステムがそういう判断をし、AIが担当者に連絡し、担当者が確認して利用停止にしている訳ですから、私に言わせると、そのシステムは「ポンコツ」であり、担当者は「アホ」としか言いようがありません。

電話に出た受付の女の子に、「せめて電話代くらい返してくれ」と言いましたが、「自分では判断できない」と言うので、責任者に代わってくれと言いましたが、折り返し電話すると言うので、待ちました。
そして、責任者からかかってきました。私は「Amazonでも顧客に迷惑をかけたらポイント還元してくれる、楽天ポイント付与してくれ」と言いましたが、結局、規約でそういうことはできないという返事でした。

丸1日カード使えず、九州まで電話代使ったのに、何も弁償してくれない”しょぼい会社”です。
重要な連絡を、半日以上も経ってからメールする、無責任な会社です。

theme : ネットショッピング
genre : ライフ

プロフィール

tasys

Author:tasys
FC2ブログへようこそ!

カレンダー
プルダウン 降順 昇順 年別

09月 | 2023年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -


最新記事
最新コメント
カテゴリ
天気予報

-天気予報コム- -FC2-
フリーエリア
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード