ホーム

永田順伸のブログ

PHP5.4.3にしてみた

CentOS6.2でPHPを5.3.13で運営していた。公式サイトには5.4.3というのもあるのでリポジトリを追加してyumでインストールしてみた。
エラーメッセージが次から次に表示されてるのは覚悟はできていたけれど、osCommerce日本語版は完全に動作しなくなったのには驚いた。
理由は、register_globalsが削除されたため。機能がないのでONにすることはできない。
サーバがアップグレードしてPHP5.4系になったらosCommerce日本語版は終わるようです。
未来を少し見てこわくなったのでPHP5.3系に戻してひと安心。
osCommerceを利用しているサイト運営者はZen CartやMagento、EC-CUBEへ移行する日が近づいているようです。

 

osCommerceへPayPal Express Checkoutを導入

サイトを移転して快適にアクセスできるようになったので、osCommerceやその他オープンソースを使った開発やテストが進むようになった。先日、osCommerceにPayPal Express Checkout 導入したいという見積もり依頼があったのでosCommerceの日本語版と英語版をインストールしてチェック用に準備した。

これまで、osCommerceのほとんどにはウェブ ペイメント スタンダードというPayPalの支払いモジュールが組み込まれていたが、これはHTMLベースで動作するため、改竄の危険性があるうえ、最後にosCommerceの購入完了処理に戻らずに途中で終了してしまう不具合や、なぜかinvoiceが重複するという不具合があり、解決できずにいた。

PayPalは国によって利用できる機能が違うためosCommerceのcontributions(フリーのモジュール)も日本で利用できるものとできないものがある。いくつか選んで、英語版、日本語版のosCommerceに導入してみた。日本語版は文字化けする部分があったので修正した。英語版は日本語版とは違う機能がありそのための修正をモジュールに施して完成させた。

PayPalにはテスト用のサーバ(sandbox)があり、アカウントを作ってテストを実施した。ウェブ ペイメント スタンダードでは、注文完了時にやっとPayPal側へ遷移するが、PayPal Express Checkoutではその前にPayPalへ移動する。APIベースで動作するため購入処理の途中でPayPalへ移動して、信用度を調査した後、osCommerceに戻り、注文の確定ボタンを押したところで課金されるようだ。 「買い手が最終確認ページに確実に到達します」とPayPal Express Checkoutのマニュアルに書かれている。

https://www.paypal.com/jp/cgi-bin/webscr?cmd=xpt/Merchant/merchant/ExpressCheckoutIntro-outside

PayPalの会員だとスムーズに支払いできる。PayPalの会員ではなくてもPayPal側で必要事項を入力して購入できる。 これまでPayPalで不具合が起こっていたなら、PayPal Express Checkoutに変更すれば解決するのではないだろうか。

http://gihyo.jp/dev/serial/01/paypal_api/0002

この記事で紹介されているhttp://bluefly.com/は会員登録や住所の登録もなくPayPalに登録した情報を利用して購入できる。米国のEC-サイトでは数多く実装されているそうだ。osCommerceでも実装できるか試してみたい。

メールサーバを使って仕事を便利に

サーバを構築するときは、postfixとdovecotをインストールする。
インターネット上には簡単な手順が数多く示されていて仕組みを理解しなくとも
メール機能を動作させることができる。
だからこそ、エラーがでたり問題が起きると慌てることになる。
実は、今回、自サイトを構築して困ったが起こった。自サイトからメールが送信できないのだ。
何度も構築しているため自分で作ったマニュアルどおりにやれば問題なく送信できるはずなのに、
どうしてもプロバイダ経由で自サイトのアドレスを使ったメールが送信できない。
受信はできるしSSHで接続してmailコマンドでは送信できるのに原因がわからない。
設定を変えて試してみたがまったく送信できず、かなり詳細に設定ファイルを変更して、
maillogを確認しながら操作したが原因はわからなかった。
maillogではなくてmessagesを見てログインしているユーザ名がおかしいことに気づき、
やっと原因を特定できた。
原因は自分のPCに設定していたPOPFile用の特殊な形式のユーザ名だった。
POPFileはPC内部でメールをフィルタリングするソフトだ。
SMTP_AUTH用にユーザ名とパスワードを別途設定すれば解決できた。

時間はかかったけれど、メールに関してかなり詳細な調査の方法や、
メール配送の仕組み、プログラムの構成などを確認できてよかった。
知識も増えたのでさらに便利に使えるように機能を追加することにした。

これまで、PCを2台交互に利用するときにメールが使いにくくて困っていた。
POPFileはPC内部で処理するため別のPCを使うときにフィルタリングのルールを使えない。
POPFileはアンインストールしてサーバ側でウィルスやスパムメールを検知、削除することにした。
この仕組みだとPOP3で受信するよりIMAPでの受信が便利だということがわかった。
スパムは自動で特別のディレクトリに移動できるし、間違えたときは学習させられる。
ウィルスやスパムをサーバ上で検知削除するようになってからスパムメールを見る頻度がさがった。

もうひとつ、Gmailとの連携を便利にした。
Gmailのクライアント機能を利用して、お客様とのメールのやりとりのときに、自分のメールサーバ経由で仕事用のメールアドレスを使い送信できればさらにいい。Gmailではこのような機能もサポートしていて、TLS を使用したポート 587で接続できるようにメールサーバを設定できれば、Gmail側でいくつか設定するだけで、Gmailの操作画面から仕事用のメールアドレスでメールを送信できる。

 

osCommerce から Zen Cart への移行作業

osCommerceからZen Cartへの移行作業をやった。
Zen Cartの特徴のひとつはテンプレート機能があること。有料テンプレートを利用するとosCommerceより簡単にそしてリーズナブルにデザインの美しいサイトを構築できる。
テンプレートは大抵、英語圏で作成されたもののため、実際に利用する日本語版Zen Cartのバージョンに合わせて内部の修正が必要だ。
導入するテンプレートと標準のテンプレートをすべて比較して相違点を確認するのにかなりの時間がかかる。海外のテンプレートなので画像ボタンは作り直して、
英語のメッセージは日本語訳する。なかなか大変な作業。さらに大変なのがデータの移行だ。contributionsがたくさんあったので、いくつか試してみていちばん簡単そうなツールを使ってデータをコンバートした。英語のデータを前提に作られたツールであるため現在利用中のosCommerceに合わせて修正が必要になる。
今回なぜかEUCのDBに機種依存文字が登録されていた。今回利用するZen CartはUTF8のためどこかで変換が必要になるけれど、
共用のレンタルサーバはsshが利用できずサーバ会社が設置したphpMyAdminはバージョンが古くて使用している文字コードも表示されない。
何度か試行錯誤してやっとデータをUTF8に変換できた。

 

 

CentOS6 sshd 再起動時のエラー

CentOS5でサーバを構築していたが、最近はCentOS6を選べるのでいくつか構築した。最近気づいたエラーがある。sshdを再起動すると見たことがないエラーが表示される。


sshd を停止中: [ OK ]
cat: /proc/sys/crypto/fips_enabled: そのようなファイルやディレクトリはありません
/etc/init.d/sshd: line 50: [: 引数が多すぎます
sshd を起動中: [ OK ]

http://www.virtualmin.com/node/21124
検索したところ上記ページに解決策があった。
50行目をコメントアウトして問題の箇所を取り除くとエラーは出なくなった。

vi /etc/init.d/sshd
# if [ ! -s $RSA1_KEY -a `cat /proc/sys/crypto/fips_enabled` -eq 0 ]; then
↓ ↓ ↓ ↓ ↓
if [ ! -s $RSA1_KEY ]; then

サーバ移転

お客様のサーバを移転することはあっても、自分のサイトとなると面倒だし後回しにしてきたが、メールが届かなかったり重かったりアクセスできないことがあったりと困ることが多くなり、レンタルサーバの契約期限が間近に迫ったので思い切って移転してみた。いつもお客様にお勧めしているサーバより一段下のサーバだけど月2000円程度で借りられるroot付きVPSサーバなので、Webアプリケーションをいろいろ作って試したい自分にはぴったり。作業はいつもどおり淡々と進み、コンテンツもサーバ間で移動できたので楽だった。DNSの変更に24時間程度かかるとあったが実際には10分くらいで切り替わった。WordPressはDBを抜き出してファイル群を移設してDB関連を設定すると動作した。Baserがログに残らないエラーで途中で停止するため別にBaserをインストールして違いを確認したところ書き込み権限が原因だった。書き込み権限を設定するといつものとおり動作した。軽くなると更新も楽になってよかった。

osCommerce日本語版のセキュリティバージョンアップ

osCommerce日本語版は、2012年1月16日にバージョンアップされました。
セキュリティ対策数点のみの内容ですので、早めに修正をお勧めします。

osCommerce 日本語版 プロジェクト
http://sourceforge.jp/projects/tep-j/releases/

修正作業のご依頼はこちら
http://www.ynagata.com/cms/news/archives/2

 

osCommerce 移転のメリット

osCommerceを移転するメリットは3つあります。

一つめは、サーバ費用の 削減。サーバもPCと同じで年々、高機能・低価格化しています。同じ機能なら価格が下がっていますし、同じ価格なら機能が高くなっています。数年前に契約したまま継続を続けている場合は、そのサーバ会社の最近の費用やサービスをかくにんしてみましょう。安くて高機能のサーバプランがあるはずです。
サーバ会社によっては転送料を課金するところがありますが、アクセスが多いサイトはこの費用がたいへんな額になります。転送料が0円のところに移転するだけで年間の費用を節約できます。

二つめのメリットは、サーバの高機能化。PHPやMySQLのバージョンがあがるだけで同じ処理ならスピードが速くなることがあります。
MySQLを移転する場合、データを取り出して、新しいデータベースにインポートしますが、この作業だけでインデクスが新たに設定されるため、これだけで処理が速くなることがあります。さらに、レンタルしたサーバがroot権限のあるVPSや専用サーバならAPCなどPHP用のキャッシュ機能を追加できます。ページ表示に少々もたついていたサイトも、移転後はまるでリンクに触れるだけでページが切り替わるような感じになります。

三つめのメリットは、管理の負担低減。ページ表示が速くなることでアクセス数が上がり、当然売り上げもよくなります。売り上げが上がれば、管理にかかる時間も増えますが、これまで時間がかかっていた作業も、ページ表示が速くなることで、快適に作業できます。

当方では、CentOS5、転送料無料のVPSサーバをご紹介しています。
osCommerceと一緒に別アプリの移転もお引き受けしています。
osCommerceの機能追加やセキュリティ対策をお引き受けします。
ここには書けませんが格安のサービスをご用意しています。
THE Worksの見積もり・作業依頼ページ

 

PHP 5.3.10 リリース

2月2日付けでPHP 5.3.10がリリースされました。
セキュリティフィックスが主で、「All users are strongly encouraged to upgrade to PHP 5.3.10.」と、
PHPの利用者はアップグレードが必要だということです。

osCommerceの引っ越し 画像

PHP- ftp_get - Manual

osCommerceを別のサーバに引っ越すときに妙に時間がかかるのが画像の引っ越しだ。現在利用しているサーバと引っ越し先のサーバにそれぞれSSHがあると簡単に圧縮して転送できる。
レンタルサーバによっては制限が厳しく、転送手段がftpのみだととんでもなく時間がかかることになる。

ftpだけで転送すると、現サーバから画像を手元にダウンロードして新サーバへアップロードする。
ftpサーバにもよるが制限があり途中でftpの接続が切断されることがある。
切断された部分の画像は不完全な状態となりこのファイルを探して再開することになる。 悪い条件が重なると、何日も時間がかかることがあった。

先日も、imageディレクトリ内に3GB強の画像データがあるサーバの引っ越しをした。
サブディレクトリは無く、画像がすべて同一ディレクトリ内に設置されているため、ftpに接続して画像をダウンロードするスクリプトを作成してみた。
引っ越し先のサーバにプログラムを設置してftpに接続。元のサーバのファイルリストを取得して画像ファイル名を配列に格納した。
ここまでできたら、ftp_getコマンドで画像を1枚ずつサーバにダウンロードできた。
5分くらいでスクリプトを作成して、別の仕事をしながらスクリプトを動作させて予想より短時間で画像を移動できた。

ホーム

フィード
メタ情報

ページの上部に戻る

永田順伸のブログ located at 511/67 Huynh Van Banh , Ho Chi Minh, VN . Reviewed by 34 customers rated: 4 / 5