本文目錄一覽:
- 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
原創文章,作者:EABL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131813.html