私のサーバに自分の顧客のOpenCartシステムをインストールしました(サーバはDebian Wheezy、Nginx、PHP、MariaDB)。 1つのことを除いてすべてが正常に動作しています。顧客が登録しようとすると、登録にはおよそ3分ほどの時間がかかります。私は問題を追跡しており、顧客と管理者に電子メールを送信するときにハングする可能性が最も高いです。オープンカートの登録にはかなりの時間がかかります
SSMTPを使用してサーバー上の電子メールを処理します.SSMTPは自分自身の電子メールサーバーを使用します。 Joomlaのような他のWebアプリケーションはうまく動作し、電子メールは遅れなく即座に送信されます(システム内のメールコマンドと同じ)。 Opencartは "mail"に設定されています(私はSMTPをopencartに直接入力しようとしましたが、動作していませんでした)。
私はOpenCartsの内部動作について基本的に何も知らないので、誰かがこの問題で私を助けてくれますか?
ありがとうございます!
EDIT:
私はsuccessfuly問題の根本原因を特定することができました。それはPHPやOpenCartの問題ではなく、実際にはシステムの問題でした。 php.iniのsendmailパスの設定はコメントアウトされています。つまり、PHPはそれを見つけようとします。なんらかの理由で、OpenCartの場合にはsSMTPに行きました。 sSMTPは同期的なので、完了するのを待つのに時間がかかりました。一方、Joomlaは、Heirloom mailxを私のサーバ上でいくつかの古い依存関係から忘れてしまった(なぜ私は分かりません)、メールコマンドは即座に終了しました。
私の解決方法は、ssmtpとmailxをすべて破棄し、postfixを使用して外部サーバーにメールを中継することでした。今はすべてが期待通りに機能します。
ありがとうございますが、残念ながらそれは私を助けません。私は開発マシン上で環境を複製しようとしましたが、問題はそこには存在しません(おそらく、devサーバは電子メールを送信できないためです)。問題のサーバーは、他の複数のアプリケーションがあるプロダクションサーバーなので、そこにxdebugをインストールすることはできません。 – user2823584
@ user2823584プロダクションマシンでも、それをインストールして、プロファイラと 'profiler_enable_trigger'以外のすべてを無効にすることができます。他のアプリケーションのパフォーマンスに影響を与えるべきではありません。 –
@ user2823584私の答えを受け入れていただきありがとうございます、私はあなたの問題を解決するのに役立つことを願っています。しかし、それはちょっとした指針です。あなたが問題を解決し、それを受け入れられた答えとしてマークすれば、根本的な原因と実際の解決策の詳細を投稿することができれば良いでしょう。 ;))。 –