用PHP調用C擴充整個配置過程(好辛苦呀)

來源:互聯網
上載者:User

今天終於把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){
     zend_printf("helloword c!!");
}

修改前
const zend_function_entry mysqlc_functions[] = {
    PHP_FE(confirm_mysqlc_compiled,    NULL)        /* For testing, remove later. */
    {NULL, NULL, NULL}    /* Must be the last line in mysqlc_functions[] */
};

修改後
const zend_function_entry mysqlc_functions[] = {
    PHP_FE(confirm_mysqlc_compiled,    NULL)        /* For testing, remove later. */
    PHP_FE(mysqlc,NULL)
    {NULL, NULL, NULL}    /* 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,擴充庫可以使用了

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.