配置完PHP,apache服务器不能运行,如何解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置完PHP,apache服务器不能运行,如何解决相关的知识,希望对你有一定的参考价值。

Apache is running a threaded MPM, but your php Module is not compiled to be threadsafe. You need to recompile PHP
配置完PHP,apache服务器不能运行,上面是错误提示,请高手解答

php的版本 和你的apach版本不一致。apache不支持。需要重新下载安装php.下载地址:http://windows.php.net/download/
下载注意选择类型,例如:
VC9 x86 Non Thread Safe (2011-Mar-22 13:26:53)

Zip [15MB]
sha1: 072a0a39acb2b6bbdb81aecc6af28eb380a8d590
Installer [27.26MB]
sha1: 15bea783382e7995ccc5a7731bf5b5d1c4929ac3
Debug Pack [7.84MB]
sha1: 1051d84006cf33860207ec9546248cbc02c5660b

VC9 x86 Thread Safe (2011-Mar-22 13:27:32)

Zip [15.13MB]
sha1: 3b385097d8ef61b01e0511e75c0c96353c079729
Installer [27.38MB]
sha1: 82eccb320ad3ec8e4be6c7db0e047ecda94c7583
Debug Pack [8.15MB]
sha1: 4f138456a83657607b10d6ebdcd23e221430d2bc
----------------------------------------------------------------------
第一类是线程不安全的
第二类才是线程安全的。
参考技术A 之前我也遇到过,造成原因服务管理器由IIS更换至Apache,原php版本是无线程安全(nts)的,因此需要将php同时更换为线程安全版本(ts).
【处理办法】:
1. 下载新的php5.2.17 VC6 x86 Thread Safe,更新原php程序.
2. 打开php.ini文件:(添加或打开)
extension_dir = "D:\root\chaodiquan.com(你自己的PHP安装目录)\ext"
default_charset = "gbk"
extension=php_mysql.dll
3.把php5ts.dll复制到c:\windows\system32下.
下面再配置一下Apache的conf文件:
1. 打开apache目录下/conf/httpd.conf文件.
2. 编辑添加新的记录:
LoadModule php5_module "php安装目录/php5apache2_2.dll"
PHPIniDir "php安装目录/php.ini"
AddType application/x-httpd-php .php

3. 再次启动apache,ok启动成功~
参考技术B 提示的意思是你的php模块没有配置好!

如果是windows的话,你可以试着用WAMP集成包,华军、天空上很多!一键安装,不用配置就可使用!追问

是指php.ini这个文件没配置好吗?

追答

应该是你的apache配置文件没有配置好,配置文件名称是是httpd.conf

参考技术C 你下载的PHP不是线程安全的版本,你需要重新编译追问

怎么重新编译

追答

你是windows还是linux

参考技术D 路过,这个我到是没有遇到过

解决一次由于SSL证书到期导致的网站不能访问的问题(Nginx,php,Apache)

1. 现象

放假期间收到zabbix报警,提示主站访问不了,报502。


2.排查思路及过程

因为是过年休息,放假前又没有更新,基本可以排除是更新和配置导致的问题。ssh连上服务器发现服务器连接和资源都没问题。这是一套lnamp架构的网站,就是nginx反向代理到Apache,所以考虑是Apache的问题,于是重启httpd服务。


重启httpd服务的时候启动失败,没有看到错误,所以去查看日志文件,看到如下报错:

tail -200 /var/log/httpd/error_log

[TIME 2016] [error] SSL Library Error: -8181 Certificate has expired
[TIME 2016] [error] Unable to verify certificate ‘Server-Cert‘. Add "NSSEnforceValidCerts off" to nss.conf so the server can start until the problem can be resolved.

可以看到是证书过期了,并且给出了一种解决方法是添加‘NSSEnforceValidCerts off’到nss.conf服务器就可以启动,就是不验证证书过期时间。


Apache是用https需要mod_nss的模块支持,我的理解就是使用https需要安装mod_nss,下面给一个官方说明:

   The mod_nss module provides strong cryptography for the Apache Web server via the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols using the Network Security Services (NSS) security library.


我的解决方法是重新生成新的证书

cd /etc/httpd/alias
#删除旧的证书
rm -f *.db
#创建新证书
/usr/sbin/gencert /etc/httpd/alias > /etc/httpd/alias/install.log 2>&1
#查看证书信息
certutil -d /etc/httpd/alias -L -n Server-Cert
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 3 (0x3)
    Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption
    Issuer: "CN=Certificate Shack,O=example.com,C=US"
    Validity:
        Not Before: Mon Feb 15 02:05:10 2016
        Not After : Sat Feb 15 02:05:10 2020

现在可以看到证书的有效期是4年,新生成的证书到2020年过期。httpd服务可以正常启动。


启动httpd服务后发现首页还是不能访问,可以确认服务都正常启动配置没有问题。继续查看httpd的错误日志发现了新的报错:

[TIME 2016] [error] SSL Library Error: -8038 SEC\_ERROR\_NOT\_INITIALIZED  
[TIME 2016] [error] NSS_Initialize failed. Certificate database: /etc/httpd/alias.


百度了下发现是权限问题,重新授下权搞定。

chown root.apache /etc/httpd/alias/*.db
chmod 0640 /etc/httpd/alias/*.db

本文出自 “Bran” 博客,请务必保留此出处http://branguo.blog.51cto.com/9768383/1742157

以上是关于配置完PHP,apache服务器不能运行,如何解决的主要内容,如果未能解决你的问题,请参考以下文章

linux安装完Apache和PHP后,为啥还是不能解析php网页啊?

wampserver外网ip不能直接访问?

在 ubuntu 上运行 php 脚本

mac下如何配置PHP apache?

一键安装php后,不能打开某些php网页文件,提示啥数据库错误哦等等一些问题。安装完后怎样具体配置php

新手上路:在配置apache php mysql完之后,尝试打开index.php时总是将index.php下载