php 5.3.6 中 php-fpm 配置成服務啟動從php5.3.3開始 源碼中開始包含 php-fpm,不用專門再打補丁了,只需要解開源碼直接configure,關於php-fpm的編譯參數有 –enable-fpm –with-fpm-user=www –with-fpm-group=www –with-libevent-dir=libevent位置。這個php-fpm 不再支援 php-fpm 補丁具有的
今天搭建好lemp後,使用phpinfo函數查看php是否安裝成功,結果顯示空白頁面,html的頁面正常顯示,後將php.ini中short_open_tag開啟,訪問正常。short_open_tag在php-5.3.8中預設關閉,導致我們使用php短標籤“<?
wget http://www.ftphp.com/scws/down/scws-1.2.0.tar.bz2tar jxf scws-1.2.0.tar.bz2cd scws-1.2.0./configure --prefix=/opt/scwsmake && make installcd phpext//opt/php-5.3.8/bin/phpize./configure --with-scws=/opt/scws --with-php-config=/opt/php-5.3
1.下載pdo_mysql包wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz2.追加編譯php,使其module目錄下生產pdo_mysql.so的檔案tar zxf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/tcrm/php/bin/php-config
1. php安裝tar zxf php-5.3.2 –C /usr/srccd /usr/src/php-5.3.2 ./configure --prefix=/usr/local/php5 --enable-force-cgi-redirect --enable-fastcgi make;make install cp php.ini.dist /etc/php.ini cd
一、xajax與其它ajax架構的比較xajax功能很簡單,但很靈活!~它不象其它一些大的架構,功能確實強大,但執行速度不敢恭維。。功能雖多,但不夠靈活。api多,學起來簡直如同學習一門新的語言。二、xajax功能介紹xajax的功能比較簡單,但就因為簡單,所以靈活。同時,這也要求使用者要對javascrīpt / vbs 用戶端指令碼有一定的瞭解。因為它的功能是比較活的。可以說單純使用xajax,什麼也做不出,但配合js / vbs
有趣的流php常被提起的一個特性是流上下文. 這個可選的參數甚至在使用者空間大多數流建立相關的函數中都可用, 它作為一個泛化的架構用於向給定封裝器或流實現傳入/傳出額外的資訊.上下文每個流的上下文包含兩種內部訊息類型. 首先最常用的是上下文選項. 這些值被安排在上下文中一個二維數組中, 通常用於改變流封裝器的初始化行為. 還有一種則是上下文參數, 它對於封裝器是未知的, 當前提供了一種方式用於在流封裝層內部的事件通知.php_stream_context *php_stream_context_
實現流php的流最強力的特性之一是它可以訪問眾多資料來源: 普通檔案, 壓縮檔, 網路透明通道, 加密網路, 具名管道以及域通訊端, 它們對於使用者空間以及內部都是統一的API.php流的表象之下對於給定的流執行個體, 比如檔案流和網路流, 它們的不同在於上一章你使用的流建立函數返回的php_stream結構體中的ops成員.typedef struct _php_stream { ... php_stream_ops *ops; ... }
訪問流PHP使用者空間中所有的檔案I/O處理都是通過php 4.3引入的php流封裝層處理的. 在內部, 擴充代碼可以選擇使用stdio或posix檔案處理和本地檔案系統或伯克利域通訊端進行通訊, 或者也可以調用和使用者空間流I/O相同的API.流的概覽通常, 直接的檔案描述符相比調用流封裝層消耗更少的CPU和記憶體; 然而, 這樣會將實現某個特定協議的所有工作都堆積到作為擴充開發人員的你身上. 通過掛鈎到流封裝層, 你的擴充代碼可以透明的使用各種內建的流封裝, 比如HTTP, FTP,
INI設定和上一章你看到的超級全域變數以及持久化常量一樣, php.ini值必須在擴充的MINIT代碼塊中定義. 然而, 和其他特性不同的是, INI選項的定義僅僅由簡單的啟動/終止線組成.PHP_MINIT_FUNCTION(sample4) { REGISTER_INI_ENTRIES(); return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(sample4) { UNREGISTER_INI_ENTRIES();
啟動, 終止, 以及其中的一些點在本書中, 你已經多次使用MINIT函數在php載入你擴充的共用庫時執行初始化任務. 在第1章"php的生命週期"中, 你還學習了其他三個啟動/終止函數, 與MINIT對應的是MSHUTDOWN, 另外還有一對RINIT/RSHUTDOWN方法在每個頁面請求啟動和終止時被調用.生命週期除了這四個直接連結到模組結構的函數外, 還有兩個函數僅用於線程環境, 用來處理每個線程的啟動和終止, 以及它們使用的似有儲存空間.開始之前,
資源資料類型迄今為止, 你都是工作在非常基礎的使用者空間資料類型上, 字串, 數值, TRUE/FALSE等值. 即便上一章你已經開始接觸數組了, 但也只是收集這些基礎資料類型的數組.複雜的結構體現實世界中, 你通常需要在更加複雜的資料集合下工作, 通常涉及到晦澀的結構體指標. 一個常見的晦澀的結構體指標樣本就是stdio的檔案描述符, 即便是在C語言中也只是一個指標.#include <stdio.h> int main(void) { FILE *fd;
在數組和雜湊表上工作在C語言中, 有兩種不同的基礎方法用來在一個結構體中儲存任意數量的獨立資料元素. 兩種方法都有贊成者和反對者.向量 Vs. 鏈表應用的編寫通常基於特定類型資料的特性的選擇, 需要儲存多少資料, 以及需要多快速度的檢索. 為了能夠有對等的認知, 我們先來看看簡單的看看這些儲存機制.向量向量是一塊連續的記憶體空間, 它們包含的資料有規律的間隔. 向量最常見的例子就是字串變數(char *或char []), 它包含了一個接著一個的字元(位元組)序列.char foo[4] = &
除了幾個"預覽"的例外, 你迄今處理的擴充函數都很簡單, 只有返回. 然而, 多數函數並非只有一個目的. 你通常會傳遞一些參數, 並希望接收到基於值和其他附加處理的有用的響應.zend_parse_parameters()的自動類型轉換和上一章你看到的傳回值一樣, 參數的值也是圍繞著對zval引用的間訪展開的.
你的第一個擴充每一個php擴充的構建至少需要兩個檔案: 一個configuration檔案, 它告訴編譯期要構建哪些檔案以及需要什麼外部的庫, 還需要至少一個源檔案, 它執行實際的工作.剖析擴充實際上, 通常會有第二個或第三個設定檔, 以及一個或多個標頭檔. 對於你的第一個擴充, 你需要添加每種類型的一個檔案並使用它們工作.設定檔要開始了, 首先在你的php原始碼分類樹的ext/目錄下建立名為sample的目錄. 實際上這個新的目錄可以放在任何地方,
安裝構建環境現在你可能至少已經有一個已安裝的php, 並且已經使用它做基於web的應用開發了. 你可能已經從php.net下載了win32構建並運行在iis或windows版的apache上, 或者使用你的*nix(linux, bsd, 或其他遵循POSIX的發行)發行版的包管理系統安裝了第三方建立的二進位.構建php除非你是下載源碼包自己編譯, 否則你肯定會錯過一些知識點.*nix工具C開發人員工具集中必不可少的第一個工具是C的編譯器. 你的發行版中可能會預設包含一個, 如果幸運,
php的記憶體管理php和c最重要的區別就是是否控制記憶體指標.記憶體在php中, 設定一個字串變數很簡單: <?php $str = 'hello world'; ?>, 字串可以自由的修改, 拷貝, 移動. 在C中, 則是另外一種方式, 雖然你可以簡單的用靜態字串初始化: char *str = "hello world"; 但是這個字串不能被修改, 因為它存在於程式碼片段. 要建立一個可維護的字串, 你需要分配一塊記憶體,
php的生命週期在常見的webserver環境中, 你不能直接啟動php解譯器; 一般是啟動apache或其他webserver, 由它們載入php處理需要處理的指令碼(請求的.php文檔).一切都從sapi開始儘管看起來有所不同, 但實際上CLI的行為和web方式一致. 在命令列中鍵入php命令將啟動"命令列sapi", 它實際上就像一個設計用於服務單請求的迷你版webserver. 當指令碼運行完成後,
最近公司內部的architecture組正在熱烈討論AJAX,最後難免會談到如何跨域這個問題,因為從AJAX 誕生那天起,XMLHttprequest對象在firefox下不能跨域請求的問題就一直存在,等待瀏覽器們去解決這 個問題顯然不太現實,聰明的Web開發人員們早就想了一系列的方法來解決這個問題,下面列舉兩個比較 不錯的方法:1. 使用中介層過渡的方式:中間過渡,很明顯,就是在AJAX與不同域的伺服器進行通訊的中間加一層過渡,這一層過渡可以是PHP
如何在PHP中判斷一個網頁請求是ajax請求還是普通請求?你可以通過傳遞參數的方法來 實現,例如使用如下網址請求: /path/to/pkphp.com/script.php?ajax在PHP指令碼中使用如下方法判斷:if(isset($_GET['ajax'])) {…這是一個ajax請求,然後…}else {…這不是一個ajax請求,然後…}通過傳遞_GET參數的方法簡單實現了網頁請求的判斷。但是如果需要這樣的功能,這個