今天終於把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...