‘壹’ 如何在windows下安装phalcon框架php版本的扩展
windows下安装phalcon框架php版本的扩展方法:
Phalcon是一套实现MVC架构的高性能PHP应用程序框架。最新版本2.0.0 Phalcon是以扩充的方式以C语言所编写,因此Phalcon的执行速度高过其他PHP框架,并且消耗更少的资源,Phalcon是目前世界上速度最快的PHP框架。
工具
windows下php环境
windows系统
1.网络搜”phalcon",进入"phalcon"网站。
‘贰’ phpstudy windows10环境下怎么安装php_intl.dll扩展
在phpstudy中将版本切换到php-5.4.45-nts+iis7/8(打开phpstudy->切换版本->选择php-5.4.45-nts+iis7/8)
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
2
切换版本后,可能你的mysql启不起来,没关系,手动启动一下就可以了(到你安装mysql的bin目录下点一下mysqld.exe,点击后,会弹一个控制台界面,界面会自己关掉,关掉后mysql就运行好了)
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
在phpstudy上新增一个网站,我这里使用的这个域名是永久解析到了127.0.0.1的,所以可以随便取个二级域名绑定你本地的网站。
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
打开你的iis管理器(win+R->输入inetmgr->确定),准备添加“处理程序映射”
win10+iis10+phpStudy配置php开发环境
双击“处理程序映射”,然后左键点击右上角“添加模块映射...”
win10+iis10+phpStudy配置php开发环境
如下图,填写模块信息,注意,请求路径*.php的*不能少。
win10+iis10+phpStudy配置php开发环境
选择可执行文件,即你php目录下的php-cgi.exe
win10+iis10+phpStudy配置php开发环境
填写好名称,然后还要配置请求限制,如图所示,选择“文件或文件夹”,然后一路确定。
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
确定后,映射模块列表里有你添加的信息,说明添加模块成功。
win10+iis10+phpStudy配置php开发环境
在IIS上添加一个网站,注意,绑定的端口为80端口,域名和phpstudy上绑定的一样。
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
配置好默认文档(index.php),其它的可以删除。
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
win10+iis10+phpStudy配置php开发环境
配置好了默认文档后,就可以访问你的php网站了,因为我这个网站首页还没有内容,所以显示的是登录页面,如下
win10+iis10+phpStudy配置php开发环境
‘叁’ WIN下如何在PHP扩展里打开openssl支持
在windows系统中IIS环境的操作方式:
1、在c:\windows\php.ini中
将;extension=php_openssl.dll前面分号(注释)去掉
2、复制php安装目录中的:
libeay32.dll
ssleay32.dll
至c:\windows\system32
3、复制PHP\ext目录中的php_openssl.dll至c:\windows\system32
4、重启IIS
其他操作方式:
windows下php开启openssl
用ci的email类发邮件的时候发现来是出现这么一个错误:
unable to connect to ssl
(Unable to find the socket transport “ssl” – did you forget to enable it when you configured PHP?)
不过在php.ini里也没有发现ssl的扩展,去apache里倒是有个ssl的扩展,不过一打开就启动不成功(应该是需要配置一些东西才行),后来发现php文件夹下有openssl的扩展,只是安装不成功,于是上网搜原因,最后终于解决了,有用资料如下:
1,要想开启mcrypt支持,系统需要安装了libmcrypt.dll库。
这个一般用户是没有安装过的,但不用担心,PHP的windows发行包里已经给我们附带了此文件,在PHP压缩包的根目录下即可找到,然后将其复制到%system%/system32目录下即可。
2,要想开启OpenSSL支持,系统需要安装libeay32.dll和ssleay32.dll两个库。
如果你以前安装过OpenSSL,那么你的系统目录中应该已经存在这两个文件;如果没有安装,PHP的windows发行包里同样附带了这两个文件,将其复制到%system%/system32目录下即可。
—AppServ Win32如何打开openssl——————–
1.打开c:/windows,里面有一个php.ini文件(AppServ居然将php的配置文件移到这里来!),然后在里面搜索 ;extension=php_openssl.dll ,把前面的逗号去掉。
2.进入AppServ的安装目录,到php文件夹里面,分别搜索 libeay32.dll 和 ssleay32.dll ,把它们复制到 c:/windows/system32 下面
3.重新启动 Apache,就可以了,
您也可以向我们团队发出请求,会有更专业的人来为您解答。
‘肆’ 如何在Windows下配置搭建PHP环境
一、安装Apache,配置成功一个普通网站服务器
运行下载好的“apache_2.0.55-win32-x86-no_ssl.msi”,出现如下界面:
‘伍’ 如何用c语言在windows平台上开发php extension
如何使用C语言开发PHP扩展。
函数功能:php里面的整数是有符号数,其内部实现其实就是long,不是unsigned long。对于32位机器来说,php最大能表示的整数就是2^31-1了,一般在应用中碰到大于2^31-1而小于2^32的数就只能用字符串来表示了。对于mixed int_ext(string in)来说,如果字符串in表示的整数小于2^31-1,那么就返回整数,如果大于就返回字符串。
开发扩展步骤如下:(首先需要下载php的源码,这里下载的是php-5.3.14)
1,建立扩展骨架
[plain] view plainprint?
01.cd php-5.3.14/ext
02../ext_skel --extname=int_ext
cd php-5.3.14/ext
./ext_skel --extname=int_ext
2,修改编译参数
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi config.m4
cd php-5.3.14/ext/int_ext
vi config.m4去掉 PHP_ARG_ENABLE(int_ext, whether to enable int_ext support 和
[ --enable-int_ext Enable int_ext support]) 两行前面的dnl 修改后为:
[plain] view plainprint?
01.1. dnl Otherwise use enable:
02.2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
03.3. dnl Make sure that the comment is aligned:
04.4. [ --enable-int_ext Enable int_ext support])
1. dnl Otherwise use enable:
2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
3. dnl Make sure that the comment is aligned:
4. [ --enable-int_ext Enable int_ext support])
3,编写C代码
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi php_int_ext.h
03.#在 PHP_FUNCTION(confirm_int_ext_compiled); 后面新增一行 PHP_FUNCTION(int_ext);
cd php-5.3.14/ext/int_ext
vi php_int_ext.h
#在 PHP_FUNCTION(confirm_int_ext_compiled); 后面新增一行 PHP_FUNCTION(int_ext);[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi int_ext.c
03.#在PHP_FE(confirm_int_ext_compiled, NULL) 后面添加 PHP_FE(int_ext, NULL)添加后为:
04.1. zend_function_entry int_ext_functions[] = {
05.2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
06.3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
07.4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
08.5. };
cd php-5.3.14/ext/int_ext
vi int_ext.c
#在PHP_FE(confirm_int_ext_compiled, NULL) 后面添加 PHP_FE(int_ext, NULL)添加后为:
1. zend_function_entry int_ext_functions[] = {
2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
5. };
核心代码:
[plain] view plainprint?
01.PHP_FUNCTION(int_ext)
02.{
03. char * str = NULL;
04. int str_len;
05. int argc = ZEND_NUM_ARGS();
06. if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
07. return ;
08. char * result;
09. int result_length = str_len;
10. result = (char *) emalloc(result_length + 1);
11. memcpy(result,str,result_length);
12. unsigned long result_num = strtoul(result, NULL, 10);
13. int sizeoflong sizeof(long);
14. unsigned long max_long = 1 << (sizeoflong * 8 -1);
15. if(result_num < max_long)
16. {
17. RETURN_LONG(result_num);
18. }
19. else
20. {
21. RESULT_STRINGL(result, result_length, 0);
22. }
23.}
PHP_FUNCTION(int_ext)
{
char * str = NULL;
int str_len;
int argc = ZEND_NUM_ARGS();
if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
return ;
char * result;
int result_length = str_len;
result = (char *) emalloc(result_length + 1);
memcpy(result,str,result_length);
unsigned long result_num = strtoul(result, NULL, 10);
int sizeoflong sizeof(long);
unsigned long max_long = 1 << (sizeoflong * 8 -1);
if(result_num < max_long)
{
RETURN_LONG(result_num);
}
else
{
RESULT_STRINGL(result, result_length, 0);
}
}
4,编译
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02./usr/local/php/bin/pphpize
03../configure --with-php-config=/usr/local/php/bin/php-config
04.make
05.make install
cd php-5.3.14/ext/int_ext
/usr/local/php/bin/pphpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
此时会产生一个so文件: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/int_ext.so
修改php.ini 添加扩展extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
[int_ext]
extension = int_ext.so
5,测试
[plain] view plainprint?
01.$a = int_ext("12345678900");
02.var_mp($a);
03.$a = int_ext("123456789");
04.var_mp($a);
$a = int_ext("12345678900");
var_mp($a);
$a = int_ext("123456789");
var_mp($a);
结果输出:
[plain] view plainprint?
01.string(11) "12345678900"
02.int(123456789)
‘陆’ 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扩展了。