apache的port一定要加到ports.conf

其实这个东西本身没有可说的,只要仔细的阅读了apache的帮助文档就可以知道当你新添加一个virtualhost的新端口时,一定要添加一个到ports.conf文件。但是往往有些程序员认为只要在virtualhost中写明端口的就可以了,这样apache就知道我要的是这个端口。但事实上,apache不是凭你virtualhost的端口来启动端口监听的;而是ports.conf。

今天因为这个问题花了一个小时,所以写下来。

刚开始创建了一个virtualhost,文件名test, 内容如下:

  1 <VirtualHost *:8001>
  2
  3     ServerName  127.0.0.1
  4     DocumentRoot /var/www/django/tests
  5     LogLevel info
  6     ErrorLog ${APACHE_LOG_DIR}/tests-error.log
  7     CustomLog ${APACHE_LOG_DIR}/tests-access.log Combined
  8
  9     WSGIScriptAlias / /var/www/django/tests/django.wsgi
 10
 11     <Directory /var/www/django/tests/static>
 12         Options indexes
 13         Order allow,deny
 14         Allow from all
 15     </Directory>
 16
 17     <Directory />
 18         Options indexes
 19         Order allow,deny
 20         Allow from all
 21     </Directory>
“djangotest” [readonly] 30L, 662C                             1,1           Top

让后使用

sudo a2ensite test  

启用我们test的virtualhost

sudo service apache2 reload

加载

sudo service apache2 restart

重启

然后直接在firefox中访问

127.0.0.1:8001

发现不可访问,然后使用

telnet 127.0.0.1 8001

发现还是不可以,那就说明apache根本就没有监听这个端口,但是就是找不到原因。apache在启动的时候没有任何错误。

后来又是查看log,又是上网搜索,没有任何进展。后来实在没有办法,在目录瞎溜达,结果看到ports.conf,才恍然大悟。原来端口要在这里添加端口。

  1 # If you just change the port or add more ports here, you will likely also
  2 # have to change the VirtualHost statement in
  3 # /etc/apache2/sites-enabled/000-default
  4 # This is also true if you have upgraded from before 2.2.9-3 (i.e. from
  5 # Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
  6 # README.Debian.gz
  7
  8 NameVirtualHost *:80
  9 Listen 80
 10
 11 NameVirtualHost *:8080
 12 Listen 8080
 13
 14 NameVirtualHost *:8088
 15 Listen 8088
 16
 17
 18 NameVirtualHost *:8001
 19 Listen 8001
 20
 21 <IfModule mod_ssl.c>
“ports.conf” [readonly] 33L, 859C                             1,1           Top

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示