本文目录一览:
- 1、如何编写一个PHP的C扩展
- 2、php5.4怎么开启php的opcache模块
- 3、wampserver php5.4.16 怎么安装 Zend Guard Loader
- 4、apache http server怎么部署php
- 5、php5.4.6 (fpm-fcgi)指的什么意思?偶是菜鸟~求指点
- 6、linux centos 7 下用yum 安装iso镜像里自带的php5.4.16版本的但是没有php-fqm文件不知道怎么重启php服务
如何编写一个PHP的C扩展
一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13
一、首先下载PHP源码包,假设源码包目录为:/software/php-5.2.13
# cd /software/php-5.2.13/ext
二、假设我们要开发一个名为caleng_module的扩展,该扩展包含两个函数:a--处理两个整型相加和b-处理字符串重复输出;
1、首先编写一个函数定义文件,该文件编写函数原型后缀为def,假设为:caleng_module.def
int a(int x, int y)
string b(string str, int n)
2、通过扩展骨架生成器,将在ext目录下自动建立扩展目录caleng_module
# ./ext_skel --extname=caleng_module --proto=caleng_module.def
3、修改配置文件: # vim /software/php-5.2.13/ext/caleng_module/config.m4,将如下行的注释标签"dnl"去掉,修改后如下所示:
PHP_ARG_ENABLE(myfunctions, whether to enable myfunctions support,
Make sure that the comment is aligned:
[ --enable-myfunctions Enable myfunctions support])
4、完善函数a和b的功能: # vim /software/php-5.2.13/ext/caleng_module/caleng_module.c
PHP_FUNCTION(a)
{
int x, y, z;
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc TSRMLS_CC, "ll", x, y) == FAILURE)
return;
z = x + y;
RETURN_LONG(z);
}
PHP_FUNCTION(b)
{
char *str = NULL;
int argc = ZEND_NUM_ARGS();
int str_len;
long n;
char *result;
char *ptr;
int result_length;
if (zend_parse_parameters(argc TSRMLS_CC, "sl", str, str_len, n) == FAILURE)
return;
result_length = str_len * n;
result = (char *) emalloc(result_length + 1);
ptr = result;
while (n--) {
memcpy(ptr, str, str_len);
ptr += str_len;
}
*ptr = '\0';
RETURN_STRINGL(result, result_length, 0);
}
三、编译安装,假设php的安装目录为:/usr/localhost/webserver/php
# cd /software/php-5.2.13/ext/caleng_module
# /usr/localhost/webserver/php/bin/phpize
# ./configure --with-php-config=/usr/localhost/webserver/php/bin/php-config
# make
# make install
现在将在/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613目录下生成caleng_module.so文件
在php.ini配置文件中加入: extension=caleng_module.so.
搞定收工
php5.4怎么开启php的opcache模块
1、本文假设读者已经有了一定的php编程基础,并且了解php环境配置,熟悉wamp集成开发环境。
2、下载php_opcache.dll文件,必须下载和php兼容的版本!(比如我的php5.4.16是vc9编译的,这个dll文件也必须是vc9编译的版本)。下载地址:
3、将php_opcache.dll放进php/ext目录下(比如:C:\wamp\bin\php\php5.4.16\ext)。
4、打开php.ini,添加如下配置(注意路径要修改成你自己的):
zend_extension = "c:/wamp/bin/php/php5.4.16/ext/php_opcache.dll"
extension = php_opcache.dll
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
5、重启wamp。
6、查看opcache是否开启成功,可以通过phpinfo();函数查看opcache的相关信息。
注意事项
开启opcache后,更改PHP代码,程序运行结果不会立刻有变化(有缓存嘛),缓存时间过期了就更新了。
如果想立刻看到更新后的效果,可以重启下apache服务器。
建议开发环境下,关闭zend opcache功能,便于调试。
如有更多问题去后盾网论坛问题救助专区,希望我的回答对你有帮助!
wampserver php5.4.16 怎么安装 Zend Guard Loader
wamp是没办法安装loader的,因为他用的是php的ts版本。必须使用php的nts版本才行。推荐使用phpstudy集成包,切换到php5.4n或php5.3n自动配好loader。n就表示nts版本。如图phpstudy支持26种组合自由切换
apache http server怎么部署php
下载和配置php
下载php: php-5.4.16-Win32-VC9-x86.zip
下载apache:
一、首先将php5内的所有dll文件(包括ext文件夹内的dll文件)拷贝至Windows系统的system32文件夹下,如
C:WINDOWS\system32。这一步是为了让windows系统获得PHP运行的dll文件,其意义跟指定系统环境变量一样,只不过为了简单起
见,而将dll文件直接拷贝至windows系统目录。
二、将“php.ini-development”更名为“php.ini”。php.ini是记录PHP配置信息的文件。用编辑器打开php.ini,里面的配置如下格式:
;extension=php_bz2.dll
前面有“;”表示该配置无效,因此我们要把我们需要的配置项前面的“;”号去掉:
extension=php_curl.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_sqlite.dll
像 extension=php_gd2.dll 表示让 PHP 开启对 GD2 图片库的支持。上面这些是比较常用的配置,大部分主机商也支持。
三、设置扩展支持目录
如果按照以上设置后,系统仍提示不支持扩展模块如不支持 mysql 等,那么可以在 php.ini 文件里手动设置扩展目录:
extension_dir = "E:/php/ext"
一、支持 PHP 解析:
搜索到“#php for apache in module”部分,加入(或更改为)如下配置:
LoadModule php5_module "D:/Program Files/php-5.4.8-Win32-VC9-x86/php5apache2_2.dll"
PHPIniDir "D:/Program Files/php-5.4.8-Win32-VC9-x86"
AddType application/x-httpd-php .php
二、更改默认解析目录:
搜索关键字“# DocumentRoot”部分,加入(或更改为)如下配置:
DocumentRoot "E:/html"
在下面不远处,有这么一行:# This should be changed to whatever you set DocumentRoot to
将 Directory "C:/***" 更改为对应的目录配置:
Directory "E:/html"
注意:可以根据您实际情况,更改 Apache 的解析路径指向您实际的解析路径。
做好上面两点配置之后,通过点击“开始-程序- Apache HTTP Server 2.2.22”里面的选项启动 Apache Web 服务或重启 Apache Web服务以使配置生效。
测试 PHP 支持
打开编辑器,新建一个php文件,键入如下代码:
?php
phpinfo();
?
将该文件保存至 E:/html 文件夹内并命名为 phpinfo.php 。在浏览器地址栏里输入:访问该文件,浏览器页面出来的应该是 PHP 的系统信息。
php5.4.6 (fpm-fcgi)指的什么意思?偶是菜鸟~求指点
就个人的使用体验,如果你迷惑于PHP安装版本的选择,可以直接安装PHP整合安装包,比如:XAMPP/ WampServer.
以下是相关资料解释:
PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 下载得到。
PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。
现在我们可以在最新的PHP 5.3.2的源码树里下载得到直接整合了PHP-FPM的分支,据说下个版本会融合进PHP的主分支去。相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼。
PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多有点,所以被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。
linux centos 7 下用yum 安装iso镜像里自带的php5.4.16版本的但是没有php-fqm文件不知道怎么重启php服务
systemctl restart php-fpm.service #这条命令是重启php服务
下面是一个比较靠谱的php安装步骤:
先删除已有的php版本 ,执行下面的命令删除php
yum remove php-common
然后像安装那样问你是否继续的,输入yes即可
添加 yum 源
CentOS 6.x 的源
# rpm -Uvh
# rpm -Uvh
安装 PHP
# yum install --enablerepo=remi,remi-php56 php php-opcache php-pecl-apcu php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-pdo php-pear php-fpm php-cli php-xml php-bcmath php-process php-gd php-common
注:安装5.6版本为remi-php56,安装5.5版本为remi-php55