# Apache2 failing to start

## laebshade

This is the error I'm receiving when trying to run '/etc/init.d/apache2 start':

```
 * Starting apache2...                                                    [ !! ]

```

Yes, the blank line is part of what it prints out.  STARTUPERRORLOG="/var/log/apache2/startuperror.log"' was commented, so I uncommented it, re-ran apache2 and still receiving the same error (and nothing new in startuperrorlog).  I did have apache2 running successfully, for some unknown reason it stopped functioning.  I performed emerge --unmerge apache2, then re-emerged it.  I deleted my old config files (apache2.conf, commonapache2.conf) and re-configured them.  I ran the 'apachectl -t' command to see if my syntax was incorrect and received 'Syntax OK'.

Any ideas?

Edit:  I've scoured these forums prior to this post for those who are in doubt, and have been unable to find a similar problem.  If you know of a thread please post the link.

Edit #2:  Ok, so I was able to find a similar thread.  I ran tail /var/log/apache2/*, startuperror.log gives 4 "Syntax OK" on seperate lines.  The only other log file is horde.log (I had Horde that working on my previous install).  I've deleted all files in /etc/apache2/conf/* and /etc/conf.d/apache/apache2 and /etc/init.d/apache2.  This problem is driving me crazy.  Please, if you can provide any insight... help.

----------

## laebshade

I still have no resolution for this. Please, if have any input, I'm all ears.

----------

## pdr

Did you check your apache error log? Should be /var/log/apache2/error_log...

----------

## laebshade

```
root@laeb vsftpd # ls /var/log/apache2/error_log

ls: /var/log/apache2/error_log: No such file or directory

```

----------

## pdr

Did you configure the apache config file? Of course, by default it sets the log to be /var/log/apache2/error_log...

Anything in the system log (/var/log/messages)?

What does netstat -l say? Is anything already listening on port 80 (listed as www)? Of course if this was the problem, I would really expect entries to be made in the error log.

----------

## 59729

I think I had a similar problem but with mysql, I made sure I had my log folder /var/log/mysql, then I restarted syslog-ng and then mysql started up

----------

## laebshade

```
root@laeb root # netstat -l

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State

tcp        0      0 *:imaps                 *:*                     LISTEN

tcp        0      0 *:pop3s                 *:*                     LISTEN

tcp        0      0 localhost:mysql         *:*                     LISTEN

tcp        0      0 *:pop-3                 *:*                     LISTEN

tcp        0      0 *:imap2                 *:*                     LISTEN

tcp        0      0 localhost:815           *:*                     LISTEN

tcp        0      0 *:sunrpc                *:*                     LISTEN

tcp        0      0 *:ftp                   *:*                     LISTEN

tcp        0      0 *:domain                *:*                     LISTEN

tcp        0      0 *:ssh                   *:*                     LISTEN

tcp        0      0 *:smtp                  *:*                     LISTEN
```

```
root@laeb root # cat /var/log/messages

root@laeb root #

```

And yes, I did configure apache.  It gives an actual error on screen if it isn't configured. Here's my apache2.conf file:

```
### /etc/apache2/conf/apache2.conf

### $Id: apache2.conf,v 1.1 2004/03/22 21:17:57 stuart Exp $

###

### Main Configuration Section

### You really shouldn't change these settings unless you're a guru

###

ServerRoot /usr/lib/apache2

ServerName laeb.dyndns.org

#LockFile /etc/apache2/apache2.lock

PidFile /var/run/apache2.pid

ErrorLog logs/error_log

LogLevel warn

DocumentRoot /var/www/localhost/htdocs

### Dynamic Shared Object (DSO) Support

###

### You should always leave these three, as they are needed for normal use.

### mod_access (Order, Allow, etc..)

### mod_log_config (Transferlog, etc..)

### mod_mime (AddType, etc...)

###

LoadModule access_module                 modules/mod_access.so

LoadModule auth_module                   modules/mod_auth.so

LoadModule auth_anon_module              modules/mod_auth_anon.so

LoadModule auth_dbm_module               modules/mod_auth_dbm.so

LoadModule auth_digest_module            modules/mod_auth_digest.so

LoadModule include_module                modules/mod_include.so

LoadModule log_config_module             modules/mod_log_config.so

LoadModule env_module                    modules/mod_env.so

LoadModule mime_magic_module             modules/mod_mime_magic.so

LoadModule cern_meta_module              modules/mod_cern_meta.so

LoadModule expires_module                modules/mod_expires.so

LoadModule headers_module                modules/mod_headers.so

LoadModule usertrack_module              modules/mod_usertrack.so

LoadModule unique_id_module              modules/mod_unique_id.so

LoadModule setenvif_module               modules/mod_setenvif.so

LoadModule proxy_module                  modules/mod_proxy.so

LoadModule proxy_connect_module          modules/mod_proxy_connect.so

LoadModule proxy_ftp_module              modules/mod_proxy_ftp.so

LoadModule proxy_http_module             modules/mod_proxy_http.so

LoadModule mime_module                   modules/mod_mime.so

LoadModule status_module                 modules/mod_status.so

LoadModule autoindex_module              modules/mod_autoindex.so

LoadModule asis_module                   modules/mod_asis.so

LoadModule info_module                   modules/mod_info.so

LoadModule cgi_module                    modules/mod_cgi.so

LoadModule cgid_module                   modules/mod_cgid.so

LoadModule vhost_alias_module            modules/mod_vhost_alias.so

LoadModule negotiation_module            modules/mod_negotiation.so

LoadModule dir_module                    modules/mod_dir.so

LoadModule imap_module                   modules/mod_imap.so

LoadModule actions_module                modules/mod_actions.so

LoadModule speling_module                modules/mod_speling.so

LoadModule userdir_module                modules/mod_userdir.so

LoadModule alias_module                  modules/mod_alias.so

LoadModule rewrite_module                modules/mod_rewrite.so

###

### New Modules for 2.0 (some are experimental)

###

LoadModule file_cache_module             modules/mod_file_cache.so

LoadModule echo_module                   modules/mod_echo.so

LoadModule charset_lite_module           modules/mod_charset_lite.so

LoadModule cache_module                  modules/mod_cache.so

LoadModule disk_cache_module             modules/mod_disk_cache.so

LoadModule mem_cache_module              modules/mod_mem_cache.so

LoadModule ext_filter_module             modules/mod_ext_filter.so

LoadModule case_filter_module            modules/mod_case_filter.so

LoadModule case_filter_in_module         modules/mod_case_filter_in.so

LoadModule deflate_module                modules/mod_deflate.so

#LoadModule optional_hook_export_module   modules/mod_optional_hook_export.so

#LoadModule optional_hook_import_module   modules/mod_optional_hook_import.so

#LoadModule optional_fn_import_module     modules/mod_optional_fn_import.so

#LoadModule optional_fn_export_module     modules/mod_optional_fn_export.so

#LoadModule bucketeer_module              modules/mod_bucketeer.so

LoadModule logio_module                  modules/mod_logio.so

###

### Global Configuration

###

# Splitting up apache2.conf into two files makes it easier to support

# multiple configurations on the same serer.  In commonapache2.conf

# you keep directives that apply to all implementations and in this

# file you keep server-specific directives.  While we don't yet have

# multiple configurations out-of-the-box, this allows us to do that

# in the future easily.  (PERLPROXIED *ahem*)

#

# For Apache2 we load all conf files in conf/modules.d

Include conf/modules.d/*.conf

Include conf/commonapache2.conf

###

### IP Address/Port

###

#BindAddress *

Listen 8080

###

### Log configuration Section

###

<IfModule mod_log_config.c>

#Single logfile with access, agent and referer information

#This is the default, if vlogs are not defined for the main server

CustomLog logs/access_log combined env=!VLOG

#If VLOG is defined in conf/vhosts/vhosts.conf, we use this entry

#CustomLog "|/usr/sbin/apache2splitlogfile" vhost env=VLOG

</IfModule>

###

### Virtual Hosts

###

# We include different templates for Virtual Hosting. Have a look in the

# vhosts directory and modify to suit your needs.

#Include conf/vhosts/vhosts.conf

#Include conf/vhosts/dynamic-vhosts.conf

#Include conf/vhosts/virtual-homepages.conf

###

### Performance settings Section

###

#

# Timeout: The number of seconds before receives and sends time out.

#

Timeout 300

#

# KeepAlive: Whether or not to allow persistent connections (more than

# one request per connection). Set to "Off" to deactivate.

#

KeepAlive On

#

# MaxKeepAliveRequests: The maximum number of requests to allow

# during a persistent connection. Set to 0 to allow an unlimited amount.

# We recommend you leave this number high, for maximum performance.

MaxKeepAliveRequests 100

#

# KeepAliveTimeout: Number of seconds to wait for the next request from the

# same client on the same connection.

#

KeepAliveTimeout 15

# prefork MPM [THIS IS THE DEFAULT]

# StartServers: number of server processes to start

# MinSpareServers: minimum number of server processes which are kept spare

# MaxSpareServers: maximum number of server processes which are kept spare

# MaxClients: maximum number of server processes allowed to start

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule prefork.c>

StartServers         5

MinSpareServers      5

MaxSpareServers     10

MaxClients         150

MaxRequestsPerChild  0

</IfModule>

# worker MPM

# StartServers: initial number of server processes to start

# MaxClients: maximum number of simultaneous client connections

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# ThreadsPerChild: constant number of worker threads in each server process

# MaxRequestsPerChild: maximum number of requests a server process serves

<IfModule worker.c>

StartServers         2

MaxClients         150

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     25

MaxRequestsPerChild  0

</IfModule>

# perchild MPM

# NumServers: constant number of server processes

# StartThreads: initial number of worker threads in each server process

# MinSpareThreads: minimum number of worker threads which are kept spare

# MaxSpareThreads: maximum number of worker threads which are kept spare

# MaxThreadsPerChild: maximum number of worker threads in each server process

# MaxRequestsPerChild: maximum number of connections per server process

<IfModule perchild.c>

NumServers           5

StartThreads         5

MinSpareThreads      5

MaxSpareThreads     10

MaxThreadsPerChild  20

MaxRequestsPerChild  0

</IfModule>

```

And the only option I configured on /etc/conf/apache2:

```
APACHE2_OPTS="-D SSL -D PHP4"
```

lappen, why are you talking about MySQL?  It's Apache that's failing to start, the MySQL server is running fine:

```
root@laeb root # /etc/init.d/mysql status

 * status:  started
```

----------

## wjholden

I think the problem is you don't have this in there:

```
LoadModule php4_module                         extramodules/libphp4.s
```

Also, do you really mean for your server to listen on port 8080, instead of default 80?  Finally, is "ServerName laeb.dyndns.org" correct?  On my system it's left as "#ServerName localhost".

----------

## pdr

Uh... you really have no messages in the system log? Are you running a logger (syslog-ng, etc)?

----------

## t0ny747

I fixed it at least for me.

I opened the error log and seen "[Tue Mar 22 15:47:49 2005] [alert] (EAI 2)Name or service not known: mod_unique_id: unable to find IPv4 address of "x10"

Configuration Failed"

Whent to /etc/hosts and added my host name to "127.0.0.1 localhost" and boom it worked  :Smile: 

----------

## jhboricua

I'm having the same issue, after an emerge -u world if I see any of the services I run getting an update, I restart them after the emerge.  Apache is the only one failing with no error msg whatsoever.  I did found out the following, so you may want to check if you can reproduce it.  If I comment out the "-D SSL" part on /etc/conf.d/apache2 file and only leave "-D PHP", apache starts fine.  So something got borked on the last upgrade with the SSL component apparently.

Update:  If indeed you can reproduce what I'm describing, the solution to your problem is on this thread

----------

## Bitruder

 *t0ny747 wrote:*   

> Whent to /etc/hosts and added my host name to "127.0.0.1 localhost" and boom it worked 

 

What do you mean "added"?  I'm having the same problem.

EDIT:  Found it

127.0.0.1 localhost HOSTNAME

----------

