Не вдається запустити Apache на Ubuntu 12.10: розетки для прослуховування відсутні


9

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

michal@michaltest:~$ 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 каже:

michal@michaltest:/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 каже:

michal@michaltest:/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:

michal@michaltest:~$ 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)

Відповіді:


9

вам просто потрібно видалити nginx (3 пакети), то це все .....

Ваша основна проблема - відсутні розетки для прослуховування. Ви стикаєтеся з цією проблемою, оскільки інша програма / послуга придбала порт 80 на вашому сервері Ubuntu.

Тепер вам потрібно вбити процес, який придбав порт 80. Ви можете легко знайти це за допомогою наступної команди: -

sudo netstat -ltnp | греп ': 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 старт


3
Дякую! Це трохи натрапило на мене, тому що воно говорить про те, що "Журнал помилок Apache може мати більше інформації", але там нічого немає, також "Неможливо відкрити журнали", але немає інформації, який файл журналу (apache's? The vhosts '? " ). Виявляється, nodejs все ще використовує порт 80 ..
andyk

Я отримую ту ж помилку, але netstat нічого не перераховує, використовуючи порт 80 ...
Cerin

@Cerin ви повинні спробувати sudo перед netstat.
Vikas Dwivedi

2

Щоб вирішити "apache2: Не вдалося достовірно визначити повноцінне доменне ім'я сервера, використовуючи помилку 127.0.1.1 для ServerName" , будь ласка, вкажіть наступне у вашому файлі apache2.conf

ServerName HOSTNAME_OF_THE_SERVER

Збережіть конф-файл та перезапустіть сервер apache.

Будь ласка, опублікуйте вихід sudo netstat -ano | grep '443'

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


Я розмістив вихід sudo netstat -ano | grep '443'. Справа ServerName - це не проблема. Дуже дякую.
michalstanko

1

Ти бачив:

Unable to open logs

Я думаю, ви можете перевірити дозволи на / var / log / apache2!


Я трохи новачок, однак я зробив /var/log/apache2каталог рекурсивно доступним для запису у світі, потім спробував запустити sudo service apache2 startще раз, і вихід все ще був Unable to open logsтам. Будь-які пропозиції? Дякую.
michalstanko

Хм. То чи може це бути щось подібне? cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere

1

Схоже, позаду може бути служба nginx. Тож зупиніть nginx "сервіс nginx stop" і тепер спробуйте запустити службу apache2, вона повинна прийти без проблем. (зупинити, якщо якісь інші служби додатків запущені)

У мене було те саме питання сьогодні, і воно було вирішене.

root@ip-172-31-16-xxx:~# **service nginx stop**
root@ip-172-31-16-xxx:~# **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.

root@ip-172-31-16-xxx:~# **service apache2 start**
root@ip-172-31-16-xxx:~# **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.
root@ip-172-31-16-138:~#

0

Здається, що проблема полягає в тому, що інший процес має порт 443 відкритим. Вам потрібно спочатку вбити цей процес.

Linux - Як видалити з'єднання сокета CLOSE_WAIT - Переповнення стека говорить:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.