Не удалось выполнить задание для httpd.service, поскольку процесс управления завершился с кодом ошибки. Смотрите "systemctl status httpd.service" и "journalctl -xe" для подробной информации.
Я установил свежую копию Centos 7. Затем я перезапустил Apache, но Apache не запустился. Я 3 дня застрял в этом вопросе. Даже поддержка не может понять ошибку.
sudo service httpd start
Failed to start apache :
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Mon 2016-05-09 16:08:02 BST; 59s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 5710 (code=exited, status=1/FAILURE)
May 09 16:08:02 mike079.startdedicated.de systemd[1]: Starting The Apache HTTP Server...
May 09 16:08:02 mike079.startdedicated.de httpd[5710]: (98)Address already in use: AH00072: make_sock: could not bind to address 85.25.12.20:80
May 09 16:08:02 startdedicated.de httpd[5710]: no listening sockets available, shutting down
May 09 16:08:02 startdedicated.de httpd[5710]: AH00015: Unable to open logs
May 09 16:08:02 startdedicated.de systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
May 09 16:08:02.startdedicated.de kill[5712]: kill: cannot find process ""
May 09 16:08:02 .startdedicated.de systemd[1]: httpd.service: control process exited, code=exited status=1
May 09 16:08:02startdedicated.de systemd[1]: Failed to start The Apache HTTP Server.
May 09 16:08:02 startdedicated.de systemd[1]: Unit httpd.service entered failed state.
May 09 16:08:02 mike: httpd.service failed.
12 ответов
Из вашего вывода:
нет доступных гнезд для прослушивания, отключение
что в основном означает, что любой порт, который будет прослушивать один apache, уже используется другим приложением.
netstat -punta | grep LISTEN
Предоставит вам список всех используемых портов и информацию, необходимую для распознавания процесса, чтобы вы могли kill
stop
или делай что хочешь с этим делать.
После выполнения nmap
вашего ip я вижу что
80/tcp open http
так что, думаю, ты разобрался.
У меня такая же ошибка из-за простой опечатки в vhost.conf. Не забудьте убедиться, что у вас нет ошибок в файлах конфигурации.
apachectl configtest
В моем случае я получил ошибку просто потому, что изменил Listen 80 для прослушивания 443 в файле
/etc/httpd/conf/httpd.conf
Так как я установил mod_ssl
используя команды yum
yum -y install mod_ssl
в файле была дублирующая директива listen 443 ssl.conf
создан во время mod_ssl
монтаж.
Вы можете проверить это, если у вас есть дубликаты прослушивания 80 или 443, выполнив следующую команду в linux centos (My linux)
grep '443' /etc/httpd/conf.d/*
ниже образец вывода
/etc/httpd/conf.d/ssl.conf:Listen 443 https
/etc/httpd/conf.d/ssl.conf:<VirtualHost _default_:443>
/etc/httpd/conf.d/ssl.conf:#ServerName www.example.com:443
Просто возвращение listen 443 в httd.conf для прослушивания 80 исправило мою проблему.
On command line type journalctl -xe
and the results will be
SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 83 or 80
This means that the SELinux is running on your machine and you need to disable it. then edit the configuration file by type the following
nano /etc/selinux/config
Then find the line SELINUX=enforce
and change to SELINUX=disabled
Then type the following and run the command to start httpd
setenforce 0
Lastly start a server
systemctl start httpd
Разрешить Apache через брандмауэр
Разрешите порт HTTP и HTTPS по умолчанию, порты 80 и 443, через firewalld:
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
И перезагрузите брандмауэр:
sudo firewall-cmd --reload
Некоторые другие службы могут использовать порт 80: попробуйте остановить другие службы: HTTPD, SSL, NGINX, PHP с помощью команды sudo systemctl stop, а затем используйте команду sudo systemctl start httpd
Для меня проблема заключалась в следующем:
[Sat Sep 10 00:43:20.999998 2022] [auth_digest:error] [pid 123456] (2)No such file or directory: AH01762: Failed to create shared memory segment on file /run/httpd/authdigest_shm.128124
[Sat Sep 10 00:43:20.999999 2022] [auth_digest:error] [pid 123456] (2)No such file or directory: AH01760: failed to initialize shm - all nonce-count checking and one-time noncesdisabled
Я только что просмотрел журналы ошибок, чтобы получить эти две строки выше:
*ADMINSHELL* :/var/opt/custom_path/logs/httpd # tail error_log
Итак, проблема была в том, что эта папка отсутствовала: /run/httpd/
Решение:
mkdir /run/httpd
chown root:httpd /run/httpd
chmod 0710 /run/httpd
После того, как это будет сделано. Вы сможете перезапустить службу:
systemctl restart httpd.service
Двойная проверка:
systemctl status httpd.service
попробуйте эту команду, чтобы узнать отсутствующую конфигурацию или ошибку в конфигурации файла $ apachectl configtest
У меня была почти такая же ошибка, и я нашел ошибку наvhost.conf
файл, который находится на .
Если вы настраивали виртуальный хост, я предлагаю вам просмотреть следующий файл и найти там какие-либо ошибки.
/etc/httpd/conf.d/vhost.conf
Ошибка может быть где угодно, в конфигах, библиотеках или двоичных файлах. Ошибка в процессе управления - это общая ошибка, создаваемая системой, когда она не может запустить / перезапустить службу. В моем случае одна из библиотек, связанных с exe в файле .service, имеет проблему. Исправление этой библиотеки решило проблему.
У меня также возникает такая же ошибка после добавления фиктивного SSL
в/etc/httpd/conf.d/ssl.conf
файл он создал строку вроде,
SLCertificateFile /etc/pki/tls/certs/localhost.crt
Я изменил его с SLCertificateFile на SSLCertificateFile.
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
И после перезапуска апача все заработало.
<VirtualHost *:80>
ServerName www.YOURDOMAIN.COM
ServerAlias YOURDOMAIN.COM
DocumentRoot /var/www/YOURDOMAIN.COM/public_html
ErrorLog /var/www/YOURDOMAIN.COM/error.log
CustomLog /var/www/YOURDOMAIN.COM/requests.log combined
DocumentRoot /var/www/YOURDOMAIN.COM/public_html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/YOURDOMAIN.COM/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>