Apache + PHP 安装日志

背景:想用 drupal 弄一个论坛,其系统要求是 Apache + PHP + MySQL (推荐),又因为最近在玩Linux,所以...

机子是windows2003系统。

 

 首先:安装 Apache (装的是apache_2.2.11-win32-x86-openssl-0.9.8i.msi ),安装时一路“next”。

有文章说:“安装过程,任何目录和文件名都不要使用空格” 。不过我是装在“D:\Program Files”,运行正常......

由于本机的IIS已经占用了80端口,所以为 Apache  配置了1080的端口(很奇怪的就是配8080竟然不行,可能是被其他程序占用了,没细查)。

但是,输入:http://localhost:1080/ 后,一直没有反映 。查看logs\error.log 如下:

[error] (OS 10038)在一个非套接字上尝试了一个操作。  : Child 816: Encountered too many errors accepting client connections. Possible causes: dynamic address renewal, or incompatible VPN or firewall software. Try using the Win32DisableAcceptEx directive.

并且 Httpd.exe 占用 CPU 资源很高。

  网上一些做法是:(Window下APACHE的Win32DisableAcceptEx的问题

在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:
< IfModule  mpm_winnt.c >
ThreadsPerChild 1000
MaxRequestsPerChild  10000
Win32DisableAcceptEx

</IfModule>

这样可以允许并发连接更大一些。同时性能上也不会有明显的降低.

一般,这样设置基本就能搞定,但是我碰到的情况,就是想上面那样关闭AcceptEx,也会出现类似问题,Apache还是不能正常运 作,error.log出项了大量的:Sat Dec 24 17:21:28 2006] [warn] (OS 64)指定的网络名不再可用。 : winnt_accept: Asynchronous AcceptEx failed.。又找了一下,发现了如下的一种解决办法,我试了试,果然可以,而且在多台服务器上试过,只要出现了AcceptEx 的问题,就能解决,具体设置为:
1、网上邻居->本地连接->属性->internet协议(TCP/IP)->属性->高级->wins标签->去掉启用LMhosts查询前的勾.
2、控制面版->windows防火墙->高级标签->本地连接设置->服务的标签里勾选安全Web服务器(HTTPS)。
3、然后退出Apache,再打开启动就可以了 ,一开始我没有退出,直接在那重启,就是不可以,一定要先停止,在开启即可。

 以上是一种情况。而我的情况是:cpu占有率降低,但还是出错,logs\error.log 如下:

[Mon Dec 24 16:48:06 2007] [error] (OS 10038)在一个非套接字上尝试了一个操作。 : Too many errors in select loop. Child process exiting.
[Mon Dec 24 16:48:06 2007] [notice] Child 1916: Exit event signaled. Child process is ending.
[Mon Dec 24 16:48:07 2007] [notice] Child 1916: Released the start mutex
[Mon Dec 24 16:48:07 2007] [notice] Child 1916: Waiting for 250 worker threads to exit.
[Mon Dec 24 16:48:07 2007] [notice] Child 1916: All worker threads have exited.
[Mon Dec 24 16:48:07 2007] [notice] Child 1916: Child process is exiting
[Mon Dec 24 16:48:07 2007] [notice] Parent: child process exited with status 0 -- Restarting.
[Mon Dec 24 16:48:07 2007] [notice] Apache/2.0.55 (Win32) configured -- resuming normal operations
[Mon Dec 24 16:48:07 2007] [notice] Server built: Oct 9 2005 19:16:56
[Mon Dec 24 16:48:07 2007] [notice] Parent: Created child process 3028
[Mon Dec 24 16:48:07 2007] [notice] Disabled use of AcceptEx() WinSock2 API
[Mon Dec 24 16:48:07 2007] [notice] Child 3028: Child process is running
[Mon Dec 24 16:48:07 2007] [notice] Child 3028: Acquired the start mutex.
[Mon Dec 24 16:48:07 2007] [notice] Child 3028: Starting 250 worker threads.
[Mon Dec 24 16:48:08 2007] [notice] Child 3028: Listening on port 80.

 解决办法:Apache错误:[error] (OS 10038)在一个非套接字上尝试了一个操作

cmd下

netsh winsock reset

然后重启,并且不用设置 Win32DisableAcceptEx。

其实发生上述错误都是 windows 中某些软件更改了 winsock 导致的。

另:在查询资料时找到这个:apache2.2.11 详细配置优化

 

 

 接下来是安装 PHP (首先弄了个 PHP 5.0.0 后下来最新的 PHP 5.2.9-2 zip package) 参考了很多安装文章。

首先,很多文章都说最好是下载解压版的, installer 版的好像有限制的......(没试过)。

第二,PHP解压后,“把 php5ts.dll 放到 Windows 路径中,最好的位置是 Windows 的 system 目录”(某文章说)。若不行就把PHP目录下的所有 dll 文件都复制到c:/windows/system32/下(另一篇文章说,-_-!)。而“复制 D:\PHPServer\php5 目录下的php5ts.dll,libmysql.dll 到C:\windows\system32”。(又一文章说)(@_@)。最后我是效仿这篇文章的第4点 :将 PHP 目录添加到环境变量 Path 中(但在安装 PHP 5.2.9-2没设置环境变量也是可以运行的,可能我还没用用到这篇文章里所说的 extension 吧)。安装 phpMyAdmin 证实若用到 extension 时必须把其相应的 lib***.dll 文件复制到 c:/windows/system32/下,设置环境变量不起作用。譬如 extiension php_mysql.dll 需要将 php 目录下的 libmysql.dll 文件复制到 c:/windows/system32/下,否则提示无法加载 MySQL extension。libmcrypt.dll 也要复制到 system32/下,否则 phpMyAdmin 会提示 Access denied for user ’(乱码)’@’localhost’ (using password: YES)无法登录,phpMyAdmin 应该用到了 extiension php_mcrypt 加密解密

第三,就是配置PHP了,将“php.ini-recommended”文件复制到“c:/windows”下,更名为“php.ini”(我也是没有复制过去的)(另,很多文章说用 php.ini-recommended 而不是 php.ini-dist ,有文章解释说“php.ini-recommended 在对默认设置作了性能和安全上的优化”)。

第四,修改 php.ini :

(1)查找“extension_dir”字段,赋值为php解压路径中的ext目录下,如"D:\php5\ext"

(2)查找 cgi.force_redirect 字串.默认值为1.将其修改为0.并取消前面的;号

 

 用到哪些 extensions 去掉其前面的 “;” 号

extension=php_mbstring.dll(宽字符,用于支持PhpMyAdmin,避免出现字符显示问题)
extension=php_mcrypt.dll(用于支持PhpMyAdmin)
extension=php_mysql.dll(MySql模块,开启之后才能访问MySql数据库)

extension=php_mysqli.dll(MySql模块)

extension=php_curl.dll
extension=php_gd2.dll

 第五,配置Apache以支持php5:

设置php起始页:

< IfModule  dir_module >
  DirectoryIndex index.php index.html default.php default.html index.htm

</IfModule>

 可以自己增加需要的起始页文件名。注意文件名之间用空格隔开,而不是用逗号。

有两种方法使得 PHP 工作在 Windows 下的 Apache。一是使用 CGI 二进制文件,另一是使用 Apache 模块 DLL(这种做法比较好)。

1. PHP 以 CGI 方式安装到 Apache

将如下指令插入到 Apache 的 httpd.conf 配置文件中

ScriptAlias /php/ "D: /php/"
AddType application/x-httpd-php .php #(支持 php 扩展名)
Action application/x-httpd-php "/php/
php-cgi.exe " #(注意是 php-cgi.exe, 不是 php.exe,否则会出现如下错误 )

 以CGI的方式安装到 Apache时,logs\error.log 出现了以下错误

[error] [client 127.0.0.1] Premature end of script headers: php.exe

 原因是:php5下面装成cgi模式调用的是php-cgi.exe 不是php.exe。

 2. PHP 以模块方式安装到 Apache

找到 #LoadModule ssl_module modules/mod_ssl.so 这行,在此行后加入

PHPIniDir "D:/php5/"

LoadModule php5_module "D:/php5/php5apache2_2.dll"

#(其中D:/php5/php5apache2_2.dll是你安装php的相应路径.注意不要把php5apache2_2.dll,php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,如果是2.2.*以上版本,必须使用php5apache2_2.dll.否则就可能会出现如下的问题)

有很多文章是 “添加 php 扩展名支持 ” 如下句的

AddType application/x-httpd-php .php #(这句是要的,不然无法识别 php 文件)

 以模块方式安装到 Apache时,出现错误:

"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."

或者:

"The requested operation has failed"

 解决办法可参考:http://www.phpfans.net/bbs/viewthread.php?tid=857&extra=page%3D1(不过这是针对 php 5.1.* 的)

 或者:在http://snaps.php.net/index.php下载最新的开发版,用其中的php5apache2_2.dll替换(好像也是针对 php 5.1.*的)

本机 php 5.0.0 以上两种方法都不行,至今还没找到解决办法(谁知道,谢谢告知) 反正都是下载了最新的 php 版本了,所以最后干脆 用 php 5.2.9-2 了......安装的很顺利,可能是之前错得多了。哈~

注意,如果安装后出现You don’t have permission to access / on this server.

更改 如下

< Directory  />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Allow from all #Deny from all(修改这里)
</ Directory >


 由于用的是 php 5.0.0 安装完后运行(我是以CGI方式运行的)出现如下错误

“unable   to   load   dynamic   library   'C:\AppServ\php\extension\php_mcrypt.dll'   -找不到指定模块”

而实际上这个文件和路径都是正确的

解决方法:win2k下appserv启用php_mycrypt.dll时“找不到指定模块”的问题

php_mcrypt.dll   需要   libmcrypt.dll   支持,php并不默认提供。(php 5.2.9-2 是提供的)

注意   libmcrypt.dll   有多个版本,你可通过实验找到与你的php版本相适应的libmcrypt.dll。

最新的下载地址http://files.edin.dk/php/win32/mcrypt/163k

 

不过 php 5.0.0  要到http://files.edin.dk/php/win32/mcrypt/old/   下一个247K才行

 

 

 最后附上PHP 手册

 

顺便说说  phpMyAdmin 登录后 出现“配置文件现在需要绝密的短语密码(blowfish_secret)”

解决办法:从PhpMyAdmin\libraries目录下 找到config.default.php 文件,找到$cfg['blowfish_secret'],其值为空或值太少,随意添加个值就 ok 了。

另,在较早版本中 好像是设置根目录下 config.inc.php 文件的。

转载于:https://www.cnblogs.com/nikytwo/archive/2009/04/14/1435813.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。
完整版:https://download.csdn.net/download/qq_27595745/89522468 【课程大纲】 1-1 什么是java 1-2 认识java语言 1-3 java平台的体系结构 1-4 java SE环境安装和配置 2-1 java程序简介 2-2 计算机中的程序 2-3 java程序 2-4 java类库组织结构和文档 2-5 java虚拟机简介 2-6 java的垃圾回收器 2-7 java上机练习 3-1 java语言基础入门 3-2 数据的分类 3-3 标识符、关键字和常量 3-4 运算符 3-5 表达式 3-6 顺序结构和选择结构 3-7 循环语句 3-8 跳转语句 3-9 MyEclipse工具介绍 3-10 java基础知识章节练习 4-1 一维数组 4-2 数组应用 4-3 多维数组 4-4 排序算法 4-5 增强for循环 4-6 数组和排序算法章节练习 5-0 抽象和封装 5-1 面向过程的设计思想 5-2 面向对象的设计思想 5-3 抽象 5-4 封装 5-5 属性 5-6 方法的定义 5-7 this关键字 5-8 javaBean 5-9 包 package 5-10 抽象和封装章节练习 6-0 继承和多态 6-1 继承 6-2 object类 6-3 多态 6-4 访问修饰符 6-5 static修饰符 6-6 final修饰符 6-7 abstract修饰符 6-8 接口 6-9 继承和多态 章节练习 7-1 面向对象的分析与设计简介 7-2 对象模型建立 7-3 类之间的关系 7-4 软件的可维护与复用设计原则 7-5 面向对象的设计与分析 章节练习 8-1 内部类与包装器 8-2 对象包装器 8-3 装箱和拆箱 8-4 练习题 9-1 常用类介绍 9-2 StringBuffer和String Builder类 9-3 Rintime类的使用 9-4 日期类简介 9-5 java程序国际化的实现 9-6 Random类和Math类 9-7 枚举 9-8 练习题 10-1 java异常处理 10-2 认识异常 10-3 使用try和catch捕获异常 10-4 使用throw和throws引发异常 10-5 finally关键字 10-6 getMessage和printStackTrace方法 10-7 异常分类 10-8 自定义异常类 10-9 练习题 11-1 Java集合框架和泛型机制 11-2 Collection接口 11-3 Set接口实现类 11-4 List接口实现类 11-5 Map接口 11-6 Collections类 11-7 泛型概述 11-8 练习题 12-1 多线程 12-2 线程的生命周期 12-3 线程的调度和优先级 12-4 线程的同步 12-5 集合类的同步问题 12-6 用Timer类调度任务 12-7 练习题 13-1 Java IO 13-2 Java IO原理 13-3 流类的结构 13-4 文件流 13-5 缓冲流 13-6 转换流 13-7 数据流 13-8 打印流 13-9 对象流 13-10 随机存取文件流 13-11 zip文件流 13-12 练习题 14-1 图形用户界面设计 14-2 事件处理机制 14-3 AWT常用组件 14-4 swing简介 14-5 可视化开发swing组件 14-6 声音的播放和处理 14-7 2D图形的绘制 14-8 练习题 15-1 反射 15-2 使用Java反射机制 15-3 反射与动态代理 15-4 练习题 16-1 Java标注 16-2 JDK内置的基本标注类型 16-3 自定义标注类型 16-4 对标注进行标注 16-5 利用反射获取标注信息 16-6 练习题 17-1 顶目实战1-单机版五子棋游戏 17-2 总体设计 17-3 代码实现 17-4 程序的运行与发布 17-5 手动生成可执行JAR文件 17-6 练习题 18-1 Java数据库编程 18-2 JDBC类和接口 18-3 JDBC操作SQL 18-4 JDBC基本示例 18-5 JDBC应用示例 18-6 练习题 19-1 。。。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值