Centos7 安裝 phplist
- 安裝環境 : CentOS 7
- phplist : 3.4.0
安裝程序
- 安裝主要套件
yum install epel-release rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm yum install php72w php72w-cli php72w-common php72w-imap php72w-mbstring php72w-xml php72w-mysqli php72w-gd mariadb mariadb-server httpd wget
su - root wget https://jaist.dl.sourceforge.net/project/phplist/phplist/3.4.0/phplist-3.4.0.tgz tar -xvf phplist-3.4.0.tgz cp -a phplist-3.4.0/public_html/* /var/www/html/
- 設定與啟動 apache / mariadb
vi /etc/php.ini
: [Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = Asia/Taipei :
vi /etc/httpd/conf/httpd.conf
: IfModule dir_module> DirectoryIndex index.php index.html </IfModule> :
systemctl restart httpd systemctl start mariadb mysql -u root
password 要依照自己需要設定
CREATE DATABASE phplistdb CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE USER 'phplist'@'localhost' IDENTIFIED BY '**password**'; GRANT ALL PRIVILEGES ON phplistdb.* TO 'phplist'@'localhost'; FLUSH PRIVILEGES; exit
編輯 phplist 設定檔
- /var/www/html/lists/config/config.php
: $default_system_language = "zh_TW"; : $database_host = 'localhost'; // what is the name of the database we are using $database_name = 'phplistdb'; // what user has access to this database $database_user = 'phplist'; // and what is the password to login to control the database $database_password = '**password**'; : define('PHPMAILERHOST', '172.16.0.244'); // if TEST is set to 1 (not 0) it will not actually send ANY messages, but display what it would have sent // this is here, to make sure you edited the config file and mails are not sent "accidentally" // on unmanaged systems define('TEST', 0); : $bounce_protocol = 'pop'; // set this to 0, if you set up a cron to download bounces regularly by using the // commandline option. If this is 0, users cannot run the page from the web // frontend. Read README.commandline to find out how to set it up on the // commandline define('MANUALLY_PROCESS_BOUNCES', 1); // when the protocol is pop, specify these three $bounce_mailbox_host = '172.16.0.244'; $bounce_mailbox_user = 'noreply'; $bounce_mailbox_password = '**password**'; : define("PHPMAILER_SECURE",'tls'); define('PHPMAILERHOST', '172.16.0.244'); define('PHPMAILERPORT', 587); $phpmailer_smtpuser = 'noreply'; $phpmailer_smtppassword = '**password**'; $phpmailer_smtpoptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); :
- 更改目錄權限
chown -R apache:apache /var/lib/php/session/ mkdir -p /var/www/html/images chown apache:apache /var/www/html/images
進入網頁設定
- 看到
Database has not been initialised. go to Initialise Database to continue
點 [Initialise Database] 建立基本資料
- 填寫基本表格資料 點 [Continue] 就自動建立資料表
寄信設定
因為現在的郵件主機 iRedMail / MailCow 都需要透過 SMTP SSL/TLS 寄信, 且信件的來源必須是該認證帳號的信箱, 因此
- config.php 內必須要設定 $phpmailer_smtpoptions 才能通過 SSL 加密協定, 否則 Mail Server 會出現類似以下的訊息
Mar 26 23:42:45 ct-edm postfix/submission/smtpd[12734]: connect from unknown[172.16.0.101] Mar 26 23:42:45 ct-edm postfix/submission/smtpd[12734]: Anonymous TLS connection established from unknown[172.16.0.101]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits) Mar 26 23:42:45 ct-edm postfix/submission/smtpd[12734]: lost connection after STARTTLS from unknown[172.16.0.101] Mar 26 23:42:45 ct-edm postfix/submission/smtpd[12734]: disconnect from unknown[172.16.0.101]
- phplist 的 config 設定 person in charge of this system 必須是寄送 Mail Server 內的信箱 Exp. 寄送信箱是 edm.ichiayi.com 則 smtpuser 是 noreply 就要填寫 [email protected]
- config.php 內的 $phpmailer_smtpoptions 範例
: $phpmailer_smtpuser = 'noreply'; $phpmailer_smtppassword = '**password**'; $phpmailer_smtpoptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); :