centos apache 重启 linux,Apache2.4 配置后重启时报错(centOS7)

按照网上的教程安装好Apache的依赖包,然后开始安装httpd:sudo yum install mod_ssl

sudo yum install httpd

安装完成之后,配置一下 /etc/httpd/conf.d/ssl.conf 中SSL的证书等文件,配置好之后重启https,首先记得先检查配置是否有问题httpd -t

### 如果配置有问题,应该会报错,并会明确指出错误的位置,将错误完全解决之后,重新输入该命令,没有问题的话就会出现提示:

Syntax OK

### 然后输入重启apache指令

sudo apachectl restart

### 正常来讲,应该能启动,但是我的却没有

如果配置没有问题,但是还是出错了,可以通过以下指令查看详细的错误信息:sudo tail /var/log/httpd/error_log

Apache的日志记录记录的错误信息中有一些比较重要的信息如下:[notice] SELinux policy enabled; httpd running as context unconfined_u:system_r:httpd_t:s0

[notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

[error] (13)Permission denied: Init: Can't open server certificate file /etc/ssl/crt/server_selfsigned.crt

从提示上来看,是我配置的证书文件读取失败,权限不够。然后我找了其他人的给的一段提示:This is known as an selinux issue. The certificate file can have a wrong context and will be unreadable by the httpd daemon even if the regular permissions is correct.

简单翻译一下:这是一个selinux的问题,证书文件的上下文环境不对(我的证书文件是通过某种方式上传到服务器的文件夹下的),即使改文件的权限设置没有问题,httpd守护进程也无法读取改文件。

解决的办法是输入指令将此文件的上下文环境修改一下:chcon unconfined_u:object_r:httpd_config_t:s0 /etc/ssl/crt/server_selfsigned.crt

配置的其他证书文件肯定也需要此指令进行修改。修改完成之后,再重启:sudo apachectl restart

就没有问题了。

解决SELinux的问题还有一个办法,就是直接把这个策略给关闭掉:sudo vim /etc/selinux/config

将SELINUX字段改为:SELINUX=disabled (需要重启)

然后临时关闭一下,下次启动因为上面的指令配置了所以也会生效:

sudo /usr/sbin/setenforce 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值