IIS php筛选器php5isapi.dll加载失败

2010/09/08 7:58 am  |  分类:未分类

原因:服务器做了安全设置,把d:\php的everyone权限去掉了,IIS自然没法加载php5isapi.dll。

解决办法:d:\php目录加上everyone用户 设置权限为:只读就可以了.

让WordPress 后台显示日志浏览量

2010/08/11 2:12 am  |  分类:wordpress

WP-Postviews这个 WordPress 插件可以对每篇日志的点击数进行统计,但是 PostViews 这个插件有点不好的地方就是不能在后台日志列表页面显示点击数,今天我查了下 WordPress 的 Hook,通过以下代码实现了这个功能:

add_filter('manage_posts_columns', 'postviews_admin_add_column');
function postviews_admin_add_column($columns){
    $columns['views'] = __('Views');
    return $columns;
}
add_action('manage_posts_custom_column','postviews_admin_show',10,2);
function postviews_admin_show($column_name,$id){
    if ($column_name != 'views')
        return;
    $post_views = get_post_meta($id, "views",true);
    echo $post_views;
}

你只需将上面的代码复制到你的 PostViews 插件的原文件或者主题的function.php 中即可。最终效果让你可以在 WordPress 后台日志列表页面查看每篇日志的点击数,如下图所示:

windows下手动配置Apache+PHP

2010/06/29 1:34 pm  |  分类:服务器
安装apache的时候遇到错误提示:
“(OS 10048)通常每个套接字地址 (协议/网络地址/端口) 只允许使用一次:
make_sock: could not bind to address 0.0.0.0:80…”
查看程序端口,发现是Thunder 监听80端口,关闭thunder,即可安装Apache2
附其他分析办法:
一般是IIS或其他程序占用了80端口引起的
分析:
netstat -a
查看相应端口,是否有程序占用
netstat -ab
查看具体占用程序
两种解决方法:
1、打开 控制面板->服务 找到 IIS admin 等相应服务 关闭并禁用
2、如果不想关闭IIS服务 可将apache使用的端口改成其它端口
将apache2/conf/httpd.conf 中的
Listen 80 改为 Listen (你要使用的端口) 如 Listen 8080
不过这时在你访问你的apache 下的Web服务时 在域名后要加上端口号
如: http://localhost:8080
然后用CMD进入命令行模式 进入你安装apache的目录 /apache2/bin
输入
httpd  -k install
httpd  -k start

一定进行这一步,否则依旧是错误。

配置Apache、PHP
安装PHP很简单,但是主要的挑战在于Apache和PHP的协作配置上,这是配置PHP运行环境整个过程的重点,也是难点。

为了后面说明的更容易,在此我先把本人配置PHP运行环境时各软件安装目录先说明一下:
apache目录为:C:/apache, php目录为C:/php, mysql目录为C:/mysql, 存放PHP文件的文档目录为:E:/myphp。
一、php的安装:

php目录里找到php.ini-dist 重命名为 php.ini 并拷到 windows系统目录下(特殊情况:win2k系统目录为winnt)如我的php.ini是拷到 c:/windows目录


再将php安装目录里的 php5ts.dll,libmysql.dll,libmcrypt.dll,libmhash.dll拷到 系统目录系统目录如我的是c:/windows 里(也可以是c:/windows/system32,php.ini也可以放在c:/windows/system32里。不过本人一直认为打开c:/windows这个文件夹比打开c:/windows/system32这个文件夹时间来得更快,所以本人一直用c:/windows)。

先说明一下:php5ts.dll,libmysql.dll这两年文件在其它的PHP环境配置教程里常看到,libmcrypt.dll,libmhash.dll这两个文件却看不到,不过最新版的phpmyadmin运行需要这个环境,所以—-。
实际的操作上,我总是先把php5ts.dll,libmysql.dll,libmcrypt.dll,libmhash.dll拷到c:/windows里,然后将php.ini配置好再把php.ini拷到c:/windows里。
二、php.ini的配置:
编辑php.ini,相应设置如下(记住先搜寻相应设置项,找到后再开始设置):
doc_root =”E:/myphp”
extension_dir =”C:/php/ext”
session.save_path = “C:/WINDOWS/Temp”
把你想要的extension前面的注释分号去掉,比如我的:
extension=php_zip.dll
extension=php_gd2.dll
extension=php_sockets.dll
extension=php_mysql.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll


三、配置Apache文件httpd.conf
该文件路径为:C:\Apache2\conf\httpd.conf(一般在WIN开始菜单里的程序菜单里就能找到httpd.conf的快捷方式)。
更改默认www文件夹:找到DocumentRoot”C:/Apache2/htdocs”,将其改为:DocumentRoot “E:/myphp”。
找到<Directory “C:/Apache2/htdocs”>将其改为:<Directory “E:/myphp”>

添加PHP支持

找到“#LoadModule ssl_module modules/mod_ssl.so”,在后面一行增加:LoadModule php5_module “c:/php/php5apache2_2.dll”
找到“AddType application/x-gzip .gz .tgz”,在后面一行增加:AddType application/x-httpd-php .php

添加主页文档

找到
<IfModuledir_module>
DirectoryIndex index.html
</IfModule>
将其改为:
<IfModuledir_module>
DirectoryIndex index.php index.html index.htm
</IfModule>
以便Apache能够认到index.php的Welcome文件。

配置端口:找到
#Listen 12.34.56.78:80
Listen 80
将80改为你需要的端口,一般情况是不用改的。(不过本人习惯将#Listen 12.34.56.78:80
改为:#Listen 127.0.0.1:80)
重启apache,在E:\myphp里放一个PHP文件index.php,其内容为:

<?php
phpinfo();
?>

windows下配置Apache+PHP+MySQL

2010/06/28 6:59 am  |  分类:php,服务器

一. Apache的配置

1.到www.apache.org下载Apache服务器软件。也可点击这里下载Apache-2.2.4-win32-x86-no-ssl.msi
2.安装,

一直按next,到

,选择“only for the current,on port 8080…….”(即选用的是8080端口,因为现在有些软件是使用的80端口
,避免出现冲突就选用8080端口–作者建议)
3.当到

setup type界面时选择custom。
4.在选择路径时,我选用的是D:\Apache2.2\。


5.安装完后。成到D盘的Apache2.2文件下面的bin文件里面,运行httpd.exe。
6.到浏览器输入http://localhost:8080/。马上就会显示出你想看到的界面
二.安装与配置PHP环境
1.到www.php.net下载PHP文件。也可以点击这里下载PHP-5.25-win32-install.msi
2.下载后安装到D:\PHP\

…….当到

选择Apache2.2xModule。
3.到Apache configuration directory页面时,路径选择D:\apache2.2\
4.Select the way you want features to be installed页面下的路径选择D:\PHP\
5.进入到D:\Apache2.2\conf文件下查看http.conf信息。
6.进入D:\apache2.2\htdocs文件夹下,创建一个test.php文件。其内容是 (?php
phpinfo();
?>
7.进入D:\PHP\打开php.ini配置文件。修改其中的short_open_tag=Off改成short_open_tag=On
8.打开浏览输入http://localhost:8080/test.php
你将看到的是你的PHP服务器的各种配置。
三.安装和测试MySQL数据库
1.下载MySQL www.mysql.com 点击这里也可以下载mysql-essential-5.1.40-win32.zip
2.解压安装,到下图时候,选择custom。

安装到D:\MySQL\
一路安装即可哈。到现在为止,你的php服务器就算基本完成了。

Windows 2003下配置IIS+Php+Mysql

2010/06/19 3:14 am  |  分类:php,服务器

一:准备所需软件
1:mysql-5.0.18-win32
2:php-5.2.4-Win32.zip
3:mysqlcc-0.9.4-win32
4:phpMyAdmin-2.11.1-all-languages
5:ZendOptimizer-3.2.6-Windows-i386

二:开始配置Php

1:将php-5.2.4-Win32.zip解压后命名为Php.复制到 C:\ 下.
2:将C:\php 与 C:\php\ext 所有*.dll文件复制到 C:\WINDOWS\system32 下并覆盖.
3:将 C:\php 下的 php-win.exe,php.ini-dist,php.exe 三个文件复制到 C:\WINDOWS 并重命名 php.ini-dist 为 php.ini
4:打开IIS(信息服务) – Web服务扩展-添加一个新的 Web 扩展,扩展名 php ,要求文件 – 添加-浏览-C:\php\php5isapi.dll,设置扩展允许状态项打勾
5:Web服务扩展 – 所有 Isapi 扩展 与 Internet 数据连接器两项 – 设置扩展允许状态项打勾

6:右击所要支持Php的站点选择属性 – Isapi 筛选器 – 添加 – 筛选器名称:php – 可执行文件:C:\php\php5isapi.dll
7:主目录 – 配置 – 映射添加 – 可执行文件:C:\php\php5isapi.dll – 扩展名:.php

三:安装ZendOptimizer(ZendOptimizer的作用是加速php)

next-Finish(一路下一步,确定即可,完成)

四:配置Php.ini

打开写字板打 C:\WINDOWS\php.ini , 查找(Ctrl+f) register_globals = Off ,将 Off 改成 On ; extension_dir = “./” ,并将”./”改为”C:\php\ext“注意左侧路径不能有空格,后面所说第8点。解决无法加载 Gd 库 与 Mysql 。之所以没有加载的原因就是以前在配置时多出了空格导致。根据第8点的做法是可以解决无法加载 Gd 库 与 Mysql 的问题。但也会有些系统也会出现白页的情况 ;
将下面几行代码开头 ; 号 删除
;extension=php_dbase.dll   可选
;extension=php_gd2.dll    这个是用来支持GD库的,一般需要,必选
;extension=php_ldap.dll    可选
;extension=php_mbstring.dll  必选
;extension=php_mssql.dll    这个是用来支持MSSQL的,可选
;extension=php_mysql.dll    这个是用来支持MYSQL的,要支持MYSQL必选将以上代码前的”;”去掉,其他的如果需要用到也可以去掉前面的;然后关闭保存该文件。

五:安装Mysql(每一步一个安装界面)

1:运行mysql-5.0.18 – Custom 项 – Next
2:点击(Change..)选择更改安装路径.
3:更改完路径后点击Next,接着点Install开始安装
4:我们看到安装进度!
5:选择Skip Sign-Up 项,点击Next>继续安装!
6:到这里我们安装已经完成,选上Configure the MySQL Server now后点击 Finish 进入Mysql的配置工作.
7:进入Mysql的配置界面 – Next
8:选择 Detailed Configuration 项 -Next
9:选择 Server Machine 项 – Next
10:选择 Multifunctional Database 项 -Next
11:这一步我还是以默认(让你选择数据库文件的存放地点)
12:选择 Online Transaction Processing(OLTP) 项 – Next
13: 继续Next
14:选择语言的支持!用默认 – Standard Character Set 项
15:记得要选上Include Bin Directory In Windows Path 项 – Next
16:输入密码 – Next
17:点击Execute 开始完成配置并启动MYSQL服务.
18:点击Finish 完成你的Mysql的全部安装.

六:安装mysqlcc-0.9.4-win32(管理数据库.新建用户.库.表等…)

“1:这篇文章主要装如何配置Iis+Php+Mysql.此块就简单说下. 不是Next就是Finish.后弹出一个界面有几项
hostname:(随便填写.只是一个名称)
name:(安装Mysql时的用户名root)
password:(安装Mysql时的用户密码)
还有一个mysql地址默认为 localhost.
后点击Add. 2:完成此部后.把界面改成中文简体菜单栏 – Options – General Ctrl+0 – 在打开的General中Language项,选Simplified Chinese选项 – 0K重启 mysqlcc

七:安装Phpmyadmin

1:Iis指向解压后的phpmyadmin目录.
2:把根目录下的config.sample.inc.php重命名为config.inc.php
3:浏览index.php.会提示密码为空这样的信息.右上角有一个连接点击进入phpmyadmin配置界面.填写后add-OK完成.很简单.

八:按上面步骤Cngothic测试可以成功安装如果出现无法加载 Gd 库 与 Mysql 按下面步骤来解决

这是由于下面的这步造成的
打开写字板打 C:\WINDOWS\php.ini , 查找(Ctrl+f) register_globals = Off ,将 Off 改成 On ; extension_dir = “./” ,并将”./”改为”C: \php\ext” ;

解决方法可在上面第四步配置PHP.INI时不要修改上面这句.如果修改了就按下面的操作.Cngothic个人比较喜欢干净的文件所以…

1:剪切 C:\WINDOWS 下的php.ini 到桌面
2:复制 C:\PHP 下的 php.ini-dist 到 C:\WINDOWS 重命为php.ini
3:打开桌面上的php.ini浏览到页尾.复制ZEND的安装信息到 C:\WINDOWS \php.ini 的页尾.
4:找到 ;extension=php_gd2.dll 代码.把 extension=php_gd2.dll 前的 ;号删除.重启IIS.这会Gd库必须能够加载.
5:找到 ;extension=php_mysql.dll 代码把 extension=php_mysql.dll 前的;号删除重启iis.呵呵mysql也被加载进去了.
6:安装个ecms过程中会检测 DEDECMS 2007,Ecms4.7都放出来了.快配置PHP体验学习下吧.

简易curl教程

2010/04/22 11:36 am  |  分类:php,网页制作

使用PHP 的cURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据 了。无论是你想从从一个链接上取部分数据,或是取一个XML 文件并把其导入数据库,那怕就是简单的获取网页内容,cURL 是一个功能强大的PHP 库。本文主要讲述如果使用这个PHP 库。

启 用 cURL 设置

首先,我们得 先要确定我们的PHP 是否开启了这个库,你可以通过使用php_info() 函数来得到这一信息。

Php代码

﹤?php
phpinfo();
?﹥

如果你可以在 网页上看到下面的输出,那么表示cURL 库已被开启。

如果你看到的 话,那么你需要设置你的PHP 并开启这个库。如果你是在Windows 平台下,那么非常简单,你需要改一改你的php.ini 文件的设置,找到php_curl.dll ,并取消前面的分号注释就行了。如下所示:

Php代码

//取消下在的注释
extension=php_curl.dll

如果你是在Linux 下面,那么,你需要重新编译你的PHP 了,编辑时,你需要打开编译参数—— 在configure 命令上加上“–with-curl” 参数。

一 个小示例

如果一切就 绪,下面是一个小例程:

Php代码

﹤?php
// 初始化一个 cURL 对象
$curl = curl_init();
// 设置你需要抓取的URL
curl_setopt($curl, CURLOPT_URL, 'http://cocre.com');
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 1);
// 设置cURL 参数,要求结果保存到字符串中还是输出到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// 运行cURL,请求网页
$data = curl_exec($curl);
// 关闭URL请求
curl_close($curl);
// 显示获得的数据
var_dump($data);

如 何POST 数据

上面是抓取网 页的代码,下面则是向某个网页POST 数据。假设我们有一个处理表单的网址http://www.example.com/sendSMS.php ,其可以接受两个表单域,一个是电话号码,一个是短信内容。

Php代码

﹤?php
$phoneNumber = '13912345678';
$message = 'This message was generated by curl and php';
$curlPost = 'pNUMBER='  . urlencode($phoneNumber) . '&MESSAGE=' . urlencode($message) . '&SUBMIT=Send';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/sendSMS.php');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec();
curl_close($ch);
?﹥

从上面的程序 我们可以看到,使用CURLOPT_POST 设置HTTP 协议的POST 方法,而不是GET 方法,然后以CURLOPT_POSTFIELDS 设置POST 的数据。

关 于代理服务器

下面是一个如 何使用代理服务器的示例。请注意其中高亮的代码,代码很简单,我就不用多说了。

Php代码

﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_setopt($ch, CURLOPT_PROXY, 'fakeproxy.com:1080');
curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
$data = curl_exec();
curl_close($ch);
?﹥

关 于SSL 和Cookie

关于SSL 也就是HTTPS 协议,你只需要把CURLOPT_URL 连接中的http:// 变成https:// 就可以了。当然,还有一个参数叫CURLOPT_SSL_VERIFYHOST 可以设置为验证站点。

关于Cookie ,你需要了解下面三个参数:

CURLOPT_COOKIE ,在当面的会话中设置一个cookie

CURLOPT_COOKIEJAR ,当会话结束的时候保存一个Cookie

CURLOPT_COOKIEFILE ,Cookie 的文件。

HTTP 服务器认证

最后,我们来 看一看HTTP 服务器认证的情况。

Php代码

﹤?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')
$data = curl_exec();
curl_close($ch);
?﹥

关于其它更多 的内容,请参看相关的cURL 手册。