2015/09/09

CentOS7.1 PHPでSQLServerにアクセス。

この内容は古いので、MSSQLへPHPで接続(PDO接続)を参照されたい


ODBC-develをyumでインストール。

# yum install unixODBC-devel.x86_64

前回のpdftkもそうだったが、freetds-develもサポート外のようで、
ソースからビルドかと思ったが、epelで取ってこれるらしいのでやってみる。

# yum install epel-release

続いて、freetds-develをyumでインストール

# yum install freetds-devel

読み込んだプラグイン:fastestmirror, langpacks
epel/x86_64/metalink                                     | 5.2 kB     00:00
epel                                                     | 4.3 kB     00:00
(1/3): epel/x86_64/group_gz                                | 169 kB   00:00
epel/x86_64/updateinfo         FAILED
http://ftp.kddilabs.jp/Linux/packages/fedora/epel/7/x86_64/repodata/2c17dad24b2f96866b643bc3d4ce432833ca592ecf1af495e2b3a2361cf7ceab-updateinfo.xml.bz2: [Errno 14] HTTP Error 404 - Not Found
他のミラーを試します。
(2/3): epel/x86_64/updateinfo                              | 349 kB   00:00
(3/3): epel/x86_64/primary_db                              | 3.5 MB   00:06


Downloading packages:
警告: /var/cache/yum/x86_64/7/epel/packages/freetds-devel-0.91-12.git0a42888.el7.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 3XXXXXX: NOKEY
freetds-devel-0.91-12.git0a42888.el7.x86_64.rpm の公開鍵がインストールされていません
(1/2): freetds-devel-0.91-12.git0a42888.el7.x86_64.rpm     |  48 kB   00:00
(2/2): freetds-0.91-12.git0a42888.el7.x86_64.rpm           | 1.1 MB   00:00
--------------------------------------------------------------------------------
合計                                               2.4 MB/s | 1.2 MB  00:00
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 から鍵を取得中です。
Importing GPG key 0xXXXXXXX:
 Userid     : "Fedora EPEL (7) "
 Package    : epel-release-7-5.noarch (@extras)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
上記の処理を行います。よろしいでしょうか? [y/N]y
 

途中上記の警告が出たが、インストールできた模様。

早速、phpで接続試験をすると、SqlServerにアクセスしていないようだ。
なんでだろう?
info.phpを作って調べると、php-mssql.x86_64 がインストールされていない模様。
# yum install php-mssql.x86_64

# systemctl restart httpd.service
で動いた。

接続の試験用

$server='192.168.XXX.XXX:1433';
$username='USR_XXX';
$password='*****';
$con=mssql_connect($server,$username,$password);

if($con !=FALSE)
{
        echo "Connection to SqlServer successful";
}
else
{
        die("Connection to SqlServer failed");
}

mssql_close($con);

?>

2015/09/01

CentOS7.1 Logwatchのメールを送信する。

CentOS5.xはport25を開ければ、そのまんま飛んできたが、
CentOS7.1はどうもデフォルトのままでは、Logwatchが飛ばないらしい。
まずは、メールソフトは何が動いているのか?を調べてみる。
sendmailが入っているか?
 
# systemctl status sendmail.service
sendmail.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
sendmailはサービスとして認識されているが、インストールされていない模様。
 
yumにメール関連は入っていないのか?と思ったが、
# yum list installed
postfix.x86_64         2:2.10.1-6.el7       @anaconda
postfixがインストールされていた。
sendmailが標準ではなくなったようだ。

動いているか確認。
# systemctl status postfix.service
postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
   Active: active (running) since 金 2015-08-28 19:30:38 JST; 3 days ago
自動起動していた・・・。



postfixの設定

#nano /etc/postfix/main.cf


myhostname = mail.何か名前.com   追加

mydomain = 何か名前.com       追加

myorigin = $mydomain          コメント解除し、ローカルからの送信時ドメイン名を付与

inet_interfaces = localhost       今の所、受信はしないつもりなので、このまま

inet_protocols = ipv4           IPv6許容して無い時は影響受けるらしいので、記述

#mydestination = $myhostname, localhost.$mydomain, localhost     コメント化
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
コメント解除し自己メール許容

home_mailbox = Maildir/                   コメント解除

保存して、postfixを再起動。
# systemctl restart postfix.service
# systemctl status postfix.service
postfix.service - Postfix Mail Transport Agent
   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
   Active: active (running) since 火 2015-09-01 10:36:14 JST; 4s ago
  Process: 9847 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
  Process: 9862 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
  Process: 9859 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
  Process: 9857 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)

logwatchのメールを送ってみる。
# /etc/cron.daily/0logwatch

指定のアドレスにメールが届けばOK。

ポート25の開放の方法は

# firewall-cmd --add-service=smtp --permanent
success
# firewall-cmd --reload
success
# firewall-cmd  --list-all
public (default, active)
  interfaces: enp2s0
  sources:
  services: dhcpv6-client http postgresql samba smtp ssh tomcat
 ports: 8080/tcp
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

追記
logwatchのメールを複数に送信する場合は、
# nano /usr/share/logwatch/default.conf/logwatch.conf
Detail = Med
MailTo = 任意のアドレス 任意のアドレス2 (半角スペースを挟めば良い模様)