Apache 未监听指定端口

Apache 未监听指定端口

我正在尝试建立一个 Nginx + Apache-with-PHP-module 配置。它在 Debian 6 上使用以下配置运行:

<VirtualHost 127.0.0.1:9002 >
  ServerName mysite.com
  AddDefaultCharset UTF-8
  AssignUserID username username
  CustomLog /var/www/httpd-logs/mysite.com.access.log combined
  DocumentRoot /var/www/username/data/www/mysite.com
  ErrorLog /var/www/httpd-logs/mysite.com.error.log
  AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
  AddType application/x-httpd-php-source .phps
  php_admin_value open_basedir "/var/www/username/data:."
  php_admin_value upload_tmp_dir "/var/www/username/data/mod-tmp"
  php_admin_value session.save_path "/var/www/username/data/mod-tmp"
</VirtualHost>
NameVirtualHost 127.0.0.1:9002
<Directory /var/www/username/data/www/mysite.com>
  Options -ExecCGI -Includes
  php_admin_value open_basedir "/var/www/username/data:."
  php_admin_flag engine on
</Directory>

我在一台新服务器上运行 Ubuntu 16。当我重新启动 apache2 服务并运行时,netstat127.0.0.1:9002 上没有任何内容(即使 apache 正在运行)。正如预期的那样,Nginx 给出了connect() failed (111: Connection refused) while connecting to upstream错误。我试过:

  • 将端口(9002)更改为任何其他端口
  • 注释掉NameVirtualHost指令并更改VirtualHost 127.0.0.1:9002VirtualHost *:9002
  • 禁用firewalld——从一开始就被禁用
  • 检查 apache 是否加载了 .conf 文件 — 确实加载了 ( apache2ctl -S)

答案1

您应该Listen向 Apache 配置中添加指令。您可以在其中找到 Listen 指令httpd.conf并将其添加到那里Listen 9002

您可以在以下位置找到更多信息Apache 文档

Listen 指令不实现虚拟主机 - 它仅告诉主服务器要监听哪些地址和端口。如果未使用任何指令,服务器将对所有接受的请求采取相同的行为。但是,可用于为一个或多个地址或端口指定不同的行为。要实现 VirtualHost,必须首先告知服务器监听要使用的地址和端口。然后应为指定的地址和端口创建一个部分来设置此虚拟主机的行为。请注意,如果为服务器未监听的地址和端口设置了,则无法访问它。

相关内容