『壹』 如何在windows下安裝phalcon框架php版本的擴展
windows下安裝phalcon框架php版本的擴展方法:
Phalcon是一套實現MVC架構的高性能PHP應用程序框架。最新版本2.0.0 Phalcon是以擴充的方式以C語言所編寫,因此Phalcon的執行速度高過其他PHP框架,並且消耗更少的資源,Phalcon是目前世界上速度最快的PHP框架。
工具
windows下php環境
windows系統
1.網路搜」phalcon",進入"phalcon"網站。
『貳』 phpstudy windows10環境下怎麼安裝php_intl.dll擴展
在phpstudy中將版本切換到php-5.4.45-nts+iis7/8(打開phpstudy->切換版本->選擇php-5.4.45-nts+iis7/8)
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
2
切換版本後,可能你的mysql啟不起來,沒關系,手動啟動一下就可以了(到你安裝mysql的bin目錄下點一下mysqld.exe,點擊後,會彈一個控制台界面,界面會自己關掉,關掉後mysql就運行好了)
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
在phpstudy上新增一個網站,我這里使用的這個域名是永久解析到了127.0.0.1的,所以可以隨便取個二級域名綁定你本地的網站。
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
打開你的iis管理器(win+R->輸入inetmgr->確定),准備添加「處理程序映射」
win10+iis10+phpStudy配置php開發環境
雙擊「處理程序映射」,然後左鍵點擊右上角「添加模塊映射...」
win10+iis10+phpStudy配置php開發環境
如下圖,填寫模塊信息,注意,請求路徑*.php的*不能少。
win10+iis10+phpStudy配置php開發環境
選擇可執行文件,即你php目錄下的php-cgi.exe
win10+iis10+phpStudy配置php開發環境
填寫好名稱,然後還要配置請求限制,如圖所示,選擇「文件或文件夾」,然後一路確定。
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
確定後,映射模塊列表裡有你添加的信息,說明添加模塊成功。
win10+iis10+phpStudy配置php開發環境
在IIS上添加一個網站,注意,綁定的埠為80埠,域名和phpstudy上綁定的一樣。
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
配置好默認文檔(index.php),其它的可以刪除。
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
win10+iis10+phpStudy配置php開發環境
配置好了默認文檔後,就可以訪問你的php網站了,因為我這個網站首頁還沒有內容,所以顯示的是登錄頁面,如下
win10+iis10+phpStudy配置php開發環境
『叄』 WIN下如何在PHP擴展里打開openssl支持
在windows系統中IIS環境的操作方式:
1、在c:\windows\php.ini中
將;extension=php_openssl.dll前面分號(注釋)去掉
2、復制php安裝目錄中的:
libeay32.dll
ssleay32.dll
至c:\windows\system32
3、復制PHP\ext目錄中的php_openssl.dll至c:\windows\system32
4、重啟IIS
其他操作方式:
windows下php開啟openssl
用ci的email類發郵件的時候發現來是出現這么一個錯誤:
unable to connect to ssl
(Unable to find the socket transport 「ssl」 – did you forget to enable it when you configured PHP?)
不過在php.ini里也沒有發現ssl的擴展,去apache里倒是有個ssl的擴展,不過一打開就啟動不成功(應該是需要配置一些東西才行),後來發現php文件夾下有openssl的擴展,只是安裝不成功,於是上網搜原因,最後終於解決了,有用資料如下:
1,要想開啟mcrypt支持,系統需要安裝了libmcrypt.dll庫。
這個一般用戶是沒有安裝過的,但不用擔心,PHP的windows發行包里已經給我們附帶了此文件,在PHP壓縮包的根目錄下即可找到,然後將其復制到%system%/system32目錄下即可。
2,要想開啟OpenSSL支持,系統需要安裝libeay32.dll和ssleay32.dll兩個庫。
如果你以前安裝過OpenSSL,那麼你的系統目錄中應該已經存在這兩個文件;如果沒有安裝,PHP的windows發行包里同樣附帶了這兩個文件,將其復制到%system%/system32目錄下即可。
—AppServ Win32如何打開openssl——————–
1.打開c:/windows,裡面有一個php.ini文件(AppServ居然將php的配置文件移到這里來!),然後在裡面搜索 ;extension=php_openssl.dll ,把前面的逗號去掉。
2.進入AppServ的安裝目錄,到php文件夾裡面,分別搜索 libeay32.dll 和 ssleay32.dll ,把它們復制到 c:/windows/system32 下面
3.重新啟動 Apache,就可以了,
您也可以向我們團隊發出請求,會有更專業的人來為您解答。
『肆』 如何在Windows下配置搭建PHP環境
一、安裝Apache,配置成功一個普通網站伺服器
運行下載好的「apache_2.0.55-win32-x86-no_ssl.msi」,出現如下界面:
『伍』 如何用c語言在windows平台上開發php extension
如何使用C語言開發PHP擴展。
函數功能:php裡面的整數是有符號數,其內部實現其實就是long,不是unsigned long。對於32位機器來說,php最大能表示的整數就是2^31-1了,一般在應用中碰到大於2^31-1而小於2^32的數就只能用字元串來表示了。對於mixed int_ext(string in)來說,如果字元串in表示的整數小於2^31-1,那麼就返回整數,如果大於就返回字元串。
開發擴展步驟如下:(首先需要下載php的源碼,這里下載的是php-5.3.14)
1,建立擴展骨架
[plain] view plainprint?
01.cd php-5.3.14/ext
02../ext_skel --extname=int_ext
cd php-5.3.14/ext
./ext_skel --extname=int_ext
2,修改編譯參數
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi config.m4
cd php-5.3.14/ext/int_ext
vi config.m4去掉 PHP_ARG_ENABLE(int_ext, whether to enable int_ext support 和
[ --enable-int_ext Enable int_ext support]) 兩行前面的dnl 修改後為:
[plain] view plainprint?
01.1. dnl Otherwise use enable:
02.2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
03.3. dnl Make sure that the comment is aligned:
04.4. [ --enable-int_ext Enable int_ext support])
1. dnl Otherwise use enable:
2. PHP_ARG_ENABLE(int_ext, whether to enable int_ext support,
3. dnl Make sure that the comment is aligned:
4. [ --enable-int_ext Enable int_ext support])
3,編寫C代碼
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi php_int_ext.h
03.#在 PHP_FUNCTION(confirm_int_ext_compiled); 後面新增一行 PHP_FUNCTION(int_ext);
cd php-5.3.14/ext/int_ext
vi php_int_ext.h
#在 PHP_FUNCTION(confirm_int_ext_compiled); 後面新增一行 PHP_FUNCTION(int_ext);[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02.vi int_ext.c
03.#在PHP_FE(confirm_int_ext_compiled, NULL) 後面添加 PHP_FE(int_ext, NULL)添加後為:
04.1. zend_function_entry int_ext_functions[] = {
05.2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
06.3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
07.4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
08.5. };
cd php-5.3.14/ext/int_ext
vi int_ext.c
#在PHP_FE(confirm_int_ext_compiled, NULL) 後面添加 PHP_FE(int_ext, NULL)添加後為:
1. zend_function_entry int_ext_functions[] = {
2. PHP_FE(confirm_int_ext_compiled, NULL) /* For testing, remove later. */
3. PHP_FE(int_ext, NULL) /* For testing, remove later. */
4. {NULL, NULL, NULL} /* Must be the last line in int_ext_functions[] */
5. };
核心代碼:
[plain] view plainprint?
01.PHP_FUNCTION(int_ext)
02.{
03. char * str = NULL;
04. int str_len;
05. int argc = ZEND_NUM_ARGS();
06. if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
07. return ;
08. char * result;
09. int result_length = str_len;
10. result = (char *) emalloc(result_length + 1);
11. memcpy(result,str,result_length);
12. unsigned long result_num = strtoul(result, NULL, 10);
13. int sizeoflong sizeof(long);
14. unsigned long max_long = 1 << (sizeoflong * 8 -1);
15. if(result_num < max_long)
16. {
17. RETURN_LONG(result_num);
18. }
19. else
20. {
21. RESULT_STRINGL(result, result_length, 0);
22. }
23.}
PHP_FUNCTION(int_ext)
{
char * str = NULL;
int str_len;
int argc = ZEND_NUM_ARGS();
if(zend_parse_parameters(argc TSRMLS_CC,"s",&str,&str_len) == FAILURE)
return ;
char * result;
int result_length = str_len;
result = (char *) emalloc(result_length + 1);
memcpy(result,str,result_length);
unsigned long result_num = strtoul(result, NULL, 10);
int sizeoflong sizeof(long);
unsigned long max_long = 1 << (sizeoflong * 8 -1);
if(result_num < max_long)
{
RETURN_LONG(result_num);
}
else
{
RESULT_STRINGL(result, result_length, 0);
}
}
4,編譯
[plain] view plainprint?
01.cd php-5.3.14/ext/int_ext
02./usr/local/php/bin/pphpize
03../configure --with-php-config=/usr/local/php/bin/php-config
04.make
05.make install
cd php-5.3.14/ext/int_ext
/usr/local/php/bin/pphpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
此時會產生一個so文件: /usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/int_ext.so
修改php.ini 添加擴展extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
[int_ext]
extension = int_ext.so
5,測試
[plain] view plainprint?
01.$a = int_ext("12345678900");
02.var_mp($a);
03.$a = int_ext("123456789");
04.var_mp($a);
$a = int_ext("12345678900");
var_mp($a);
$a = int_ext("123456789");
var_mp($a);
結果輸出:
[plain] view plainprint?
01.string(11) "12345678900"
02.int(123456789)
『陸』 windows下開發並編譯PHP擴展的方法
現在就簡單說一在WINDOWS下開發PHP擴展的步驟:
首先需要准備的軟體有:
cygwin
安裝路徑e:\app\cygwin
visual
studio
C++
6.0,
修改環境變數,把已經安裝好的PHP路徑設置為環境變數。在這里,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變數後面加上這個安裝目錄。方便一會兒使用php.exe。
PHP源代碼,這里假設為e:\c_source_code\php-5.2.5
1、修改文件
「PHP源文件目錄/ext/ext_skel_win32.php」,在這里就是:E:\c_source_code\php-5.2.5\ext,其中主要是修改其中的cygwin路徑。$cygwin_path
=
'e:\app\cygwin\bin';
把$cygwin_path修改為你實際安裝cygwin的路徑。
2、在源代碼ext目錄也就是e:\c_source_code\php-5.2.5\ext下,執行
php
ext_skel_win32.php
--extname=<EXT_NAME>,此時會在ext目錄下生成<EXT_NAME>目錄,這個目錄就是我們將要進行PHP擴展開發的框架。比如你運行php.exe
ext_skel_win32.php
--extname=foo,會在ext目錄下生成foo目錄。
3、將php-root\dev\php5ts.lib拷貝至
「ext/<EXT_NAME>」中。比如你要開發的PHP擴展名為foo,那麼就需要把php-root\dev\php5ts.lib拷貝到PHP源文件目錄\ext\foo中。
4、修改foo.c內容,編寫我們需要的C代碼。
5、進入<EXT_NAME>目錄,打開<EXT_NAME>.dsp。
設置VC6工程,
設置菜單「組建」->「移除工程配置」,選中「Win
32
Release_TS」,
設置菜單「工程」,選中「Win
32
Release_TS」
打開Tab「連接」,設置「輸出文件名」中的目錄,
[可選]打開Tab「C/C++」,增加「預處理器定義」「,COMPILE_DL_<EXT_NAME>」(注意全大寫,默認加入的),取消預定義「LIBZEND_EXPORTS」(否則不可引入zend函數)。
6、設置好以後,進行編譯,會生成一個dll文件,文件名是<EXT_NAME>.dll,比如在我們的例子中就為foo.dll
把foo.dll拷到e:\app\ext目錄下,並在php.ini里加上一行extension=foo.dll,重啟一下apache,查看phpinfo();,會發現我們的PHP擴展foo()已經載入進來,已經可以使用這個foo擴展了。