Невозможно запустить Apache на Ubuntu 12.10: нет доступных сокетов для прослушивания

7

Я не могу запустить apache2, установленный с помощью apt-get. Я получаю ту же ошибку на двух отдельных установках Ubuntu 12.10, один на моем настольном ПК, другой работает в VirtualBox:

[email protected]:~$ sudo service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
           [fail]

lsof говорит:

[email protected]:/var/log/apache2$ sudo lsof -i :80
COMMAND     PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge  2074 michal   11u  IPv4  23978      0t0  TCP michaltest.local:47578->mulberry.canonical.com:http (CLOSE_WAIT)
firefox   25194 michal   71u  IPv4  42477      0t0  TCP michaltest.local:59793->69.59.197.29:http (ESTABLISHED)
firefox   25194 michal   76u  IPv4  41834      0t0  TCP michaltest.local:59698->69.59.197.29:http (ESTABLISHED)
gvfsd-htt 25320 michal   12u  IPv4  42568      0t0  TCP michaltest.local:56203->lb260.amst.cotendo.net:http (CLOSE_WAIT)

netstat говорит:

[email protected]:/var/log/apache2$ sudo netstat -lnp | grep '80'
unix  2      [ ACC ]     STREAM     LISTENING     8030     876/acpid           /var/run/acpid.socket

/var/log/apache2/error.log:

[Thu Nov 08 11:13:30 2012] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Thu Nov 08 11:17:32 2012] [notice] caught SIGTERM, shutting down

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Спасибо за вашу помощь.

ИЗМЕНИТЬ № 1:

[email protected]:~$ sudo netstat -ano | grep '443'
tcp       54      0 10.0.2.15:58504         91.189.92.70:443        CLOSE_WAIT  off (0.00/0/0)
    
задан michalstanko 15.11.2012 в 09:34
источник

5 ответов

7

Основная проблема: недоступны доступные сокеты для прослушивания . Вы сталкиваетесь с этой проблемой, поскольку другое приложение / служба приобрела порт 80 на вашем сервере Ubuntu.

Теперь вам нужно Убить процесс, который приобрел порт 80. Вы можете легко найти следующую команду: -

  

sudo netstat -ltnp | grep ': 80'

Это вернет что-то вроде: -

  

tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 1588 / aolserver4-nsd

для вышеприведенного случая Номер процесса 1588 , приобретенный порт 80 , вам нужно убить этот процесс 1588.

  

sudo kill -9 1588

Теперь вы можете запустить свой сервер apache, выполнив команду

  

sudo /etc/init.d/apache2 start

    
ответ дан Vikas Dwivedi 17.12.2013 в 15:55
2

Чтобы разрешить "apache2: не удалось достоверно определить полное доменное имя сервера, используя 127.0.1.1 для ошибки ServerName , укажите в файле apache2.conf следующее:

ServerName HOSTNAME_OF_THE_SERVER

Сохраните файл conf и перезапустите сервер Apache.

Пожалуйста, опубликуйте вывод sudo netstat -ano | grep '443'

Также убедитесь, что если вы настраиваете apache для прослушивания по порту 443 / ssl, вам необходимо настроить сертификат ssl на веб-сервере apache.

    
ответ дан Vidyadhar 15.11.2012 в 10:35
0

Вы видели:

Unable to open logs

Я думаю, вы могли бы проверить разрешения на / var / log / apache2!

    
ответ дан martin-mystere 15.11.2012 в 11:23
0

Похоже, проблема заключается в том, что в другом процессе открыт порт 443. Сначала вам нужно будет убить этот процесс.

linux - Как удалить соединение сокетов CLOSE_WAIT - Переполнение стека говорит:

  

CLOSE_WAIT означает, что ваша программа все еще запущена и не закрыла сокет (и ядро ​​ждет его для этого). Добавьте -p в netstat , чтобы получить pid, а затем убейте его более активно (при необходимости SIGKILL ). Это должно избавиться от ваших сокетов CLOSE_WAIT . Вы также можете использовать ps , чтобы найти pid.

    
ответ дан Peter V. Mørch 23.08.2016 в 12:10
0

Похоже, что служба nginx работает позади. Поэтому остановите nginx «service nginx stop» и теперь попробуйте запустить apache2-сервис, он должен появиться без каких-либо проблем. (остановитесь, если запущены другие службы приложения)

У меня была такая же проблема сегодня, и она была решена.

[email protected]:~# **service nginx stop**
[email protected]:~# **service nginx status**
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2017-12-26 08:48:21 UTC; 1min 12s ago
  Process: 5897 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1220 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1158 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1229 (code=exited, status=0/SUCCESS)

Dec 26 06:56:32 ip-172-31-16-xxxsystemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 26 06:56:32 ip-172-31-16-138 systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopping A high performance web server and a reverse proxy server...
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopped A high performance web server and a reverse proxy server.

[email protected]:~# **service apache2 start**
[email protected]:~# **service apache2 status**
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   **Active: active (running) since Tue 2017-12-26 08:49:51 UTC; 14s ago**
     Docs: man:systemd-sysv-generator(8)
  Process: 5845 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 5937 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 6.5M
      CPU: 46ms
   CGroup: /system.slice/apache2.service
           ├─5954 /usr/sbin/apache2 -k start
           ├─5957 /usr/sbin/apache2 -k start
           └─5958 /usr/sbin/apache2 -k start

Dec 26 08:49:50 ip-172-31-16-138 systemd[1]: Starting LSB: Apache2 web server...
Dec 26 08:49:50 ip-172-31-16-138 apache2[5937]:  * Starting Apache httpd web server apache2
Dec 26 08:49:51 ip-172-31-16-138 apache2[5937]:  *
Dec 26 08:49:51 ip-172-31-16-138 systemd[1]: Started LSB: Apache2 web server.
[email protected]:~#
    
ответ дан Nagaraj Jalawadi 26.12.2017 в 08:54