用PHP呼叫C擴充套件整個配置過程(好辛苦呀)

2021-05-23 20:40:40 字數 2283 閱讀 2959

今天終於把c擴充套件加入到php中了,並且可以呼叫,廢話就不說了,看下文。

一、必須先要安裝apache和mysql,這兩個的安裝過程我就不說了。

二、安裝php

#mkdir /usr/local/php5

#./configure      --prefix=/usr/local/php5     --with-apxs2=/usr/local/apache2/bin/apxs     --with-mysql=/usr/lib64/mysql      --with-config-file-path=/usr/local/php5

#make

#make install

三、檢視php是否安裝成功

在apache的htdocs裡建立乙個檔名為:index.php

寫入內容 <?phpinfo()?>

儲存瀏覽http://localhost/index.php

顯示正確,安裝成功。

四、建立自己的c php擴充套件

進入到php的安裝包的ext目錄下

#cd /usr/software/php5-3.2/ext

#./ext_skel  --extname=mysqlc                            注意:這裡是建立裡擴充套件庫的名字,建立後,會在ext下有乙個mysqlc的目錄

#cd mysqlc

五、進行擴充套件庫的基礎修改和編碼操作

#vi config.m4

原始dnl php_arg_enable(mysqlc, whether to enable mysqlc support,

dnl make sure that the comment is aligned:

dnl [  --enable-mysqlc           enable mysqlc support])

修改後的

php_arg_enable(mysqlc, whether to enable mysqlc support,

make sure that the comment is aligned:

[  --enable-mysqlc           enable mysqlc support])

#vi mysqlc.c

在php_function(confirm_mysqlc_compiled)函式下面追加

php_function(mysqlc)

修改前const zend_function_entry mysqlc_functions =     /* must be the last line in mysqlc_functions */

};修改後

const zend_function_entry mysqlc_functions =     /* must be the last line in mysqlc_functions */

};#vi php_mysqlc.h

在php_function(confirm_mysqlc_compiled);下面追加

php_function(mysqlc);

到這裡,基本上你的擴充套件庫就寫完了,下面就要開始進行生成和安裝了

五、生成擴充套件庫

當前目錄在/usr/software/php5-3.2/ext/mysqlc

#/usr/local/php5/bin/phpize

#./configure --with-php-config=/usr/local/php5/bin/php-config

#make

#make install

執行完畢後,將會在/usr/local/php5/lib/php/extensions/no-debug-non-zts-版本號/mysqlc.so檔案

把mysqlc.so檔案複製到apache下的modules去

四、進行配置php.ini

然後進入到/usr/local/php5看有沒有php.ini,

如果沒有,複製安裝包裡的php.ini-production改名為php.ini

進入php.ini設定

1、short_open_tag = on

2、extension_dir = "/usr/local/apache2/modules/"

3、追加乙個extension=mysqlc.so

儲存php.ini,重啟apache

ok,擴充套件庫可以使用了

用C 擴充套件PHP

前端時間寫過乙個repl的php extension,記得當時在國內的中文 上,相關的資料真的很少,今天就拋磚引玉寫一些,希望對後來者有所幫助,那些基本的東西我就不贅述了,主要談談,php exitension和 php 之間的引數傳遞問題 先說說我寫的那個php extension,因為repl ...

PHP呼叫C語言擴充套件

執行環境 ubuntu server 14.04 php5.5.9 apache2 操作步驟 sudo apt get install php5 dev 2 解壓原始碼包到你的home目錄中,也可以你自己指定的目錄 tar czvf php 5.5.12.tar.gz 3 根據以下的命令進行輸入,用...

用 PHP 呼叫 MySQL 儲存過程

mysql 5.0 以上支援儲存過程。php 5.0 以上的 mysqli 系列函式可以支援操作 mysql 的儲存過程。以下是一些簡單的儲存過程和用 php 呼叫的示例。一 返回單個資料 1 2 header content type text html charset utf 8 3 4 hos...