问题描述

是否可以在尚未配置域名的公共服务器上安装 WordPress?我以为我会在 IP-only 上进行设置,并在我的 Nginx 配置中使用了 server_name _; 。我认为这是因为 WordPress 安装死于 wp-admin/install.php?step=2,我看到 Nginx 日志中出现以下错误:

2017/01/08 07:24:53 [error] 25686#25686: *22 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught phpmailerException: Invalid address: wordpress@_ in /home/ankush/wp_main_site/wp-includes/class-phpmailer.php:946
Stack trace:
#0 /home/ankush/wp_main_site/wp-includes/pluggable.php(352): PHPMailer->setFrom('wordpress@_', 'WordPress', false)
#1 /home/ankush/wp_main_site/wp-admin/includes/upgrade.php(395): wp_mail('dkasolutions.sa...', 'New WordPress S...', 'Your new WordPr...')

是域名是必须的还是我做错了?

最佳解决方案

server_name 设置为 IP 地址,例如:

server {
    listen   80;
    server_name 0.1.2.3;
    // other stuff
}

你也可以把它留下来,因为 ngninx 中的默认是一个空字符串。但是那些不能验证 $_SERVER['SERVER_NAME']和类似值的 WordPress 中的所有这些片段将会中断。

有关这方面的进展请见 #25239 机票。

如果只有 WordPress 有一个 Request 对象,像其他人一样。那么准备所有这些全球价值观是很容易的。见 Symfony for an example

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。