PHP 的 disable_functions 选项可以停用某些特定的 PHP 函式, 主要是基于安全理由, 将一些对系统有威胁的函式停用, 但 disable_functions 必须透过 php.ini 设定, 因为如果可以在 httpd.conf 或 .htaccess 设定, 使用者便很容易将停用的函式开启。
之前遇到一个情况, 要将个别 VirtualHost 的 mail() 函式停用, 但主机内其他 VirtualHost 仍要继续开启 mail()。虽然 disable_functions 不能在 Apache 设定, 但另一个选项 “sendmail_path” 可以, 一般上 PHP 会自动对应到系统的 sendmail 路径, 当使用 mail() 函式时, 便透过 sendmail 发出电邮, 那么只要在 VirtualHost 或 Directory 下设定 sendmail_path 便可以了, 例如:
php_admin_value sendmail_path "tee mail.out > /dev/null"
1
2
3
php_admin_valuesendmail_path"tee mail.out > /dev/null"
然后重新启动 Apache:
# systemctl restart httpd
当停用 mail() 函式的 VirtualHost 或目录使用 mail() 函式时, 程式不会报错, 只是电邮发不出去。
你可能感兴趣的内容: