本文目录一览:
- 1、windows下开发并编译PHP扩展的方法
- 2、如何在Windows下配置PHP环境
- 3、如何在Windows下配置搭建PHP环境
- 4、windows下php无法支持pgsql,该怎么解决
- 5、如何在Windows7环境下安装 PHP
- 6、Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式
windows下开发并编译PHP扩展的方法
现在就简单说一在WINDOWS下开发PHP扩展的步骤:
首先需要准备的软件有:
cygwin
安装路径e:\app\cygwin
visual
studio
C++
6.0,
修改环境变量,把已经安装好的PHP路径设置为环境变量。在这里,假设我的PHP安装目录是:e:\app\php5.2.5,那么我把WINDOWS环境变量后面加上这个安装目录。方便一会儿使用php.exe。
PHP源代码,这里假设为e:\c_source_code\php-5.2.5
1、修改文件
“PHP源文件目录/ext/ext_skel_win32.php”,在这里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路径。$cygwin_path
=
'e:\app\cygwin\bin';
把$cygwin_path修改为你实际安装cygwin的路径。
2、在源代码ext目录也就是e:\c_source_code\php-5.2.5\ext下,执行
php
ext_skel_win32.php
--extname=EXT_NAME,此时会在ext目录下生成EXT_NAME目录,这个目录就是我们将要进行PHP扩展开发的框架。比如你运行php.exe
ext_skel_win32.php
--extname=foo,会在ext目录下生成foo目录。
3、将php-root\dev\php5ts.lib拷贝至
“ext/EXT_NAME”中。比如你要开发的PHP扩展名为foo,那么就需要把php-root\dev\php5ts.lib拷贝到PHP源文件目录\ext\foo中。
4、修改foo.c内容,编写我们需要的C代码。
5、进入EXT_NAME目录,打开EXT_NAME.dsp。
设置VC6工程,
设置菜单“组建”-“移除工程配置”,选中“Win
32
Release_TS”,
设置菜单“工程”,选中“Win
32
Release_TS”
打开Tab“连接”,设置“输出文件名”中的目录,
[可选]打开Tab“C/C++”,增加“预处理器定义”“,COMPILE_DL_EXT_NAME”(注意全大写,默认加入的),取消预定义“LIBZEND_EXPORTS”(否则不可引入zend函数)。
6、设置好以后,进行编译,会生成一个dll文件,文件名是EXT_NAME.dll,比如在我们的例子中就为foo.dll
把foo.dll拷到e:\app\ext目录下,并在php.ini里加上一行extension=foo.dll,重启一下apache,查看phpinfo();,会发现我们的PHP扩展foo()已经加载进来,已经可以使用这个foo扩展了。
如何在Windows下配置PHP环境
1、Apache、MySql和PHP的安装像安装windows其他软件一样,这里建议把Apache和PHP软件安装在D盘目录下,把MySQL软件安装在C盘,这样不需要做任何设置,MySQL就可以顺利启动运行。
2、配置开发环境
为了让windows可以执行PHP,需要做进一步的工作,按以下步骤搭建好环境:
1)在PHP安装目录下,找到文件php5ts.dll,将其复制到C盘system32目录下。
2)在PHP安装目录下,找到文件libmysql.dll,将其复制到C盘system32目录下。
3)在PHP安装目录下,找到文件php.ini,将其复制到C:\windows下。这个文件是配置PHP的基本文件,如设置服务器根目录配置,用文本编辑器打开php.ini文件,找到"doc_root=",因为我把Apache默认安装在D盘根目录下,所以,修改这个配置项的值为:doc_root=d:\apache2\htdocs
提示:用户根据自己安装Apache的路径,修改该配置项的值。
4)在php.ini中找到“extension_dir
="./"”,这个配置项用来载入PHP的扩展模块,修改该配置项如下:extension_dir =
d:\php\ext,(需要按自己的安装目录修改PHP的载入位置)。
5)在php.ini中找到“;extension=php_mysql.dll”,把这项前面的分号去掉,表示使这个项生效。这个配置项用来使PHP支持MySQL,这里分号起注释作用。修改完PHP的配置文件php.ini后,保存退出该文件。
6)进行Apache的配置。转到Apache的安装目录下的conf目录,用文本编辑器打开Apache的配置文件http.conf。在此文件中找到
dynamic shared object(DOS)
Support,在LoadModule行的最后添加如下配置项:LoadModule php5_module
d:/php/php5apache2.dll,(需要按自己的安装目录修改PHP的载入位置)。该项是通过Apache来载入PHP模块php5apache2.dll,即PHP以Apache的一个模块来运行。
7)为了让Apache支持.php后缀的文件,在http.conf中找到AddType项,在最后添加如下配置项:AddType
application/x-httpd-php.php。找到directoryIndex,在最后添加index.php。为了支持中文,找到AddDefaultCharset
ISO-8859-1改为AddDefaultCharset
GB2312。修改完后保存http.conf。即完成Apache的基本配置。
注意:强烈建议对Apache配置文件http.conf进行修改时,一定遵守修改一点测试一点的原则,即每次修改完一项并保存http.conf后,要重启一下Apache,如果Apache正常启动,则可以进行后续修改,否则,说明本次修改有误,仔细检查并重新修改。
如何在Windows下配置搭建PHP环境
现在很多站长PHP构建网站,因为PHP相对于其他的语言功能强大又简单易学,PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。最大的原因可能是因为几乎所有用PHP编写的网站程序都开源,可以直接下载使用并修改,这给站长们特别是个人站长建设网站节约了很多的时间和精力。我们在用PHP建网站的时候,首先要面临的问题就是php环境搭建,今天笔者就跟大家分享一下如何在windows下配置搭建PHP开发环境,笔者主要讲的是搭建Apache+php开发环境。
配置搭建Apache+php环境的软件准备:
Apache官方下载地址:apache_2.0.55-win32-x86-no_ssl.msi
php官方下载地址:php-5.0.5-Win32.zip
一、安装Apache,配置成功一个普通网站服务器
运行下载好的“apache_2.0.55-win32-x86-no_ssl.msi”,
出现Apache HTTP Server 2.0.55的安装向导界面,点“Next”继续
确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续
将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续
设置系统信息,在Network Domain下填入您的域名(比如:qdsulian.com),在Server Name下填入您的服务器名称(比如:,也就是主机名加上域名),在Administrator’s Email Address下填入系统管理员的联系电子邮件地址(比如:info@qdsulian.com),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口,并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。按“Next”继续。
选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续
出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change...”,手动指定安装目录。
我这里选择安装在“D:\”,各位自行选取了,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。
返回刚才的界面,选“Next”继续。
确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。
正在安装界面,请耐心等待,直到出现下面的画面。
装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装
我们来熟悉一下这个图标,很方便的,在图标上左键单击,出现如下界面,有“Start(启动)”、“Stop(停止)”、“Restart(重启动)”三个选项,可以很方便的对安装的Apache服务器进行上述操作。
好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打“”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功。
现在开始配置Apache服务器,使它更好的替我们服务,事实上,如果不配置,你的安装目录下的Apache2\htdocs文件夹就是网站的默认根目录,在里面放入文件就可以了。这里我们还是要配置一下,有什么问题或修改,配置始终是要会的,如图所示,“开始”、“所有程序”、“Apache HTTP Server2.0.55”、“Configure Apache Server”、“Edit the Apache httpd conf Configuration file”,点击打开。
XP的记事本有了些小变化,很实用的一个功能就是可以看到文件内容的行、列位置,按下图所示,点“查看”,勾选“状态栏”,界面右下角就多了个标记,“Ln 78, Col 10”就表示“行 78,列 10”,这样可以迅速的在文件中定位,方便解说。当然,你也可以通过“编辑”,“查找”输入关键字来快速定位。每次配置文件的改变,保存后,必须在 Apache服务器重启动后生效,可以用前面讲的小图标方便的控制服务器随时“重启动”。
现在正式开始配置Apache服务器,“Ln 228”,或者查找关键字“DocumentRoot”(也就是网站根目录),找到如下图所示地方,然后将""内的地址改成你的网站根目录,地址格式请照图上的写,主要是一般文件地址的“\”在Apache里要改成“/”。
“Ln 253”,同样,你也可以通过查找“
“Ln321”,DirectoryIndex(目录索引,也就是在仅指定目录的情况下,默认显示的文件名),可以添加很多,系统会根据从左至右的顺序来优先显示,以单个半角空格隔开,比如有些网站的首页是index.htm,就在光标那里加上“index.htm ”文件名是任意的,不一定非得“index.html”,比如“test.php”等,都可以。
这里有一个选择配置选项,以前可能要配置,现在好像修正过来了,不用配置了,就是强制所有输出文件的语言编码,html文件里有语言标记(,这个就是设定文档语言为gb2312)的也会强制转换。如果打开的网页出现乱码,请先检查网页内有没有上述 html语言标记,如果没有,添加上去就能正常显示了。把“#DefaultLanguage nl”前面的“# ”去掉,把“nl”改成你要强制输出的语言,中文是“zh-cn”,保存,关闭。
简单的Apache配置就到此结束了,现在利用先前的小图标重启动,所有的配置就生效了,你的网站就成了一个网站服务器,如果你加载了防火墙,请打开80或8080端口,或者允许Apache程序访问网络,否则别人不能访问。
二、php的安装、以module方式,将php与apache结合使你的网站服务器支持php服务器脚本程序
将下载的php安装文件php-5.0.5-Win32.zip右键解压缩。
指定解压缩的位置,我的设定在“D:\php”
查看解压缩后的文件夹内容,找到“php.ini-dist”文件,将其重命名为“php.ini”,打开编辑,找到下面图中的地方, Ln385,有一个“register_globals = Off”值,这个值是用来打开全局变量的,比如表单送过来的值,如果这个值设为“Off”,就只能用“$_POST['变量名']、$_GET['变量名 ']”等来取得送过来的值,如果设为“On”,就可以直接使用“$变量名”来获取送过来的值,当然,设为“Off”就比较安全,不会让人轻易将网页间传送的数据截取。这个值是否改成“On”就看自己感觉了,是安全重要还是方便重要?
这里还有一个地方要编辑,功能就是使php能够直接调用其它模块,比如访问mysql,如下图所示,Ln563,选择要加载的模块,去掉前面的 “;”,就表示要加载此模块了,加载的越多,占用的资源也就多一点,不过也多不到哪去,比如我要用mysql,就要把“;extension= php_mysql.dll”前的“;”去掉。所有的模块文件都放在php解压缩目录的“ext”之下,我这里的截图是把所有能加载的模块都加载上去了,前面的“;”没去掉的,是因为“ext”目录下默认没有此模块,加载会提示找不到文件而出错。这里只是参考,一般不需要加载这么多,需要的加载上就可以了,编辑好后保存,关闭。
如果上一步加载了其它模块,就要指明模块的位置,否则重启Apache的时候会提示“找不到指定模块”的错误,这里介绍一种最简单的方法,直接将php安装路径、里面的ext路径指定到windows系统路径中——在“我的电脑”上右键,“属性”,选择“高级”标签,点选“环境变量”,在“系统变量”下找到“Path”变量,选择,双击或点击“编辑”,将“;D:\php;D:\php\ext”加到原有值的后面,当然,其中的“D:\php” 是我的安装目录,你要将它改为自己的php安装目录,如下图所示,全部确定。系统路径添加好后要重启电脑才能生效,可以现在重启,也可以在所有软件安装或配置好后重启。
现在开始将php以module方式与Apache相结合,使php融入Apache,照先前的方法打开Apache的配置文件,Ln 173,找到这里,添加进如图所示选中的两行,第一行“LoadModule php5_module D:/php/php5apache2.dll”是指以module方式加载php,第二行“PHPIniDir "D:/php"”是指明php的配置文件php.ini的位置,是当然,其中的“D:/php”要改成你先前选择的php解压缩的目录。
还是Apache的配置文件,Ln 757,加入“AddType application/x-httpd-php .php”、“AddType application/x-httpd-php .html”两行,你也可以加入更多,实质就是添加可以执行php的文件类型,比如你再加上一行“AddType application/x-httpd-php .htm”,则.htm文件也可以执行php程序了,你甚至还可以添加上一行“AddType application/x-httpd-php .txt”,让普通的文本文件格式也能运行php程序。
前面所说的目录默认索引文件也可以改一下,因为现在加了php,有些文件就直接存为.php了,我们也可以把“index.php”设为默认索引文件,优先顺序就自己排了,我的是放在第一位。编辑完成,保存,关闭。
现在,php的安装,与Apache的结合已经全部完成,用屏幕右下角的小图标重启Apache,你的Apache服务器就支持了php。在windows下配置搭建Apache+php环境就此大功告成。
windows下php无法支持pgsql,该怎么解决
初学postgresql,想安装一个在本机测试一下,环境为windows xp + apache2 + php5(5.2.6) + postgresql8.4.一切安装正常,但是再装上phppgadmin测试时,显示“您的 PHP 中没有完整的数据库支持”。apache错误日志为“PHP Warning: PHP Startup: Unable to load dynamic library 'C:/php/ext/php_pgsql.dll'”。多次在网上搜索解决方法,已完成以下操作:
1、修改php.ini
2、确认C:\php\ext\下php_pgsql.dll存在
3、修改path环境变量,添加了postgresql的bin目录
4、将libpg.dll放至windows\system32下
5、重启apache多次
不好意思,仅有的一点积分已经用光了,所以只好请大家多多支持了。
cmd下,cd到php所在目录,之后在cmd下运行 php 看提示吧,却啥lib它会提示你,需要啥去pgsql下cpoy到windows\system32下,你只复制一个libpg.dll是不够的,好象复制好多个
如何在Windows7环境下安装 PHP
如果不是用windows的IIs做WEB服务器的话,一般步骤是这样的:
第一步:安装Apache服务。
第二步:MySQL的安装
第三步:安装PHP。
其实在Windows 7下进行PHP安装非常简单,由于我下的是PHP代码包,只要解压php-5.3.2-Win32-VC6-x86并重名为文件夹为php,将其复制到C盘目录下即可完成PHP安装。
第四步:配置Apache以支持PHP。
具体的做法,可以参考软件的文档,或是在网上找个教程看一下。
Windows 2008 下 PHP 开启 opcache 后频繁 500 错误解决方式
最近公司后台访问速度下降,操作卡顿,公司后台环境是 windows server 2008 + iis7 + php5.6,于是在参考网上解决方案后,觉得使用 opcache 最为方便,于是参考几篇配置示例文档后,在线部署了。经过一段时间体验后,发现确实快了很多,但是相应的出现了一个以前几乎没见过的问题,访问后台时经常性 500 错误,但是刷新页面就恢复正常了,将这个现象在网上搜了一番,确实存在这个问题,但是找了许多帖子也没有发现靠谱的解决方案,于是就搁置了这个问题,刷新页面重试也是可以忍受的。
后来,经公司运营反馈发现,500 错误发生的太频繁了,另外有时候刷新也不管用,因为后台有些页面会一次性批量请求后端接口,然后几乎都是 500,这个问题就有些严重了,于是重新开始在网上寻求解决方式。
搜索到两个方案如下:
在 Internet 信息服务(IIS)管理器下的应用程序池中选择应用,右键-高级设置-标识,将 ApplicationPoolIdentity 修改为 LocalSystem,经验证,失败。
在 PHP 手册中有这么一个配置项
另外,在评论中有下面这段话,
大致意思是当我们在 windows 平台下开启 opcache 时,你可能发现运行时出现随机 500 错误,然后在 php.ini 中添加一行配置 opcache.mmap_base = 0x20000000 可以解决。不幸的是,我不知道值“0x20000000”的意义,我只能告诉你这个值可以解决这个问题。
经过验证,成功解决 500 错误!
下面贴下我自己的 opcache 配置