LNMP的mail()函数缺失无法发送邮件,解决办法
wordpress不能发送邮件,提示缺少mail()。
解决办法
安装或启动 sendmail 组件 即可。
步骤如下:
1.重新安装 sendmail 组件,我用的是 CentOS ,使用下面的命令安装
yum install sendmail
2.使用下面的命令重启php-fpm进程
/etc/init.d/php-fpm restart
3.检测sendmail是否运行正常
/etc/init.d/sendmail status
如果显示正在运行running 就可以。
可能用到的命令
/etc/init.d/sendmail start (启动sendmail)
/etc/init.d/sendmail stop (关闭sendmail)
/etc/init.d/sendmail restart (重启sendmail)
4.配置php.ini,填写sendmail的绝对路径
使用命令打开编辑php.ini
vi /usr/local/php/etc/php.ini
输入?sendmail_path 查找定位(或者手动跳转找到sendmail_path),你会发现默认是下面的代码
;sendmail_path =
按 i 进入编辑,将这行修改为
sendmail_path = /usr/sbin/sendmail -t -i
按 Esc 键退出编辑,输入 :wq 保存退出
5.重启php-fpm进程
/etc/init.d/php-fpm restart
好了,sendmail安装配置完毕。 但是不是感觉sendmail发送邮件速度很慢?继续看下面
付:sendmail发送邮件慢的解决办法
cat /etc/hosts
显示
[root@imdupeng ~]# cat /etc/hosts
127.0.0.1 localhost
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.162.86.80 AY140429213645102459Z
(第四行的是服务器内部ip和阿里云服务器的主机名。)
因为sendmail监听的是127.0.0.1,但却无法确认主机名 AY140429213645102459Z(因为在服务器上/etc/sysconfig/network文件里记录的HOSTNAME是 AY140429213645102459Z ),所以发送邮件就非常慢了。那么我就把 AY140429213645102459Z 这个主机名同时也加到127.0.0.1上面,变成:
127.0.0.1 localhost
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 AY140429213645102459Z
10.162.86.80 AY140429213645102459Z
修改方法依然是用vi命令(也可以直接下载相关路径文件夹的文件修改后上传,最好使用EditPlus或者Sublime text等专业编辑器修改文件)。
然后使用命令
service sendmail restart
重启sendmail服务即可。
1 条留言 访客:0 条 博主:0 条 引用: 1 条
来自外部的引用: 1 条