简体   繁体   中英

HTTPD conflict with other virtualhost

This is our httpd.conf file located in users directAdmin directory

# Auto generated apache config file by DirectAdmin version 1.42.1
# Modifying this file is not recommended as any changes you make will be
# overwritten when the user makes any changes to his/her website

# For global config changes that affect all Users, see this guide:
# http://help.directadmin.com/item.php?id=2
# For local config changes that only affect one User, see this guide:
# http://help.directadmin.com/item.php?id=3

# Frontpage requires these parameters in every httpd.conf file or else
# it won't work.
ServerRoot /etc/httpd




<VirtualHost 91.239.206.147:80 >
ServerName www.duri.ge
ServerAlias www.duri.ge duri.ge 

Alias /media/ /home/duri/domains/duri.ge/public_html/media/
Alias /static/ /home/duri/domains/duri.ge/public_html/assets/

<Directory /home/duri/domains/duri.ge/public_html/assets>
       Order deny,allow
       Allow from all
</Directory>

<Directory /home/duri/domains/duri.ge/public_html/media>
       Options +Includes +Indexes
       Order deny,allow
       Allow from all
</Directory>

WSGIScriptAlias / /home/duri/domains/duri.ge/python/sites/duri.ge/duri/wsgi-production.py
WSGIDaemonProcess duri.ge user=duri group=duri python-path=/home/duri/domains/duri.ge/python/sites/duri.ge:/home/duri/domains/duri.ge/python/virtualenvs/duri_env/lib/python2.7/site-packages
WSGIProcessGroup duri.ge

 <Directory /home/duri/domains/duri.ge/python/sites/duri.ge/duri>
    <Files wsgi-production.py>
    Order deny,allow
    Allow from all
    </Files>
    </Directory>


    ServerName www.duri.ge
    ServerAlias www.duri.ge duri.ge 
    ServerAdmin webmaster@duri.ge
    DocumentRoot /home/duri/domains/duri.ge/public_html


    UseCanonicalName OFF

    <IfModule !mod_ruid2.c>
        SuexecUserGroup duri duri
    </IfModule>
    <IfModule mod_ruid2.c>
        RMode config
        RUidGid duri duri
        RGroups apache access
    </IfModule>

    CustomLog /var/log/httpd/domains/duri.ge.bytes bytes
    CustomLog /var/log/httpd/domains/duri.ge.log combined
    ErrorLog /var/log/httpd/domains/duri.ge.error.log






    <Directory /home/duri/domains/duri.ge/public_html>
        Options +Includes -Indexes


        php_admin_flag safe_mode OFF


        php_admin_flag engine OFF
        php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f duri@duri.ge'


        php_admin_value open_basedir /home/duri/:/tmp:/var/tmp:/usr/local/lib/php/


    </Directory>



</VirtualHost>

<VirtualHost 91.239.206.147:80>
ServerName www.mywedding.duri.ge
ServerAlias www.mywedding.duri.ge mywedding.duri.ge 
DocumentRoot /home/duri/domains/duri.ge/public_html/mywedding
ErrorLog /var/log/httpd/domains/duri.ge.mywedding.error.log
CustomLog /var/log/httpd/domains/duri.ge.mywedding.bytes bytes
CustomLog /var/log/httpd/domains/duri.ge.mywedding.log combined
</VirtualHost>

#<VirtualHost 91.239.206.147:80 >
#Alias /media/ /home/duri/domains/duri.ge/public_html/media/
#Alias /static/ /home/duri/domains/duri.ge/public_html/assets/

#<Directory /home/duri/domains/duri.ge/public_html/assets>
#       Order deny,allow
#       Allow from all
#</Directory>

#<Directory /home/duri/domains/duri.ge/public_html/media>
#       Options +Includes +Indexes
#       Order deny,allow
#       Allow from all
#</Directory>

#WSGIScriptAlias / /home/duri/domains/duri.ge/python/sites/duri.ge/duri/wsgi-production.py
#WSGIDaemonProcess duri.ge user=duri group=duri python-path=/home/duri/domains/duri.ge/python/sites/duri.ge:/home/duri/domains/duri.ge/python/virtualenvs/duri_env/lib/python2.7/site-packages
#WSGIProcessGroup duri.ge

# <Directory /home/duri/domains/duri.ge/python/sites/duri.ge/duri>
#    <Files wsgi-production.py>
#   Order deny,allow
#   Allow from all
#   </Files>
#    </Directory>


#   ServerName www.mywedding.duri.ge
#   ServerAlias www.mywedding.duri.ge mywedding.duri.ge 
#   ServerAdmin webmaster@duri.ge
#   DocumentRoot /home/duri/domains/duri.ge/public_html/mywedding


#   UseCanonicalName OFF

#   <IfModule !mod_ruid2.c>
#       SuexecUserGroup duri duri
#   </IfModule>
#   <IfModule mod_ruid2.c>
#       RMode config
#       RUidGid duri duri
#       RGroups apache access
#   </IfModule>

#   CustomLog /var/log/httpd/domains/duri.ge.mywedding.bytes bytes
#   CustomLog /var/log/httpd/domains/duri.ge.mywedding.log combined
#   ErrorLog /var/log/httpd/domains/duri.ge.mywedding.error.log






#   <Directory /home/duri/domains/duri.ge/public_html/mywedding>
#       Options +Includes -Indexes

#       php_admin_flag safe_mode OFF


#       php_admin_flag engine OFF
#       php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f duri@duri.ge'


#       php_admin_value open_basedir /home/duri/:/tmp:/var/tmp:/usr/local/lib/php/


#   </Directory>



#</VirtualHost>



#<VirtualHost 91.239.206.147:80 >
#Alias /media/ /home/duri/domains/duri.ge/public_html/media/
#Alias /static/ /home/duri/domains/duri.ge/public_html/assets/

#<Directory /home/duri/domains/duri.ge/public_html/assets>
#       Order deny,allow
#       Allow from all
#</Directory>

#<Directory /home/duri/domains/duri.ge/public_html/media>
#       Options +Includes +Indexes
#       Order deny,allow
#       Allow from all
#</Directory>

#WSGIScriptAlias / /home/duri/domains/duri.ge/python/sites/duri.ge/duri/wsgi-production.py
#WSGIDaemonProcess duri.ge user=duri group=duri python-path=/home/duri/domains/duri.ge/python/sites/duri.ge:/home/duri/domains/duri.ge/python/virtualenvs/duri_env/lib/python2.7/site-packages
#WSGIProcessGroup duri.ge

# <Directory /home/duri/domains/duri.ge/python/sites/duri.ge/duri>
#    <Files wsgi-production.py>
#   Order deny,allow
#   Allow from all
#   </Files>
#    </Directory>


#   ServerName www.test.duri.ge
#   ServerAlias www.test.duri.ge test.duri.ge 
#   ServerAdmin webmaster@duri.ge
#   DocumentRoot /home/duri/domains/duri.ge/public_html/test


#   UseCanonicalName OFF

#   <IfModule !mod_ruid2.c>
#       SuexecUserGroup duri duri
#   </IfModule>
#   <IfModule mod_ruid2.c>
#       RMode config
#       RUidGid duri duri
#       RGroups apache access
#   </IfModule>

#   CustomLog /var/log/httpd/domains/duri.ge.test.bytes bytes
#   CustomLog /var/log/httpd/domains/duri.ge.test.log combined
#   ErrorLog /var/log/httpd/domains/duri.ge.test.error.log






#   <Directory /home/duri/domains/duri.ge/public_html/test>
#       Options +Includes -Indexes
#
#       php_admin_flag safe_mode OFF
#

#       php_admin_flag engine OFF
#       php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f duri@duri.ge'


#       php_admin_value open_basedir /home/duri/:/tmp:/var/tmp:/usr/local/lib/php/


#   </Directory>



#</VirtualHost>

and this is httpd.conf located in /etc/httpd/conf

#
# This is the main Apache HTTP server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see 
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do.  They're here only as hints or reminders.  If you are unsure
# consult the online docs. You have been warned.  

ServerRoot "/etc/httpd"
Listen 80

#LoadModule dummy_module /usr/lib/apache/mod_dummy.so
#LoadModule php5_module        /usr/lib/apache/libphp5.so
LoadModule ruid2_module       /usr/lib/apache/mod_ruid2.so
Include /etc/httpd/conf/extra/httpd-phpmodules.conf
#LoadModule SocketPolicyServer /usr/lib/apache/mod_socket_policy_server.so
#LoadModule socket_policy_server_module /usr/lib/apache/mod_socket_policy_server.so
LoadModule wsgi_module /usr/lib/apache/mod_wsgi.so

User apache
Group apache

ServerAdmin admin@localhost
DocumentRoot "/var/www/html"

# Options and AllowOverrides
Include conf/extra/httpd-directories.conf

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.shtml index.php index.php5 index.php4 index.php3 index.phtml index.cgi
</IfModule>

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

ErrorLog /var/log/httpd/error_log
LogLevel warn

<IfModule log_config_module>
    #replace %b with %O for more accurate logging
    <IfModule mod_logio.c>
      LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
      LogFormat "%h %l %u %t \"%r\" %>s %O" common
      LogFormat "%O %I" bytes

      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog /var/log/httpd/access_log common
</IfModule>

<IfModule alias_module>
    # Include some DirectAdmin alias
    Include conf/extra/httpd-alias.conf
</IfModule>

DefaultType text/plain

<IfModule mime_module>
    TypesConfig conf/mime.types
    AddType application/x-gzip .tgz
    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddHandler cgi-script .cgi
    AddHandler type-map var
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    AddType video/x-ms-asf .avi
    AddType video/mpeg .mpg
    AddType video/mpeg .mpeg
    AddType video/quicktime .mov
    AddType video/x-ms-wmv .wmv
</IfModule>

#EnableMMAP off
#EnableSendfile off

#######################################################################################
# For user configurations not maintained by DirectAdmin. Empty by default.
#######################################################################################

Include conf/extra/httpd-includes.conf


#######################################################################################
# Do not change anything in included files, because they are rewritten by DirectAdmin #
#######################################################################################

# This is needed for PHP
Include conf/extra/httpd-php-handlers.conf

# Server-pool management (MPM specific)
Include conf/extra/httpd-mpm.conf

# Multi-language error messages
Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings
Include conf/extra/httpd-autoindex.conf

# Language settings
Include conf/extra/httpd-languages.conf

# User home directories
#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration
Include conf/extra/httpd-info.conf

# Virtual hosts
Include conf.d/wsgi.conf

# Local access to the Apache HTTP Server Manual
#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)
Include conf/extra/httpd-dav.conf

# Various default settings
Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections
#Include conf/extra/httpd-ssl.conf

# Deflate module settings
Include conf/extra/httpd-deflate.conf

# All the DirectAdmin vhosts
Include conf/extra/directadmin-vhosts.conf

# All suPHP directives
#Include conf/extra/httpd-su[5~php.conf

#######################################################################################
# End of included files that are rewritten by DirectAdmin                             #
#######################################################################################

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

#<IfModule mod_socket_policy_server.c>

#Listen 8889
#<VirtualHost *:8889>
#  SocketPolicyServer On
#  SocketPolicyFile /var/www/html/crossdomain.xml
#  AdobePolicyFileServerEnabled On
#</VirtualHost>
# </IfModule>

first there was a python code on root. then through directAdmin I added two subdomains, test and mywedding for using with php.

the thing is that apache wont start if I don't comment those newly added lines. Then I added virtualhost directly without directAdmin.

<VirtualHost 91.239.206.147:80>
ServerName www.mywedding.duri.ge
ServerAlias www.mywedding.duri.ge mywedding.duri.ge 
DocumentRoot /home/duri/domains/duri.ge/public_html/mywedding
ErrorLog /var/log/httpd/domains/duri.ge.mywedding.error.log
CustomLog /var/log/httpd/domains/duri.ge.mywedding.bytes bytes
CustomLog /var/log/httpd/domains/duri.ge.mywedding.log combined
</VirtualHost>

this lines, but the problem is that subdomain "mywedding.duri.ge" keeps redirecting to (not with http but internally) python.

Your first virtual host block does not define a ServerName so it has no way to know which requests are for it, and which requests are for the next virtual host block. Since it cannot discriminate, it accepts and responds to all requests. Add a ServerName which is different from the ServerName (and aliases) in the second block.

See the documentation here .

IP-based virtual hosts use the IP address of the connection to determine the correct virtual host to serve. Therefore you need to have a separate IP address for each host. With name-based virtual hosting, the server relies on the client to report the hostname as part of the HTTP headers. Using this technique, many different hosts can share the same IP address.

What follows is an example vhost that will respond differently to requests made to www.example.com compared to www.another.com . Hopefully with this you can find your issue:

# This line is probably in /etc/apache2/ports.conf, if it is uncommented you do
# not need to repeat it.
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.example.com

    DocumentRoot /tmp/example.com

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /tmp/example.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerName www.another.com

    DocumentRoot /tmp/another.com

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /tmp/another.com>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

I put two files, one in /tmp/example.com/index.html , and another in /tmp/another.com/index.html with different content. I was able to see the different content when I requested the files:

$ curl http://www.another.com/index.html
another

$ curl http://www.example.com/index.html
example

You will need to add those entries to your /etc/hosts file to be able to make the requests:

127.0.0.1 www.example.com www.another.com

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM