在本地一直使用wampserver来调试PHP程序,最近将wampserver从3.2.4升级到3.3.0之后的版本,发现增加Listen port,创建virtualhost之后,提示如下错误:
localhost:{$MYPORT8081} - Not a Listen port Error(s)
这个错误一味这在Apache的配置文件中,这个变量应该是没有生效的。打开Apache的errorlog文件,显示如下错误:
[Wed Feb 15 17:54:18.633353 2023] [core:error] [pid 13468:tid 556] (OS 11001)不知道这样的主机。 : AH00547: Could not resolve host name *:{$MYPORT8081} -- ignoring! [Wed Feb 15 17:54:18.635347 2023] [core:error] [pid 13468:tid 556] (OS 11001)不知道这样的主机。 : AH00547: Could not resolve host name *:{$MYPORT8082} -- ignoring!
这个错误就明确提示了{$MYPORT8081}这两个变量是有问题的。再打开配置httpd.conf文件,新增的几个端口是定义了的:
Define APACHE24 Apache2.4 Define VERSION_APACHE 2.4.54.2 Define INSTALL_DIR D:/programs/wamp64 Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE} Define MYPORT8083 8083 Define MYPORT8082 8082 Define MYPORT8081 8081 Define SRVROOT ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
变量已定义,那就说明问题不出在这个地方,打开httpd-vhosts.conf,查看virtualhost的定义,发现变量的定义书写是有问题的。正常的变量引用应该是${varname},但是此处的引用方式确实{$varname},导致变量解析失败。手工修改virtualhost的配置如下,重启服务,问题解决。
<VirtualHost *:${MYPORT8081}> ServerName localhost DocumentRoot "d:/workspace/web/drupal" <Directory "d:/workspace/web/drupal/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost>