2016年8月31日水曜日

eコミュニティ・プラットフォーム - 6 eコミグループウェア 初期設定b

6-2 eコミグループウェアの初期設定
6-2-7 初期ユーザ登録「eコミグループウェアインストールマニュアル」の「2.8 初期ユーザー登録」を参考にします。

初期ユーザー登録の前に、Linux(CentOS)ユーザがメールを受信できるようにします。「はじめての自宅サーバ構築 - Fedora/CentOS -(http://kajuhome.com/postfix.shtml)」などを参考にします。
メールサーバは、postfix を使用します。sendmail が起動しているときは停止します。
[user@centos6 ~]$ su -
パスワード:
[root@centos6 ~]# ps ax | grep sendmail
  3814 pts/0    S+     0:00 grep sendmail
Postfix が常時起動しているか確認します。
[root@centos6 ~]# chkconfig --list postfix
postfix            0:off    1:off    2:on    3:on    4:on    5:on    6:off
postfix の基本設定をします。
[root@centos6 ~]# vim /etc/postfix/main.cf 
---
# ホスト名を設定します
# INTERNET HOST AND DOMAIN NAMES
# 
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = centos6.myhome.net
# ドメイン名を設定します
# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = myhome.net
送信者メールアドレスの @ 以降をドメイン名にします
# SENDING MAIL
# 
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites.  If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $myhostname
# メールを受け取るネットワークインターフェイスのアドレス範囲を指定します
# RECEIVING MAIL

# The inet_interfaces parameter specifies the network interface
# addresses that this mail system receives mail on.  By default,
# the software claims all active interfaces on the machine. The
# parameter also controls delivery of mail to user@[ip.address].
#
# See also the proxy_interfaces parameter, for network addresses that
# are forwarded to us via a proxy or network address translator.
#
# Note: you need to stop/start Postfix when this parameter changes.
#
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
inet_interfaces = all
# Postfix が使用するプロトコルを IPv4 にします
# Enable IPv4, and IPv6 if supported
#inet_protocols = all
inet_protocols = ipv4
---
# メールをローカルで受信するドメイン名を指定します
# The mydestination parameter specifies the list of domains that this
# machine considers itself the final destination for.
#
# These domains are routed to the delivery agent specified with the
# local_transport parameter setting. By default, that is the UNIX
# compatible delivery agent that lookups all recipients in /etc/passwd
# and /etc/aliases or their equivalent.
#
# The default is $myhostname + localhost.$mydomain.  On a mail domain
# gateway, you should also include $mydomain.
---
#
# See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
#
#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
---
# 信頼されたネットワークを CIDR(network/mask)表記で指定(ローカルネットワーク)
# Alternatively, you can specify the mynetworks list by hand, in
# which case Postfix ignores the mynetworks_style setting.
#
# Specify an explicit list of network/netmask patterns, where the
# mask specifies the number of bits in the network part of a host
# address.
#
# You can also specify the absolute pathname of a pattern file instead
# of listing the patterns here. Specify type:table for table-based lookups
# (the value on the table right-hand side is not used).
#
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 127.0.0.0/8
# 中継を許可するドメインを指定
# The relay_domains parameter restricts what destinations this system will
# relay mail to.  See the smtpd_recipient_restrictions description in
# postconf(5) for detailed information.
---
# NOTE: Postfix will not automatically forward mail for domains that
# list this system as their primary or backup MX host. See the
# permit_mx_backup restriction description in postconf(5).
#
relay_domains = $mydestination
# メールボックスを各ユーザのホームディレクトリに配置します
# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
home_mailbox = Maildir/
---
Postfix を再起動します。
[root@centos6 ~]# service postfix restart
postfix を停止中:                                          [  OK  ]
postfix を起動中:                                          [  OK  ]
各ユーザにメールボックスを作成し、パーミッションを 700 にします。
[root@centos6 ~]# mkdir Maildir
[root@centos6 ~]# ls -l
[root@centos6 ~]# chmod 700 Maildir/
[root@centos6 ~]# ls -l 
合計 92
---
drwx------. 2 root root  4096  7月 20 11:11 2016 Maildir
---
[root@centos6 ~]# exit
[user@centos6 ~]$ mkdir Maildir
[user@centos6 ~]$ chmod 700 Maildir/
[user@centos6 ~]$ ls -l
合計 61000
drwx------. 2 user user     4096  7月 20 11:14 2016 Maildir
[user@centos6 ~]$ su - gware
パスワード:
[gware@centos6 ~]$ mkdir Maildir
[gware@centos6 ~]$ chmod 700 Maildir/
[gware@centos6 ~]$ ls -l
合計 8
drwx------.  2 gware gware 4096  7月 20 11:17 2016 Maildir
メールが送信できるか確認します。
[gware@centos6 ~]$ /usr/sbin/sendmail -t -i
To: user@centos6.myhome.net
Subject: TEST MAIL          

This is a test
.
最後に Ctrl + D キーを押します。 user でメールを確認します。
[gware@centos6 ~]$ exit
[user@centos6 ~]$ mail -f Maildir/
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"Maildir/": 1 messages 1 new
>N  1 gware@centos6.myhome  Wed Jul 20 13:59  14/443   "TEST MAIL"
& 
Message  1:
From gware@centos6.myhome.net Wed Jul 20 13:59:56 2016
Return-Path: <gware centos6.myhome.net>
X-Original-To: nob61@centos6.myhome.net
Delivered-To: nob61@centos6.myhome.net
To: nob61@centos6.myhome.net
Subject: TEST MAIL
Date: Wed, 20 Jul 2016 13:59:10 +0900 (JST)
From: gware@centos6.myhome.net
Status: R

This is a test
.

& "Maildir/" complete
最後に Ctrl + D キーを押します。

php からメール送信できるか確認します。
php.ini が次のよう担っているか確認します。 また、/var/log/php/eroor_log に次のようなメッセージが出力されていたので、「date.timezone」も設定します。

 [19-Jul-2016 11:09:22] PHP Warning:  date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in /home/gware/public_html/includes/Logging.php on line 479
[user@centos6 ~]$ su -
パスワード:
[root@centos6 ~]# vim /etc/php.ini 
---
[Date]
; Defines the default timezone used by the date functions
date.timezone = 'Asia/Tokyo'
---
[mail function]
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i
---
修正したときは Web サーバを再起動します。
[root@centos6 ~]# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]
gware ユーザで次のようなファイルを作成し実行します。
[root@centos6 ~]# exit
[user@centos6 ~]$ su - gware
パスワード:
[gware@centos6 ~]$ vim mailtest.php
<?php
$to='nob61@centos6.myhome.net';
$subject='PHP TEST MAIL';
&body='This is a PHP test mail';
echo mail($to,$subject,$body);
?>
[gware@centos6 ~]$ php -f mailtest.php 
1
user でメールを確認します。
[gware@centos6 ~]$ exit
[user@centos6 ~]$ mail -f Maildir/
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"Maildir/": 2 messages 1 new
    1 gware@centos6.myhome  Wed Jul 20 13:59  14/430   "TEST MAIL"
>N  2 gware@centos6.myhome  Wed Jul 20 14:32  15/488   "PHP TEST MAIL"
& 
Message  2:
From gware@centos6.myhome.net Wed Jul 20 14:32:28 2016
Return-Path: <gware centos6.myhome.net>
X-Original-To: user@centos6.myhome.net
Delivered-To: user@centos6.myhome.net
To: user@centos6.myhome.net
Subject: PHP TEST MAIL
X-PHP-Originating-Script: 502:mailtest.php
Date: Wed, 20 Jul 2016 14:32:28 +0900 (JST)
From: gware@centos6.myhome.net
Status: R


This is a PHP test mail

& "Maildir/" complete
最後に Ctrl + D キーを押します。

次のような HTML と PHP ファイルを作成してメール送信してみましたができませんでした。
[gware@centos6 ~]$ vim public_html/form.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sample</title>
</head>
<body>
<form action="send.php" method="post">
  件名:<br />
  <input type="text" name="subject" size="30" value="" /><br />
  送信者名:<br />
  <input type="text" name="name" size="30" value="" /><br />
  メールアドレス:<br />
  <input type="text" name="mail" size="30" value="" /><br />
  本文:<br />
  <textarea name="message" cols="30" rows="5"></textarea><br />
  <br />
  <input type="submit" value="送信する" />
</form>
</body>
</html>
[gware@centos6 ~]$ vim public_html/send.php
<?php

$message = "名前:" . $_POST["name"] . "\n本文:" . $_POST["message"];

if (!mb_send_mail("user@centos6.myhome.net", $_POST["subject"], $message, "From: " . $_POST["mail"])) {
  exit("error");
}

?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>sample</title>
</head>
<body>
<p>メールが送信されました。</p>
</body>
</html>

/var/log/httpd/error_log に次のようなメッセージがありました。

 [root@centos6 ~]# vim  /var/log/httpd/error_log --- sendmail: fatal: setrlimit: Permission denied [Mon Jul 25 14:56:01 2016] [notice] caught SIGTERM, shutting down [Mon Jul 25 21:14:30 2016] [notice] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0 [Mon Jul 25 21:14:30 2016] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Mon Jul 25 21:14:30 2016] [notice] Digest: generating secret for digest authentication ... [Mon Jul 25 21:14:30 2016] [notice] Digest: done [Mon Jul 25 21:14:31 2016] [notice] Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3 configured -- resuming normal operations ---

「LISENET Sendmail: fatal: setrlimit: Permission denied(https://www.lisenet.com/2016/sendmail-fatal-setrlimit-permission-denied/)」に「SELinux prevents Apache from sending emails on CentOS.」とあったので、手順を参考にしました。
[root@centos6 ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   enforcing
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted
[root@centos6 ~]# getsebool httpd_can_sendmail
httpd_can_sendmail --> off
[root@centos6 ~]# setsebool -P httpd_can_sendmail 1
(少し時間がかかります。)
[root@centos6 ~]# getsebool httpd_can_sendmail
httpd_can_sendmail --> on
form.html でメール送信します。


メールを確認します。(日本語が文字化けしてしまいました。)
[nob61@centos6 ~]$ mail -f Maildir/
Heirloom Mail version 12.4 7/29/08.  Type ? for help.
"Maildir/": 3 messages 1 new
    1 gware@myhostname.myh  Wed Jul 20 11:30  14/443   "TEST MAIL"
    2 gware@centos6.myhome  Wed Jul 20 14:32  15/488   "PHP TEST MAIL"
>N  3 gware@centos6.myhome  Mon Jul 25 21:50  18/629   "test"
&
Message  3:
From apache@centos6.myhome.net Mon Jul 25 21:50:00 2016
Return-Path: <apache@centos6.myhome.net>
X-Original-To: nob61@centos6.myhome.net
Delivered-To: nob61@centos6.myhome.net
To: nob61@centos6.myhome.net
Subject: test
X-PHP-Originating-Script: 502:send.php
From: gware@centos6.myhome.net
Content-Type: text/plain; charset=UTF-8
Date: Mon, 25 Jul 2016 21:50:00 +0900 (JST)
Status: RO

å␦␦å␦␦ï¼␦gware
æ␦¬æ␦␦ï¼␦This is a test mail.& "Maildir/" complete
最後に Ctrl + D キーを押します。


「eコミグループウェア」に admin でログインし、「eコミグループウェア編集画面」の「サイト・システム管理設定メニュー」の「ユーザーとグループ」の「ユーザー一覧」で、「user」アカウントを削除して、「6-2-1-2 ユーザー登録」からやり直して下さい。


初期ユーザー登録を行います。Webブラウザのアドレス欄に「http://centos6.myhome.net/gware/manager/install/setup.php」と入力し、Enter キーを押します。 「eコミグループウェア編集画面」の「サイト基本設定」(または、「サイト基本設定メニュー」)の「初期ユーザー登録」をクリックします。


「初期ユーザー登録」に次のように値を入力します。 ニックネーム: admin メールアドレス: gware@centos6.myhome.net パスワード: ●●●●●(2個とも同じもの) 「設定」ボタンをクリックします。


6-2-8 サイトの表示
「eコミグループウェアインストールマニュアル」の「2.9 設定完了」を参考にします。 「6-1-5-8 初期ユーザ登録」の作業が終了したら「設定メニュー」ボタンをクリックします。


「サイト基本設定」の一番下に「(サイト名)サイトを表示」(「eコミグループウェアサイトを表示」)リンクが表示されるので、クリックします。


次のようなページが表示されたらインストール作業完了です。

0 件のコメント: