Я не могу запустить 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)
вам просто нужно удалить nginx (3 пакета), вот и все .....
Ваша основная проблема - нет доступных сокетов прослушивания . Вы столкнулись с этой проблемой, потому что другое приложение / служба приобрело порт 80 на вашем сервере Ubuntu.
Теперь вам нужно уничтожить процесс, получивший порт 80. Это легко найти с помощью следующей команды: -
sudo netstat -ltnp | grep ': 80'
blockquote>Это вернет что-то вроде: -
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 1588 / aolserver4-nsd
blockquote>для вышеприведенного случая Процесс номер 1588 получил порт 80 , вам нужно убить этот процесс 1588.
sudo kill -9 1588
blockquote>Теперь вы можете запустить сервер apache, выполнив команду
sudo /etc/init.d/apache2 start
blockquote>
Вы видели:
Unable to open logs
Я думаю, что вы можете проверить разрешения на / var / log / apache2!
Чтобы устранить «apache2: не удалось надежно определить полное доменное имя сервера, используя 127.0.1.1 для ServerName» , пожалуйста, укажите следующее в вашем файле apache2.conf
ServerName HOSTNAME_OF_THE_SERVER
[ 113] Сохраните файл настроек и перезапустите сервер Apache.
Пожалуйста, опубликуйте выходные данные sudo netstat -ano | grep '443'
Также убедитесь, что если вы настраиваете apache для прослушивания через порт 443 / ssl, вы должны настроить ssl сертификат на веб-сервере apache.
Похоже, проблема в том, что другой процесс имеет открытый порт 443. Сначала вам нужно будет убить этот процесс.
linux - как удалить соединение с сокетом CLOSE_WAIT - переполнение стека говорит:
BLOCKQUOTE>
CLOSE_WAIT
означает, что ваша программа все еще работает и не закрыла сокет (и ядро ждет, пока оно это сделает). Добавьте-p
кnetstat
, чтобы получить пид, а затем убейте его сильнее (при необходимостиSIGKILL
). Это должно избавить вас отCLOSE_WAIT
сокетов. Вы также можете использоватьps
, чтобы найти pid.
Похоже, что мог бы быть nginx сервис, работающий позади. Так остановите nginx "сервис nginx остановка" и теперь попытайтесь запустить 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:~#