管理者ブログ

vpsからエックスサーバーへ乗り換え・pearのこと

しばらくVPSを使っていたが突然のメンテナンス作業の生産性に懸念を感じるようになってきた。特にメールサーバーのセキュリティ構築には時間がかかってしまう。そこでVPSからレンタルサーバーへの移行を真剣に考えるようになった。
 
私のシステムはメールとの連携が欠かせず、仕方なくVPSを構築し面倒でも自身でシステムを構築するしかなかったのが現実だ。
随分前にエックスサーバーがそれを得意としていることを知ったのだが、長い時間経過の末やっと重い腰が上がった。
 
今回は私と同じようなシステムを構築する方に向けての感想を簡単に述べてみたい。
 
システムの概要を簡単にまとめると
データメールを受信、phpを起動、メールを解析データ化、データベースに格納、その結果をメール送信
その過程にpearライブラリを使用して簡素化している。
 
エックスサーバーには最低限のpearライブラリーが実装済みだが追加のインストールができない。
新規にpearをインストールするが、Net_smtp関連ライブラリーの追加ができなかった。
そこでxamppのpearをエックスサーバーにupしてみたがinclude_pathがうまく通らない。
phpinfo()で確認してもinclude_pathは'/home/サーバーID/pear'になっている。
一日ハマりまくったが解決策を見いだせなかった。
 
最後の手段でソースに下記を挿入
set_include_path('/home/サーバーID/pear');
pearはxamppのものを使用
 
これで解決した。
 
GUIクライアントからデータベースへの接続、ODBCの接続等にsshポートフォワーディングが必要だった以外は特に問題も生じなかった。
 
最終的にVPSからエックスサーバーへの移行は高判断だったかもしれない。

mailto 本文に特殊文字

mailtoのurl内本文に特殊文字を使う場合注意が必要だ。

&は「&」→「%26

+は「 」→「%2B

参考サイト:https://www.seil.jp/doc/index.html#tool/url-encode.html

 

 

coreserverでPearMail(Mail.php)に不具合

ある日突然メールフォームの送信ができないことに気が付いた。何日も放置したままでいたのが悔やまれる。

何回かcoreserverのphpのバージョンを変えているのだが、今後はこまめな検証が必要だ。

 

途中pearのMail.phpが読めていないことに気が付いた。このエラーはエラーもなく停止してしまうため検証に時間がかかってしまったのだ。

coreserverは最初からpearが実装されているが、include_pathが違っていたのが原因のようで、試しに自分用にpublic_html直下にPEARインストールしてみた。

 pear config-create /virtual/自分のユーザ名/public_html .pearrc
 pear install -o PEAR
 pear install -a Mail
 pear install -a Mail_MIME
 pear install -a Mail_mimeDecode
 

/virtual/自分のアカウント/public_html/.fast-cgi-bin内のphp.iniに以下を追加
include_path = ".:/usr/local/lib/php:/virtual/自分のユーザ名/public_html/pear/php"

最後にphpinfo()でinclude_pathを確認

 

全く原因がわからなかったので丸2日間の格闘になった。

以下のサイトを見つけてラッキーでした。ありがとうございました。

XREAでPEARをインストールするのにハマッタときのメモ
https://kemworld.hatenadiary.org/entry/20071003/1191421021
 

chrome:動画再生時のエラー(video-jsのautoplay)

Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.

のエラーが発生しました。

chromeのストリーミング配信(HLS)において自動再生がポリシーに違反するようだ。

対策として以下を挿入

<video id="video" autoplay muted class="video-js vjs-default-skin" width="640" height="360" controls>
<script type="text/javascript">
ただし音声が停止状態なのでスピーカーボタンを押すことになる
 
参考:

 

 

mysqldumpのエラー

coreserverのcronで定期実行していたMySQLのdumpで以下のエラーを吐くようになった。

mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

 

最終的には

--no-tablespaces

を追加で解決できた。

mysqldump --no-tablespaces -u [username] -p [データベース]> dump.sql
 
参考:
https://forum.directadmin.com/threads/problems-mysqldump-error-‘access-denied-you-need-at-least-one-of.62251/