Не удалось выполнить задание для 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

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

После выполнения 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>
Другие вопросы по тегам