centos “httpd.service的作业失败,因为控制进程退出并返回错误代码,”如何修复此问题?

mdfafbf1  于 2022-11-07  发布在  其他
关注(0)|答案(2)|浏览(483)

在通过Certbot安装SSL证书后,我的网站出现了错误信息“太多重定向”。经过一番研究,我想我一定有一个从HTTPS -〉HTTP的重定向,所以我试图修复它,但似乎我使它更糟,Apache不会再启动了。我是一个完全的初学者,所以我很难理解什么是错的。
我设置了一个VPS,使用CentOS7通过SSH访问,以托管一个简单的html网站。我设置了一些基本功能(相关的可能是UFW防火墙,Cloudflare作为DNS,Apache 2.4.6),并设法在我的域上显示了一个测试页面。
然后我继续设置我的虚拟主机与此教程:https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7接下来是本教程,用于设置letsencrypt:https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-centos-7
在这之后,我最初在尝试访问我的域时收到错误信息“太多重定向”,而我的域以前工作正常。虽然我连续四个小时试图修复这个问题,但现在我把事情搞砸了,Apache似乎无法启动。
现在,当我执行$ sudo systemctl restart httpd时,我收到错误消息“httpd.service的作业失败,因为控制进程退出并返回错误代码。有关详细信息,请参见“systemctl status httpd.service”和“journalctl -xe”。”

[USER@host ~]$ sudo systemctl status httpd.service

* httpd.service - The Apache HTTP Server

   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Wed 2019-01-23 00:57:39 UTC; 20s ago
     Docs: man:httpd(8)
           man:apachectl(8)
  Process: 26023 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
  Process: 24468 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
  Process: 26021 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
 Main PID: 26021 (code=exited, status=1/FAILURE)

Jan 23 00:57:39 host systemd[1]: Starting The Apache HTTP Server...
Jan 23 00:57:39 host systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE
Jan 23 00:57:39 host kill[26023]: kill: cannot find process ""
Jan 23 00:57:39 host systemd[1]: httpd.service: control process exited, code=exited status=1
Jan 23 00:57:39 host systemd[1]: Failed to start The Apache HTTP Server.
Jan 23 00:57:39 host systemd[1]: Unit httpd.service entered failed state.
Jan 23 00:57:39 host systemd[1]: httpd.service failed.

我对/etc/httpd/conf/httpd.conf所做的唯一更改是将底部的IncludeOptional conf.d/*.conf更改为IncludeOptional sites-enabled/*.conf
我的虚拟主机设置当前如下:

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot /var/www/example.com/public_html
    Redirect / https://www.example.com/
</VirtualHost>

<VirtualHost _default_:443>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/requests.log combined
    SSLEngine on
</VirtualHost>

会很感激任何关于什么可能是错误的指示。

disbfnqx

disbfnqx1#

因为我使用了letsencrypt,所以它看起来像这样:

SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

这解决了apache的错误。虽然SSL加密还不能工作,但如果我发现这是这些行的问题,我会回来更新它。
编辑:这个设置现在对我来说很好用。SSL加密不起作用的问题是由于在CloudFlare中将SSL设置为“关闭”,这造成了重定向循环。

v1uwarro

v1uwarro2#

您应该在配置中添加证书、此证书的密钥和中间证书。如下所示:

SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
SSLCACertificateFile "conf/ssl.crt/ca.crt"

有关详细信息,请查看apache documentation

相关问题