久しぶりにphpMyadminをアクセスしたら「HTTP ERROR 500」になった。
エラーログは
PHP Fatal error:  require_once(): Failed opening required '/usr/share/php/gettext/gettext.inc' (include_path='.:/usr/share/pear') in /var/www/html/phpmyadmin/libraries/select_lang.lib.php on line 477

解決策は
yum --enablerepo=epel install php-php-gettext

動いた!

バリューサーバーからpearを使ってメール送信を試みたが上手く動作しない。やっと解決したのでメモ。

まずバリューサーバーのphpの動作モードを確認。


モジュール版を確認



phpの動作モードがモジュール版の場合、Document root ディレクトリーに.htaccessを置き下記を記述した。

php_value sendmail_from "your_name@your_domain"
php_value SMTP "s7.valueserver.jp"
php_value smtp_port "587"


phpinfoで反映を確認

これで正常にメール送信ができた。

参考サイト:
http://wxiaoy.com/category10/entry76.html
https://www.gesource.jp/weblog/?p=283

サーバーを替えてしばらく過ぎてメール送信の不具合に気付いた。
$mailObject = Mail::factory("smtp", $params);
の部分でエラーが出ていたようだ。

smtpを使用するには、Net_SMTP 関連パッケージが必要らしい。何度もpearをインストールしているが、このケースは初めてだ。

# pear list
Installed packages, channel pear.php.net:
=========================================
Package Version State
Archive_Tar 1.3.11 stable
Auth_SASL 1.0.6 stable
Console_Getopt 1.3.1 stable
Log 1.12.9 stable
Mail 1.2.0 stable
Mail_Mime 1.10.0 stable
Mail_mimeDecode 1.5.5 stable
Net_SMTP 1.7.1 stable
Net_Socket 1.0.14 stable
PEAR 1.9.4 stable
Structures_Graph 1.0.4 stable
XML_Util 1.2.1 stable

やっと動いた。

フォームの応答に送信専用アカウントが必要になる場合があります。
考え方を変えれば、このアカウントに送信された場合、受信拒否をすればよいことになります。

vi /etc/postfix/main.cf

#header_checks = regexp:/etc/postfix/header_checks
#を削除、適用させる

vi /etc/postfix/header_checks

最後に記述
# HEADER_CHECKS
/^To:.*このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。/ REJECT

設定後、postmap作成
/usr/sbin/postmap /etc/postfix/header_checks

postfix 再起動
/etc/rc.d/init.d/postfix restart


新しくバリューサーバーを試してみた。しばらく「さくらのVPS」を使っていたが、wordpress は問題なく使えるが joomla は重過ぎて、そのレスポンスが追いついてくれない。仕方なく VPS と一般レンタルサーバーと二台切り分けて使用することにした。

使用アプリはphpMyBackupPro v.2.4
普通にDB1を登録

ディレクトリ
/virtual/User/Backup/exportを作成

データベースにUser_DB2,User_DB3を追加、計3個

まず/virtual/User/Backupに
global_conf.php
global_conf_sql.php
を移動

global_conf_sql.php
コメントアウト(/* */)に注意してDB2,DB3を列記、くれぐれもDB1を記載しないこと。
<?php
/*
Use this file to list the mysql hosts with usernames and passwords.
Do not list that account which you already specified in phpMyBackupPro under 'configuration'!

Simply copy the next four lines as often as needed after this comment (after * / )
Replace 'localhost', 'your username' and 'your password' with your data.
Set 'use only this db' to a databases name if you only want to work with one database.
If you want to work with all accessable databases on the server set it to "" (empty).
*/
$CONF['sql_host_s'][]="localhost";
$CONF['sql_user_s'][]="User_DB2";
$CONF['sql_passwd_s'][]="abcdefg";
$CONF['sql_db_s'][]="User_DB2";

$CONF['sql_host_s'][]="localhost";
$CONF['sql_user_s'][]="User_DB3";
$CONF['sql_passwd_s'][]="xyzxyzxyz
$CONF['sql_db_s'][]="User_DB3";
?>

phpMyBackupPro ディレクトリの
definitions.phpを編集
$_PMBP_GLOBAL_CONF="../../../Backup/global_conf.php";
$_PMBP_EXPORT_DIR="../../../Backup/export/";
define('PMBP_GLOBAL_CONF_SQL',"../../../Backup/global_conf_sql.php");


サイトでDB1,DB2,DB3を確認する



次にスケジュールバックアップをクリック



Select working SQL server: でDB1を選択

Select directory where the PHP file will be placed: (Update directory list)で phpMyBackupPro のフォルダを選択
/virtual/User/public_html/YourSite/phpMyBackupPro/

Select databases to backupでDB1を選択
「Show Script」でスクリプトを保存
autoBacup_DB1.php
同様にSelect working SQL server: でDB2を選択
autoBacup_DB2.php
さらにSelect working SQL server: でDB3を選択
autoBacup_DB3.php

autoBacup_DB1.phpはこんな感じ
<?php
// This script was created by phpMyBackupPro v.2.4 (http://www.phpMyBackupPro.net)
// In order to work probably, it must be saved in the directory /virtual/User/public_html/YourSite/phpMyBackupPro/.
$_POST['db']=array("User_DB1", );
$_POST['tables']="on";
$_POST['data']="on";
$_POST['drop']="on";
$_POST['zip']="zip";
$_POST['mysql_host']="0";
$period=(3600*24)*0;
$security_key="**********************************";
// switch to the phpMyBackupPro v.2.4 directory
@chdir("/virtual/User/public_html/YourSite/phpMyBackupPro/");
@include("backup.php");
// switch back to the directory containing this script
@chdir("/virtual/User/public_html/YourSite/phpMyBackupPro/");
?>

次に同一ディレクトリ内に
dbbackup.php を作成 パーミッションを700
#!/usr/local/bin/php
<?php
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB1.php');
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB2.php');
file_get_contents('http://YourSite/phpMyBackupPro/autoBacup_DB3.php');
?>

ディレクトリ /virtual/User/sh を作成して
/virtual/User/sh/dbbackup.sh 作成 パーミッションを700
#!/bin/sh
#php
/virtual/User/public_html/YourSite/phpMyBackupPro/dbbackup.php
exit

バリューサーバーのcronジョブに登録

ジョブ指定に
sh/dbbackup.sh

画像は毎朝5時に
/virtual/User/sh/dbbackup.sh
を実行させる例

下の画像は/virtual/User/Backup/export/フォルダ
localhost_User_DB2,localhost_User_DB3フォルダが自動生成される



下の画像は自動生成された/virtual/User/Backup/export/User_DB2フォルダ
/virtual/User/Backup/export/User_DB3フォルダも同様



あとはWindows-Serverからジョブで自動で吸い上げれば、完全自動バックアップの出来上がりです。