2008/02/05 21:52
Windows下php5.16和apache2.2的安装问题
今天在本本上安装WAMP环境(Windows+Apache2+MYSQL+PHP5),php本机上有个5.16的版本,那就用它吧。apache则是去官方下载了最新版apache_2.2.8-win32-x86-no_ssl.msi。
所有软件都安装在c:\www目录下。安装完后,apache测试页面正常。然后在httpd.conf中加入php的配置参数,
# For PHP 5 do something like this:
LoadModule php5_module "c:/www/php5/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/www/php5"
重启Apache,居然提示:
开始以为自己安装有错,但试了多种方法均无效,只能借助于搜索引擎。
查到一篇:http://www.beenhero.com/post/Cannot-load-php5apache2.dll-into-server.html
原来是PHP5.1.x系列的压缩包里的php5apache2.dll只适用于apache2.0.*。
我根据这位朋友提供的解决方案解决了这个问题,在这里转贴一下:)
@@080827@2UPDATE:
看了下面这位朋友的回复,挺意看了我机子上的版本,没有php5apache2_2.dll这个文件。然后去下载了最新的php-5.2.6-Win32.zip,里面才有php5apache2_2.dll这个文件。没去试,应该就是用LoadModule php5_module C:/php5/php5apache2_2.dll了,这下方便多了:)
今天在本本上安装WAMP环境(Windows+Apache2+MYSQL+PHP5),php本机上有个5.16的版本,那就用它吧。apache则是去官方下载了最新版apache_2.2.8-win32-x86-no_ssl.msi。
所有软件都安装在c:\www目录下。安装完后,apache测试页面正常。然后在httpd.conf中加入php的配置参数,
# For PHP 5 do something like this:
LoadModule php5_module "c:/www/php5/php5apache2.dll"
AddType application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/www/php5"
重启Apache,居然提示:
引用
httpd.exe: Syntax error on line 486 of C:/www/apache2/conf/httpd.conf: Cannot load C:/www/php5/php5apache2.dll into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6
开始以为自己安装有错,但试了多种方法均无效,只能借助于搜索引擎。
查到一篇:http://www.beenhero.com/post/Cannot-load-php5apache2.dll-into-server.html
原来是PHP5.1.x系列的压缩包里的php5apache2.dll只适用于apache2.0.*。
我根据这位朋友提供的解决方案解决了这个问题,在这里转贴一下:)
引用
先下载 这个文件,并解压,共有两个文件.
里面有一个Windows Installer 3.1的升级补丁: WindowsInstaller-KB893803-x86.exe
还有一个压缩包,再解压则有下面三个文件:
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
步骤:
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
如果第三步出现错误,则安装Windows Installer 3.1的升级补丁,那么就可以完成第三步了。
完成后去重启你的apache2.2试试吧.
里面有一个Windows Installer 3.1的升级补丁: WindowsInstaller-KB893803-x86.exe
还有一个压缩包,再解压则有下面三个文件:
vcredist_x86.exe
php5apache2.dll
httpd.exe.manifest
步骤:
1.将 php5apache2.dll 覆盖掉你原来PHP目录下的 php5apache2.dll 文件.
2.将 httpd.exe.manifest 文件复制到你的apache安装目录下的bin文件夹下.
3.双击运行vcredist_x86.exe安装.(如果您的系统里已安装了 .NET framework 2.就可以省掉这一步)
如果第三步出现错误,则安装Windows Installer 3.1的升级补丁,那么就可以完成第三步了。
完成后去重启你的apache2.2试试吧.
@@080827@2UPDATE:
看了下面这位朋友的回复,挺意看了我机子上的版本,没有php5apache2_2.dll这个文件。然后去下载了最新的php-5.2.6-Win32.zip,里面才有php5apache2_2.dll这个文件。没去试,应该就是用LoadModule php5_module C:/php5/php5apache2_2.dll了,这下方便多了:)
2008/01/24 10:56
一个Discuz论坛,原来架在windows下,用的是GBK编码,MYSQL版本是5.0的。
现在需要转移到Linux下,我本来建议用mysqldump导出的方法,但同事希望直接用data目录下的数据库目录。
那就先用移目录的方式试下,在新服务器创建数据库,然后将旧的目录移过来。
在mysql中,Select之类的都正常,但在网页程序中提示:Table 'cdb_posts' is read only
给数据库目录的所属用户和组改为mysql,并加上777的权限,还是一样提示。
程序中使用root连接,也是一样的提示。
想用myisamchk来检查一下,也提示read only。
最终在这里找到了解决方法:http://www.mysqltalk.org/re-the-table-is-read-only-vt154092.html
运行flush-tables后,read only问题解决:)
然后发现数据结构和内容还是有问题,用myisamchk查错无效,后来用mysqldump导,不过也还是碰到了一大堆问题,由于要转的数据库挺大,化了很长时间,最终没有继续下去。
了解了一些知识点,记录一下:
就是mysql5导出的有default-charact的设置,mysql4不支持,需要加skip-opt参数,如:
mysqldump -uroot -p --default-character-set=gbk -skip-opt databse > hx.sql
参考文章:Mysql 数据库字符集转换
最后找了台mysql5的服务器,用mysqldump导出,mysql导入,一次成功!
发现用mysqldump导出一个表,300w多条记录,用了才4分多钟,每秒处理1w多记录,快啊!导入时,差不多用了十几分钟,每秒导入几千条也很快了:)
现在需要转移到Linux下,我本来建议用mysqldump导出的方法,但同事希望直接用data目录下的数据库目录。
那就先用移目录的方式试下,在新服务器创建数据库,然后将旧的目录移过来。
在mysql中,Select之类的都正常,但在网页程序中提示:Table 'cdb_posts' is read only
给数据库目录的所属用户和组改为mysql,并加上777的权限,还是一样提示。
程序中使用root连接,也是一样的提示。
想用myisamchk来检查一下,也提示read only。
最终在这里找到了解决方法:http://www.mysqltalk.org/re-the-table-is-read-only-vt154092.html
引用
I just encountered a similar problem on one of my production servers
this morning. (I'm still investigating the cause.) After doing a
quick bit of Google-searching, this solved my problem:
mysqladmin -u <username> -p flush-tables
By the way: All directories in /var/lib/mysql should have 700
permissions (owned my the mysql user) and everything within those
directories should be 660 (owned by the mysql user and mysql group).
this morning. (I'm still investigating the cause.) After doing a
quick bit of Google-searching, this solved my problem:
mysqladmin -u <username> -p flush-tables
By the way: All directories in /var/lib/mysql should have 700
permissions (owned my the mysql user) and everything within those
directories should be 660 (owned by the mysql user and mysql group).
运行flush-tables后,read only问题解决:)
然后发现数据结构和内容还是有问题,用myisamchk查错无效,后来用mysqldump导,不过也还是碰到了一大堆问题,由于要转的数据库挺大,化了很长时间,最终没有继续下去。
了解了一些知识点,记录一下:
就是mysql5导出的有default-charact的设置,mysql4不支持,需要加skip-opt参数,如:
mysqldump -uroot -p --default-character-set=gbk -skip-opt databse > hx.sql
参考文章:Mysql 数据库字符集转换
最后找了台mysql5的服务器,用mysqldump导出,mysql导入,一次成功!
发现用mysqldump导出一个表,300w多条记录,用了才4分多钟,每秒处理1w多记录,快啊!导入时,差不多用了十几分钟,每秒导入几千条也很快了:)
2008/01/22 10:14
按照我一年前的安装方法安装后,最近发现GD库并未完全生效。
在phpinfo中的GD模块显示
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
没有JPG。研究了一下网上成功安装的例子,觉得还是php的配置问题,经过三次的失败后,终于成功。最终配置为
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd --with-zlib --with-png --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --enable-sockets --with-iconv --enable-mbstring --with-curl=/usr/local/curl --with-mssql=/usr/local/freetds
主要是--with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype 这两个的配置。
安装成功后,GD模块多了如下显示:
JPG Support enabled
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
这是昨天做的,php5下的GD库,今天把一台没有安装GD库的运行php4.4的服务器安装GD库。
仍然按照这个步骤安装zlib,libpgn,freetype,jpeg,gd2,然后在原php配置参数上加上--with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype,重新编译,安装完成重启Apache后,看了下phpinfo,成功显示。

不过,并不是完全顺利,在安装php时,提示configure: error: Unable to find gd.h anywhere under /usr/local/gd。
奇怪,去下载了最新的gd-2.0.35,重新编译gd,在编译时就出错。只好再装一次gd-2.0.33,装完看了下在/usr/local/gd/include下有gd.h了。再次装php,就正常了,也不知道是什么原因。
在phpinfo中的GD模块显示
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
没有JPG。研究了一下网上成功安装的例子,觉得还是php的配置问题,经过三次的失败后,终于成功。最终配置为
./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/gd --with-zlib --with-png --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --enable-sockets --with-iconv --enable-mbstring --with-curl=/usr/local/curl --with-mssql=/usr/local/freetds
主要是--with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype 这两个的配置。
安装成功后,GD模块多了如下显示:
JPG Support enabled
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.2.1
这是昨天做的,php5下的GD库,今天把一台没有安装GD库的运行php4.4的服务器安装GD库。
仍然按照这个步骤安装zlib,libpgn,freetype,jpeg,gd2,然后在原php配置参数上加上--with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype,重新编译,安装完成重启Apache后,看了下phpinfo,成功显示。

不过,并不是完全顺利,在安装php时,提示configure: error: Unable to find gd.h anywhere under /usr/local/gd。
奇怪,去下载了最新的gd-2.0.35,重新编译gd,在编译时就出错。只好再装一次gd-2.0.33,装完看了下在/usr/local/gd/include下有gd.h了。再次装php,就正常了,也不知道是什么原因。
2008/01/21 14:47
很久以前刚学php时查过,如果在linux下要用php连接MSSQL,说是还需要额外安装软件,很麻烦D!今天碰到需要,就研究了一下。
其实挺简单,就是装一个freetds,然后重新编译php即可。以下是我安装的较详细的步骤以及一些说明:
FreeTDS的功能主要是在Liunx下能够访问Sybase及MS SQL,官方网站是:http://www.freetds.org/
下了最新版0.64,
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-0.64.tar.gz
解压:
tar -zxf freetds-0.64.tar.gz
cd freetds-0.64
安装在/usr/local/freetds,要支持MSSQL2000,就要加以下两个参数:--with-tdsver=8.0 --enable-msdblib
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make;make install
FreeTDS安装完成,然后重编译php。
看一下phpinfo()的配置参数,后面加了 --with-mssql=/usr/local/freetds ,重新编译。
完成后,phpinfo中会多了一些内容,我的是:
mssql
MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS
哈,就是支持MSSQL了:)
写一个简单程序测试一下:
运行没有报错,完成!
如果没有装FreeTDS,则会报错:
Fatal error: Call to undefined function mssql_connect() in /www/test/mssql.php on line 2
参考文章:
FreeTDS的安装与配置
Liunx下访问SQL2000的好工具!
其实挺简单,就是装一个freetds,然后重新编译php即可。以下是我安装的较详细的步骤以及一些说明:
FreeTDS的功能主要是在Liunx下能够访问Sybase及MS SQL,官方网站是:http://www.freetds.org/
下了最新版0.64,
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-0.64.tar.gz
解压:
tar -zxf freetds-0.64.tar.gz
cd freetds-0.64
安装在/usr/local/freetds,要支持MSSQL2000,就要加以下两个参数:--with-tdsver=8.0 --enable-msdblib
./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib
make;make install
FreeTDS安装完成,然后重编译php。
看一下phpinfo()的配置参数,后面加了 --with-mssql=/usr/local/freetds ,重新编译。
完成后,phpinfo中会多了一些内容,我的是:
mssql
MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS
哈,就是支持MSSQL了:)
写一个简单程序测试一下:
<?
$msconnect = mssql_connect('192.168.1.48','sa','123456');
?>
$msconnect = mssql_connect('192.168.1.48','sa','123456');
?>
运行没有报错,完成!
如果没有装FreeTDS,则会报错:
Fatal error: Call to undefined function mssql_connect() in /www/test/mssql.php on line 2
参考文章:
FreeTDS的安装与配置
Liunx下访问SQL2000的好工具!
2008/01/09 10:27
本机用php连接远程MSSQL,代码
提示
而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。
搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。
试验了下,发现原因还是在于NTWDBLIB.DLL这个文件。我本机是php5自带的,版本为2000.2.8.0,他也是。
在MSSQL光盘中搜索这个文件,找到NTWDBLIB.DLL,版本是2000.80.194.0。
将这个文件,Copy到php安装目录和c:\windows\system32目录下,停掉IIS或Apache。
重启,连接成功:)
为方便碰到此问题的朋友,我打包了NTWDBLIB.DLL这个文件,下载后解压即可:
下载文件
另请注意:
如果更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect('IP地址,端口号','用户名','密码');
<?php
$linkId = mssql_connect('IP地址','用户名','密码');
?>
$linkId = mssql_connect('IP地址','用户名','密码');
?>
提示
引用
mssql_connect() [function.mssql-connect]: Unable to connect to server
而同事就可以连,他比较了ntwdblib.dll这个文件,版本都是2000.2.8.0。唯一不同的是他的机子装了MSSQL,怀疑是这个原因。
搜索了下,发现确实是这个原因。也有不少人碰到装了MSSQL就可以连远程MSSQL,没装则不行。
试验了下,发现原因还是在于NTWDBLIB.DLL这个文件。我本机是php5自带的,版本为2000.2.8.0,他也是。
在MSSQL光盘中搜索这个文件,找到NTWDBLIB.DLL,版本是2000.80.194.0。
将这个文件,Copy到php安装目录和c:\windows\system32目录下,停掉IIS或Apache。
重启,连接成功:)
为方便碰到此问题的朋友,我打包了NTWDBLIB.DLL这个文件,下载后解压即可:
下载文件 另请注意:
如果更改了默认的1433端口号,则IP地址后面加端口号,用,号隔开,不是:号,如
$linkId = mssql_connect('IP地址,端口号','用户名','密码');







