分享、学习、提高
2008/02/05 21:52
Tags: , ,
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,居然提示:
引用
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试试吧.



@@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
Tags:
一个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
引用
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).


运行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
Tags: ,
按照我一年前的安装方法安装后,最近发现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,就正常了,也不知道是什么原因。
2008/01/21 14:47
Tags: ,
很久以前刚学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了:)

写一个简单程序测试一下:
<?
$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
Tags: ,
本机用php连接远程MSSQL,代码
<?php
$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地址,端口号','用户名','密码');
分页: 5/16 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]