サーバー

phpMyadminでHTTP ERROR 500

久しぶりに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でメール送信

バリューサーバーから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

postfix 送信専用アカウントを作る

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

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


バリューサーバーのmysqlバックアップ

新しくバリューサーバーを試してみた。しばらく「さくらの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からジョブで自動で吸い上げれば、完全自動バックアップの出来上がりです。



freshclamのエラー

?Anacronからの下記のメールが来るようになった

*****************************************************
/etc/cron.daily/freshclam:
?
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
ERROR: Can't open /var/log/clamav/freshclam.log in append mode (check permissions!).
/etc/cron.daily/yum-check-update:
?
Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Please verify its path and try again
*****************************************************?
freshclam.logの所有権はclam.clamではなくclamav.clamavのようだ。
?
# chown clamav.clamav /var/log/clamav/freshclam.log
?
次に
# vi /etc/logrotate.d/freshclam
?
/var/log/clamav/freshclam.log {
? ? ? ? missingok
? ? ? ? notifempty
? ? ? ? create 644 clamav clamav ←ここを修正
}
?
?
/etc/cron.daily/freshclamを実行、下記のエラーが出る
ERROR: Can't create temporary directory /var/lib/clamav/clamav-c54745c4c334dbd2155b6d00a6468966
?
# cat /var/log/clamav/freshclam.logでログ内容を点検
ERROR: Can't create temporary directory /var/lib/clamav/clamav-c54745c4c334dbd2155b6d00a6468966
Hint: The database directory must be writable for UID 496 or GID 493
?
下記を実行
chown 496:493 /var/lib/clamav
chmod 755 /var/lib/clamav
?
参照: