0

I've been using this tutorial to set up an Apache virtual host on my Ubuntu pc. I've created a no-ip domain which I will be using as the hostname of my virtual host. I've followed every step of the tutorial but it doesn't work. Here's the virtual host file and it's named crm2plus.ddns.net.conf:

<VirtualHost *:80> # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com ServerAdmin [email protected] ServerName crm2plus.ddns.net ServerAlias crm2plus.ddns.net DocumentRoot /var/www/crm2plus.ddns.net/public_html # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf </VirtualHost> <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride All Order Allow,Deny Allow from all </Directory> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet 

I've also added the ip and domain name pair to my local hosts file and here's how it looks:

23.253.21.201 shhasan.ddns.net 127.0.1.1 Ubuntu-Dev 127.0.0.1 localhost 99.250.71.177 crm2plus.ddns.net # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 

When I navigate to crm2plus.ddns.net through chrome I get the web page not available page. shhasan.ddns.net is working fine. When I type ssh-keygen -H -F crm2plus.ddns.net into the terminal nothing shows up but when I type ssh-keygen -H -F shhasan.ddns.net this is what shows up:

# Host shhasan.ddns.net found: line 14 type RSA 

followed by the RSA key.

I've also looked at the Apache error and access logs. The error logs have a lot of repetition of such line of code:

[Fri Nov 14 17:44:50.304782 2014] [mpm_prefork:notice] [pid 21927] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.5 configured -- resuming normal operations [Fri Nov 14 17:44:50.304801 2014] [core:notice] [pid 21927] AH00094: Command line: '/usr/sbin/apache2' [Fri Nov 14 17:44:54.979832 2014] [mpm_prefork:notice] [pid 21927] AH00169: caught SIGTERM, shutting down 

I searched for caught SIGTERM, shutting down and I found that this was part of normal operation. I have no idea of where I'm going wrong. It had worked previously for shhasan.ddns.net but it doesn't work for crm2plus.ddns.net.

All help and suggestions are greatly appreciated.


Update:

developer@Ubuntu-Dev:/etc/apache2$ ls apache2.conf apache2.conf.dpkg-dist conf-enabled httpd.conf magic mods-enabled ports.conf~ sites-enabled apache2.conf~ conf-available envvars httpd.conf~ mods-available ports.conf sites-available

developer@Ubuntu-Dev:/etc/apache2/sites-available$ ls 000-default.conf 000-default.conf~ 000-default.conf.dpkg-dist crm2plus.ddns.net.conf crm2plus.ddns.net.conf~ default.save default-ssl.conf shhasan.ddns.net.conf

developer@Ubuntu-Dev:/etc/apache2/sites-enabled$ ls crm2plus.ddns.net.conf shhasan.ddns.net.conf

apache2.conf shortened version:

Include /etc/phpmyadmin/apache.conf ServerName localhost Mutex file:${APACHE_LOCK_DIR} default PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 5 User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} HostnameLookups Off ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf Include ports.conf <Directory /> Options FollowSymLinks AllowOverride All # Order deny,allow # Deny from all </Directory> <Directory /usr/share> AllowOverride None Require all granted </Directory> <Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> #<Directory /srv/> # Options Indexes FollowSymLinks # AllowOverride None # Require all granted #</Directory> AccessFileName .htaccess <FilesMatch "^\.ht"> Require all denied </FilesMatch> LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent IncludeOptional conf-enabled/*.conf IncludeOptional sites-enabled/*.conf 
4
  • Did you enable the site? Commented Nov 14, 2014 at 23:44
  • Yes I have enabled it. It was part of the tutorial. Commented Nov 14, 2014 at 23:45
  • is apache running? run /etc/init.d/apache2 status to see if its started or not. Commented Nov 15, 2014 at 16:55
  • @PeteyT ` /etc/init.d/apache2 status` --> ` * apache2 is running` Commented Nov 15, 2014 at 16:57

2 Answers 2

2

You could try using the Apache2.4 syntax for access control in the Virtual Host definition file, as you are using Apache2.4, then if you have not activated mod_access_compat.so it should work or if you have you can deactivate it.

<Directory /var/www> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> 

I must admit I prefer to add the access control for a Virtual Host within the VH definition itself. Then you know with just a look whats actually going on. So you might consider doing it this way.

<VirtualHost *:80> ServerAdmin [email protected] ServerName crm2plus.ddns.net ServerAlias www.crm2plus.ddns.net DocumentRoot /var/www/crm2plus.ddns.net/public_html <Directory /var/www/crm2plus.ddns.net/public_html> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> 

Also you should be careful when messing with this parameter in the httpd.conf file

<Directory /> Options FollowSymLinks AllowOverride All # Order deny,allow # Deny from all </Directory> 

This controls Apache's access to the root folder, and of course you would not want to allow Apache or a hacker on your Apache access to the universe would you.

So I suggest you set this back to

<Directory /> Options FollowSymLinks AllowOverride All Require all denied </Directory> 

Using the Apache2.4 syntax again of course.


Update: A slightly edited version of the above VH definition worked for crm2plus.ddns.net

<VirtualHost *:80> ServerName crm2plus.ddns.net ServerAlias crm2plus.ddns.net ServerRoot /var/www/crm2plus.ddns.net/ DocumentRoot /var/www/crm2plus.ddns.net/public_html <Directory "/var/www/crm2plus.ddns.net/public_html"> Options +Indexes +FollowSymLinks Order allow,deny Allow from all AllowOverride All </Directory> # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn ErrorLog ${APACHE_LOG_DIR}/crm2plus.ddns.net_error.log CustomLog ${APACHE_LOG_DIR}/crm2plus.ddns.net_access.log combined </VirtualHost> 
Sign up to request clarification or add additional context in comments.

5 Comments

mod_access_compat how do I disable it ?
You dont have to, its just to provide compatibility for old 2.2 syntax. Did any of this help?
you do sudo a2dismod mod_access_compat.
sudo a2dismod mod_access_compat --> ERROR: Module mod_access_compat does not exist!
Then dont worry about it. Using the 2.4 syntax should have fixed your problem
1

Check your /etc/nsswitch.conf file. On my Ubuntu 14.04LTS I have to change line:

hosts: files mdns4_minimal [NOTFOUND=return] dns 

to:

hosts: dns files mdns4_minimal [NOTFOUND=return] 

In order to make Virtual Hosts work.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.