网络上很多教程的配置文件是针对PhpMyAdmin底版本的,一开始连2.9配置文件都不知道放哪里?
配置文件相对地址是:config.sample.inc.php (不是这个libraries/config.default.inc.php)
2、让phpMyAdmin使用密码登陆
在设置config.inc.php设置以下参数:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['blowfish_secret'] = '123456'; // 随便设置一个非空字符串
$cfg['DefaultLang'] = 'zh'; // 默认显示中文,可选
3、没有发现 PHP 的扩展设置mbstring, 而当前系统好像在使用宽字符集。没有 mbstring....修改php.ini 文件extension=php_mbsting.dll 要重起才能生效!
4、php读取mysql数据库中文字符的时候全部显示问号?
在查询数据库之前,先使用mysql_query("set names 'gb2312'");
5、用PHP输出静态页面
有2种
一种是利用模板技术,另一种是用ob系列函数。两种方法,看起来都差不多,但是实际上,却是不同的。
第一种:利用模板
目前PHP的模板可以说是很多了,有功能强大的smarty,还有简单易用的smarttemplate等。
它们每一种模板,都有一个获取输出内容的函数。
我们生成静态页面的方法,就是利用了这个函数。
用这个方法的优点是,代码比较清晰,可读性好。
这里我用smarty做例子,说明如何生成静态页
<?php
require('smarty/Smarty.class.php');
$t = new Smarty;
$t->assign("title","Hello World!");
$content = $t->fetch("templates/index.htm");
//这里的 fetch() 就是获取输出内容的函数,现在$content变量里面,就是要显示的内容了
$fp = fopen("archives/2005/05/19/0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
第二种方法:利用ob系列的函数
这里用到的函数主要是 ob_start(), ob_end_flush(), ob_get_content(),
其中ob_start()是打开浏览器缓冲区的意思,
打开缓冲后,所有来自PHP程序的非文件头信息均不会发送,
而是保存在内部缓冲区,直到你使用了ob_end_flush().
而这里最重要的一个函数,就是ob_get_contents(),
这个函数的作用是获取缓冲区的内容,相当于上面的那个fetch(),
道理一样的。代码:
<?php
ob_start();
echo "Hello World!";
$content = ob_get_contents();//取得php页面输出的全部内容
$fp = fopen("0001.html", "w");
fwrite($fp, $content);
fclose($fp);
?>
6、PHP语言读取数据库详解
这段代码的功能是:
连接到一个 url 地址为localhost 、 端口为 3306 的mysql服务器上。mysql服务器的帐号是"root",密码是"9999"。mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc。表 abc 一共为两列,列名分别是 "id" 和 "name" ,将 abc 里的所有数据读出来。
<?
$dbh = @mysql_connect("localhost:3306","root","9999");
/* 定义变量dbh , mysql_connect()函数的意思是连接mysql数据库, "@"的意思是屏蔽报错 */
if(!$dbh){die("error");}
/* die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。 */
@mysql_select_db("ok", $dbh);
/* 选择mysql服务器里的一个数据库,这里选的数据库名为 ok */
$q = "Select * FROM abc";
/* 定义变量q, "Select * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */
?>
<br />
<!--========= 方法一 =========-->
<br />
<?
$rs = mysql_query($q, $dbh);
/* 定义变量 rs ,函数mysql_query()的意思是:送出 query 字串供 MySQL 做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值 */
if(!$rs){die("Valid result!");}
echo "<table>";
echo "<tr><td>ID</td><td>Name</td></tr>";
while($row = mysql_fetch_row($rs)) echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>";
/* 定义量变(数组)row,并利用while循环,把数据一一写出来.
函数mysql_fetch_row()的意思是:将查询结果$rs单列拆到阵列变数中.
$row[0] 和 $row[1] 的位置可以换*/
echo "</table>";
?>
<br />
<!--========= 方法二 =========-->
<br />
<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />";
/* id和name可以换位置 */
?>
<br />
<!--========= 方法三 =========-->
<br />
<?
$rs = mysql_query($q, $dbh);
while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] <br />";
/* id和name可以换位置 */
?>
<!--========= 方法三最快 =========-->
<?
@mysql_close($dbh);
/* 关闭到mysql数据库的连接 */
?>
在其它地方看到的一篇文章,老了一点,这两天也正想找个时间来用IIS+APACHE使用不同端口来做两个PHP共存....到时再发出来'罢..看原文吧
-------------------------------------------------------------
好处不多说了,:D 坏处嘛...是CGI方式的(引用官方原文:we consider installing PHP like this suicidal.--esayr注:E文不好?呵,最后一个是自杀的意思)
废话少说,直接看方法:
一,本文涉及软件极其版本:
Windows 2000 Professional/XP
Apache 1.3.28 FOR WIN
Microsoft Internet Server Information(IIS6)
PHP 4.3.3(4.3.5), PHP 5.0.0 beta(5.0.0RC1)
MySQL 3.23.57(3.23.58)
二,大致步骤:(二,三任选)
1.分别安装各版本的PHP
2.安装APACHE,设置APACHE 和 PHP
3.安装IIS,并在IIS中设置PHP各版本[注1]
4.安装MYSQL
三,安装前准备:
将所须程序COPY至各文件夹,本文按照以下目录结构进行,你可以根据需要自行修改^^:
C:/httpd/Apache
C:/httpd/MySQL
C:/httpd/PHP4
C:/httpd/PHP5
C:/httpd/php-includes
C:/httpd/phpMyAdmin
C:/httpd/tmp
C:/httpd/www
到C:/WINNT/system32/drivers/etc(XP是C:/WINDOWS/system32/drivers/etc)文件夹下,找到hosts文件(没有?! @_@ 那么.... :D ),在底下增加
127.0.0.1 php4 # Waiter PHP 4
127.0.0.1 php5 # Waiter PHP 5
吼吼...如果你懂~~自己修改其他名字吧 8D 我们继续...
保存文件...
四,安装各版本PHP
假设你已经下载你需要的各版本PHP...(哪下载?? :P 自己找吧...)
这里以4.3.3和5.0.0-beta为例...(4.3.5vs5.0.0RC1我也试了.如果和你环境不一样不要怪我 :( ,大同小异,自己琢磨吧) ;)
㈠安装PHP4.3.3
①解压缩下载文件(:) 地球人都知道)
②将PHP4.3.3中的php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.* 拷贝到C:/httpd/PHP4
③修改php.ini-recommended:
extension_dir = "C:/httpd/PHP4/extensions/"
cgi.force_redirect = 0
保存为php.ini(就在C:/httpd/PHP4/下)
㈡安装PHP5.0.0BETA
①解压缩...
②将php.exe, php.ini-recommended, phpêmbed.lib, php4ts.dll, php4ts.lib, dll/*.* 和 extensions/*.*拷贝至C:httpdPHP5
如果是PHP5.0.0RC1,那么没有dll和extensions目录,只有ext--就是extensions拉
如果...你是mysql的忠实用户,别忘了把libmysql.dll也拷过去[注2].
③修改php.ini-recommended:
extension_dir = "C:/httpd/PHP5/extensions/"
cgi.force_redirect = 0
如果是PHP4.0.0RC1,那么extension_dir = "C:/httpd/PHP5/ext/"
保存为php.ini(就在C:/httpd/PHP5/下)
五,配置APACHE
打开C:/httpd/Apache/conf/httpd.conf,在底下追加一些设置:
<VirtualHost *:80>
ServerAdmin test@php433
ServerName php4
ServerAlias www
DocumentRoot "C:/httpd/www"
<Directory "C:/httpd/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php4/ "C:/httpd/php4/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php4/php.exe"
</VirtualHost>
<VirtualHost *:80>
ServerAdmin test@php500
ServerName php5
DocumentRoot "C:/httpd/www"
<Directory "C:/httpd/www">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /php5/ "C:/httpd/php5/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php5/php-cgi.exe"
</VirtualHost>
六,关于PHP5和MYSQL
MYSQL的安装,我就不多说了,自己下了装吧...(跳过这段没意见吧? )
你可以通过修改php.ini,来加载MYSQL... (难过...)
七,测试...
启动APACHE(如果httpd.conf配置有错,会有出错提示...),然后地址栏输入http://php4和http://php5就分别启动PHP4和PHP5咯...爽吗? :D :D :D [注3]
相信对广大PHP程序员,以及想学PHP5又不想放弃PHP4的同志来说,这会是个不错的方法.ENJOY IT!
总结一下:
其实思路很简单,利用CGI方式实现PHP4和PHP5的共存.我找了很多资料,这个算最简单最实用了.不过只适合大家本机玩,千万别在服务器上这么搞...否则~后果自负...别找我
如果你按上面方法有问题,可以尝试其他途径,这里罗列一些国外的成功案例:
http://wiki.coggeshall.org/37.html
http://www.circle.ch/blog/p1387.html
http://www.schlitt.info/applications/blog/..._5_prallel.html
有兴趣的可以继续学习下...
继续关于本方案的一点重要补充:
PHP4和PHP5共存,存在一个php.ini冲突的问题...
大家都知道,一般做法是需要将php.ini复制到系统文件夹下(C:WinNT or C:Windows).如果同时安装多版本,势必会造成冲突...
其实,如果大家仔细阅读PHP安装文档,会有如下一段文字:
Does Where C I cut to could the php.ini? The php.ini files is only searched in two places: 1) in your Apache installation directory (e.g. c:apacheapache) 2) in your %SYSTEMROOT% directory.
而我们正是使用的第一种方式...(是不是官方早料到有这种情况??GOD KNOWS...)
我在上述环境下测试成功了...如果你遇到困难可以留言或到讨论区一起讨论。
结语:
偶不太会写教程之类的东东...自己看了懂,却不是很容易让别人理解,大家只好忍让了.
虽然过程比较简单,不过费了我不少时间(有两个地方...我找的资料有误,把我害惨了),这个大A作证拉...( :D 大A睡了一觉起来上厕所,我还在...此处少儿不宜,删去500字)
PHP5时代越来越近,赶紧深入了解去吧...
-------------------------------------------------------------------------
[注1]:
本来想写FOR IIS的...可实在不想在自己机器上装个没用的东西(对我而言 :( ),so...标题列了,却放弃写了...对部分看客说声抱歉...
[注2]:
这里说点题外话:在PHP5.0.0RC1中,不知道大家看到ext下有个mysqli.dll,以及php.exe同层目录下有个libmysqli.dll么?奇怪这是干嘛的?其实这是官方针对MYSQL的新版(4.1.0好象是...吧)的一个升级,对于高版本MYSQL玩家可以试试...据说支持MYSQL一些新特性哦
[注3]:
在启动APACHE时,如果看到什么"overlap on port 80"...不要着急,在httpd.conf中,把NameVirtualHost *:80前的注释去了即可...(这个地方难了我好长时间...只怪APACHE设置不熟悉.不过这次算好好把APACHE的设置看了遍,还是有收获)
相关文章 • apache 2.2.2 + PHP5.1.4 不能运行的解决办法. - 05-11 02:07 pm - 点击: 12651 • PHP5.1.3发布 - 05-03 09:41 pm - 点击: 1860 • PHP5学习笔记 -- Classes and Objects in PHP5 - 09-05 02:13 pm - 点击: 5776 • 从PHP4.3.*升级到PHP5.0.0 - 08-09 01:49 am - 点击: 5136 • php4和php5的配置异同比较 - 08-01 06:25 pm - 点击: 4260 • redhat 9下配置APACHE2.0.50 +PHP5+MYSQL4.0.20+GD库 - 07-29 02:00 am - 点击: 13784 • php5 for windows 安装详解 - 07-14 10:33 pm - 点击: 13370 • PHP5正式版昨日发行--附PHP研究手册 - 07-14 10:04 pm - 点击: 6069 • 为面向对象而生的PHP5 之二 - 06-25 07:13 pm - 点击: 3749 • 为面向对象而生的PHP5 (1) - 06-25 07:11 pm - 点击: 4488
所以今天特意写了这个配置文档,相信按照以下步骤你一定会成功的。错误的地方也希望各
位指正。
更多文章 php爱好者站 http://www.phpfans.net
本例是在wiondws下 apache2.0.55 php5.1.1(zip) mysql5.0.19 phpmyadmin2.7.0安装与配置
以上资源可以在本站下载站http://www.phpfans.net/download.php/下载
/*
作者:我不是鱼
网址:http://www.phpfans.net
博客:http://www.phpfans.net/space/index.php/2
email:deng5765@163.com
*/
Apache 的安装
1 点击apahce安装包
2 下面3项随便填
apache 监听80 端口。如果iis用了80端口,修改iis端口或者apache端口,以免冲突
3 这里默认的是 typical。如果想修改安装路径的话也可以选择custom,注意安装路径不能含中文
4 开始安装
5 安装完成后在浏览器里打入 http://localhost
如果可以看到这个页面,证明apache安装成功,已经可以解释静态页面了
MySQL 的安装
1 点击mysql安装包
2 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装mysql的路径中,不能含有中文!
3 安装开始
4 跳过注册
5 是否现在就配置 mysql。也可以之后在开始菜单的configuration wizard 进行配置
这里是现在进行配置
6 选择Detailed Configuration,点Next继续
7 下面这个选项是选择mysql应用于何种类型,第一种是开发服务器,
将只用尽量少的内存,第二种是普通WEB服务器,将使用中等数量内存,
最后一种是这台服务器上面只跑mysql数据库,将占用全部的内存。
用户可根据自己的需求,选择选项。这里只选择开发服务器,点Next继续
8 下面是选择数据库用途,第一种是多功能用途,
将把数据库优化成很好的innodb(事务)存储类型和高效率的myisam(非事务)存储类型,
第二种是只用于事务处理类型,最好的优化innodb,但同时也支持myisam,只有myisam才支持全文索引
最后一种是非事务处理类型,适合于简单的应用,只有不支持事务的myisam类型是被支持的。
一般选择第一种多功能的。
9 下面是选择InnodDB的数据存放位置,一般默认好了,不需要改动
10 下面是选择mysql允许的最大连接数,第一种是最大20个连接并发数,
第二种是最大500个并发连接数,最后 一种是自定义,你可以根据自己的需要选择。
这里选择第一个
11下面是选择数据库监听的端口,一般默认是3306,如果改成其他端口,
以后连接数据库的时候都要记住修改的端口,否则不能连接mysql数据库,
比较麻烦,这里不做修改,用mysq的默认端口:3306
12 这一步设置mysql的默认编码,默认是latin1,也是标准的编码
13 当然我们可以根据需要,把它改成gb2312或gbk。编码是版本4.1以上引入的。
如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码
和原来数据库数据的编码不一致,在使用的时候可能会出现乱码.建议使用latin1标准编码
14 这一步是是否要把mysql设置成windows的服务,一般选择设成服务,
这样以后就可以通过服务中启动和关闭mysql数据库了。推荐:下面的复选框也勾选上,
这样,在cmd模式下,不必非到mysql的bin目录下执行命令。在命令行下咨询可以执行文件
15 这一步是设置mysql的超级用户密码,这个超级用户非常重要,
对mysql拥有全部的权限,请设置好并牢记超级用户的密码,
下面有个复选框是选择是否允许远程机器用root用户连接到你的mysql服务器上面,
如果有这个需求,也请勾选。
16 点击 Execute
17 到这一步
18 我们可以开始使用mysql了,打开开始菜单的 mysql Command line Client,输入密码
出现这个界面说明mysql已经安装好了
可能出现的问题:
如果在第15步,你出现的界面是像下面这样
有三个输入密码的地方,则有可能您是在原来基础上安装的。
你在第一个文本框输入原来root的密码,后面两个文本框输入root的新密码,
点击Next基础,出现下图
给您推荐几种解决办法:
1、 点Retry,重试;
2、 再运行一次设置,看到有关“移除原设置”的选项,选择移除,然后在重新设置。
3、 重装。
重装注意事项:最好删除原来的所有文件,必要的话,可以清一下注册表,
如果你机器上没有其它mysql相关的程序。而且一定记得不要保留原有的my.ini文件。
还有就是删除原来安装路径下的文件,并删除数据目录下面的ibdata1文件.
更多文章 php爱好者站 http://www.phpfans.net
PHP 的安装
由于php是一个zip文件(非install版),安装较为简单
解压就行。把解压的 php5.1.1-Win32重命名为 php5。并复制到C盘目录下。即安装路径为 c:\php5
1 找到php目录下的 php.ini-dist或 php.ini.recommended文件,重命名为 php.ini
并复制到系统盘的windows目录下(以c:\windows为例).
2 再把php目录下的php5ts.dll,libmysql.dll复制到目录 c:\windows\system32下。
如果没把libmysql.dll复制到system32下,在重启apache时可能会出现如下警告
3 把php5\ext目录下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件复制到c:\windows\system32下
如果没有加载 php_gd2.dll php将不能处理图像。没有加载php_mysql.dll php将不支持mysql函数库
php_mbstring.dll在后面使用phpmyadmin时支持宽字符
所有东西安装完成后我们再进行配置
配置php并关联MySQL
以下内容跟帖回复才能看到
==============================
打开c:\windows\php.ini文件
1 设置扩展路径
查找 extension_dir 有这么一行
extension_dir = "./"
将此行改成
extension_dir = "C:\php5\ext"
其中C:\php5是你安装php的路径。路径不正确将无法加载dll
(注意:有些php版本是 ;extension_dir = "./" 要把前面的分号去掉)
2 查找 extension
extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dl
把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了
当然前面我们也把这些dll复制到system32下了l
3 设置会话保存路径
查找session.save_path 有这么一行
; session.save_path = "N;/path"
在此行后加入一行(注意是加入一行,不是加到后面)
session.save_path = "C:\WINDOWS\Temp"
保存到你的临时目录下,这里完全可以保存到windows临时目录Temp下
4 还有比较值得注意的是 short_open_tag 默认是Off的
也就是说 php不能使用短标记如 <? ?> 必须使用<?php ?>
由于短标记使用方便,并且很多程序也是用短短标记来写,如discuz等
如果不把 short_open_tag 改成On将出现的症状将很难判断是上面原因,这里建议修改
查找
short_open_tag = Off
改为
short_open_tag = On
5 是否显示错误 display_errors
出于安全性考虑,display_errors 也默认为 Off
就是说在调试时,如果php代码有误,就只出现一个空白页。而不会显示出错原因和出错行数。
这样调试起来将非常不便,建议根据自己需要修改
查找
display_errors = Off (注意不是 ; - display_errors = Off [Security])
改成
display_errors = On
6 register_globals
出于安全性考虑它默认也是Off
当register_globals=Off的时候,下一个程序接收的时候应该用$_POST['user_name']和$_POST['user_pass'])
当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。
更详细的说明请参考
http://www.phpfans.net/bbs/archiver/?tid-234.htm
建议根据自己需要修改
7 php5时差问题
<?php echo date("Y-m-d H:i:s");?>时间相差八小时
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
查找date.timezone有这么一行
;date.timezone =
将;去掉,改成
date.timezone = PRC
其中PRC:People's Republic of China 中华人民共和国,
更详细解决方法请参考本论坛的
http://www.phpfans.net/bbs/archiver/?tid-60.html
更多文章 php爱好者站 http://www.phpfans.net
Apache整合PHP
1 从开始菜单打开apache配置文档,如图
2 修改网站根目录
查找 DocumentRoot有这么一行
DocumentRoot"C:/Program Files/Apache Group/Apache2/htdos"
这就是你网站的根目录,你可以修改,也可以用默认的.如果改,还要修改下面这项,否则可能会出现 403 错误
查找 This should be changed to whatever you set DocumentRoot to
在它下面两行有
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
把上面两项的 C:/Program Files/Apache Group/Apache2/htdos 改成你想要的目录
3 查找 DirectoryIndex index.html index.html.var
修改成
DirectoryIndex index.html index.html.var index.php
这样index.php 可以充当默认页面了
4 Apache中模块化安装php
查找 # LoadModule foo_module modules/mod_foo.so
在此行后加入一行
LoadModule php5_module C:/php5/php5apache2.dll
其中C:/php5/php5apache2.dll是你安装php的相应路径.
注意不要把php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.
注意: PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,如果是2.2.*以上版本,就可能会出现
"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/viewt ... &extra=page%3D1
5 查找 AddType application/x-gzip .gz .tgz
在此行后加入一行
AddType application/x-httpd-php .php
这样apache就可以解释php文件了
到这里配置基本完成了
########重启apache#########
在网站根目录下创建一个 phpinfo.php 文件
<?php
phpinfo();
?>
在浏览器打开
http://localhost/phpinfo.php
如果出现如下信息,则说明php已经配置好了
下面再测试php和mysql数据库的关联
在网站根目录下创建一个test.php 文件
$link=mysql_connect("localhost","root","12345"); //12345改成你的mysql密码
if(!$link) echo "失败!";
else echo "成功!";
mysql_close();
?>
如果输出成功,则说明大功告成了.
安装 phpMyAdmin
下载得到 phpMyAdmin-2.7.0.zip,将其解压到 你网站根目录下并重命名为phpMyAdmin,
找到并打开 config.defaut.php (有些版本是config.inc.php或者 libraries/config.default.php)
做以下修改:
1 查找 password 有如下两行
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
把你的mysql密码填到$cfg['Servers'][$i]['password'] = ''; 单引号里边
2 搜索 $cfg['PmaAbsoluteUri'],将其设置为 phpMyAdmin 目录路径,如:http://localhost/phpMyAdmin/ ;
下面这两项项根据自己需要的编码修改(如果对数据库编码不是很熟悉的建议不要修改)
3 搜索 $cfg['DefaultLang'],将其设置为 zh-gb2312 ;
4 搜索 $cfg['DefaultCharset'],将其设置为 gb2312 ;
打开浏览器,输入:http://localhost/phpMyAdmin/,Apache 和 MySQL 均已启动,
如果出现如下页面则phpmyadmin安装完成并可以使用了
phpMyAdmin 的具体功能,请慢慢熟悉,这里不再赘述。
==============================
更多文章 php爱好者站 http://www.phpfans.net