我在带有WordPress图像(https://hub.docker.com/_/wordpress/)的docker-container中运行WordPress安装。我的问题是我无法通过wp_mail()
或使用PHP mail()
发送邮件。
当我尝试调用mail()
- 函数时,我得到一个"内部服务器错误"。
我该怎么办?我需要外部邮件服务器吗?
我的docker-compose.yml:
wordpress:
image: wordpress
container_name: shk_wordpress
links:
- mariadb:mysql
environment:
- WORDPRESS_DB_PASSWORD=admin
ports:
- "8000:80"
volumes:
- ./app:/var/www/html
- ./theme/:/var/www/html/wp-content/themes/shk-theme
mariadb:
image: mariadb
container_name: shk_mariadb
environment:
- MYSQL_ROOT_PASSWORD=admin
- MYSQL_DATABASE=wordpress
volumes:
- ./database:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: shk_phpmyadmin
environment:
- PMA_ARBITRARY=1
- MYSQL_USER=root
- MYSQL_PASSWORD=admin
- MYSQL_ROOT_PASSWORD=admin
ports:
- "9000:80"
links:
- "mariadb:mysql"
答案 0 :(得分:0)
似乎这个问题已经在WP docker image repo中被讨论过了。 查看此答案 Github
如果你的问题不起作用,你可能会找到其他解决方案。
答案 1 :(得分:0)
第1步:
在您的docker-compose.yml中,替换
image: wordpress
作者
build: .
第2步:
创建一个Dockerfile:
FROM wordpress
RUN apt-get update
RUN apt-get install -y ssmtp
RUN echo "sendmail_path = /usr/sbin/ssmtp -t" >> /usr/local/etc/php/conf.d/sendmail.ini
RUN sed -i -e 's/mailhub=mail/mailhub=[IP RELAY SERVER]/' /etc/ssmtp/ssmtp.conf
RUN sed -i -e 's/#rewriteDomain=/rewriteDomain=[IP RELAY SERVER]/' /etc/ssmtp/ssmtp.conf
RUN sed -i -e '/hostname=/d' /etc/ssmtp/ssmtp.conf
第3步: 替换[IP RELAY SERVER]