如果您正在PHP-FPM
使用 chroot 设置运行(应该如此) - 那么 DNS 和邮件都将不起作用。
2016 年 2 月更新
strace
仅使用gethostbyname
来自测试脚本@ https://knzl.de/setting-up-a-chroot-for-php/在Alpine Linux /dns
中为我解决。我也使用这个链接来解决这个问题。nginx chroot
sh
mini-sendmail
mail
chroot 中 DNS 和邮件所需文件的大致列表
以下命令使 DNS 在 Debian 上使用 PHP5.5 为我工作(使用 Joomla 内置更新组件测试):
#!/bin/sh
chroot=/var/www
domain=mydomain
webuser=www-data
webgroup=www-data
cd $chroot/$domain
mkdir etc
cp /etc/resolv.conf etc/
cp /etc/nsswitch.conf etc/
echo $(cat /etc/group|grep $webgroup) > etc/group
echo $(cat /etc/passwd|grep $webuser) > etc/passwd
cp /etc/services etc/
cp /etc/protocols etc/
cp /etc/host.conf etc/
cp /etc/hosts etc/
cp /etc/networks etc/
mkdir -p usr/bin
mkdir usr/sbin
cp /usr/sbin/ssmtp usr/sbin/
cp /usr/sbin/sendmail usr/sbin/
mkdir usr/share
cp -rf /usr/share/zoneinfo usr/share
mkdir lib
cp /lib/i386-linux-gnu/libresolv.so.2 lib/
cp /lib/i386-linux-gnu/libnss_compat.so.2 lib/
cp /lib/i386-linux-gnu/libc.so.6 lib/
cp /lib/i386-linux-gnu/libnsl.so.1 lib/
cp /lib/i386-linux-gnu/libnss_files.so.2 lib/
cp /lib/i386-linux-gnu/libz.so.1 lib/
cp /lib/i386-linux-gnu/libdl.so.2 lib/
cp /lib/i386-linux-gnu/libcidn.so.1 lib/
cp /lib/i386-linux-gnu/ld-linux.so.2 lib/
cp /lib/i386-linux-gnu/libcrypt.so.1 lib/
cp /lib/i386-linux-gnu/libnss_nis.so.2 lib/
cp /lib/i386-linux-gnu/libnss_dns.so.2 lib/
chown -R $webuser:$webgroup lib usr etc
service php5-fpm restart
我不需要 /bin/sh 或 /usr/lib/locale