<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 下載php源代碼 * 官網下載:https://secure.php.net/downloads.php * 或GITHUB:git clone http://github.com/php/php-src --- ## 配置選項講解:`./configure --help | less` 使用`--enable-NAME`和`--disable-NAME`開關編譯哪些擴展和SAPI . 如果擴展或SAPI具有外部依賴關系,則需要使用`--with-NAME`和`--without-NAME`. 如果NAME所需的庫 不在默認位置(例如,因為您自己編譯),則可以使用`--with-NAME = DIR`指定其位置. 如果選項是`--enable-NAME`或`--with-NAME`說明該選項默認是關閉的.如果是`--disable-NAME`或`--without-NAME`說明該選項默認是開啟的. [引用鏈接](https://segmentfault.com/q/1010000009174725) * enable 是啟用 PHP 源碼包自帶,但是默認不啟用的擴展,比如 ftp 和 exif 擴展。with 是指定擴展依賴的資源庫的位置,如果是默認位置,就可以留空。 * php 的擴展分為靜態編譯和動態編譯兩種,靜態編譯就是隨著PHP的源碼一起編譯安裝,也就是 --enable 和 --with 啟用的擴展。動態編譯就是在一個已經可以使用的 PHP 環境下,使用 phpize 命令來給 php 增加擴展的方式,這種方式就是生成的 so 文件。所以想要把擴展編譯進 php 內核,就需要和 php 一起編譯安裝。 * php源碼包ext目錄下的就是官方默認支持的擴展,還有一部分就是 pecl 庫里的擴展,pecl 的一部分擴展也是官方支持的,另一部分是第三方開發者支持的。 * 把擴展跟隨php一起編譯安裝,也就是 configure 命令 ##### ~~例如:~~ ./configure --prefix=/usr/local/php --enable-opcache \ --with-mysqli \ --with-pdo-mysql=mysqlnd \ --enable-mysqlnd \ --enable-inline-optimization \ --enable-sockets \ --enable-zip \ --enable-calendar \ --enable-bcmath \ --enable-soap \ --enable-fpm \ --with-zlib \ --with-iconv \ --with-gd \ --with-xmlrpc \ --enable-mbstring \ --without-sqlite3 \ --without-pdo-sqlite \ --with-curl \ --enable-ftp \ --with-mcrypt \ --enable-pcntl \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --disable-ipv6 \ --disable-debug \ --with-openssl \ --disable-maintainer-zts \ ##### 比如 configure 命令行可能看起來象這樣: $ ./configure --prefix=/where/to/install/php --enable-debug --enable-maintainer-zts --enable-cgi --enable-cli --with-mysql=/path/to/mysql ## 我們要進行的配置和編譯命令: ./configure --disable-all --enable-cli --enable-debug (--enable-debug啟用調試模式,具有多重效果: 編譯將使用 -g運行以生成包括行號、變量的類型和作用域、函數名字、函數參數和函數的作用域等源文件特性的調試信息. 另外使用-O0,會讓gcc編譯時不對代碼優化. 此外,調試模式定義了 ZEND_DEBUG宏,它將啟動引擎中的各種調試助手.除其他事項外,還將報告內存泄漏以及某些數據結構的不正確使用.) make -jN (N為CPU數量,作用:make --help查看) ## 導入eclipse并配置 1: 右擊左側欄目空白處,點擊New -> Project -> c/c++ -> makefile project with existing code ->,再選擇PHP源代碼目錄,同時選擇GNU autotools toolchain -> finish 2: 點擊菜單欄RUN->run configurations 在彈出窗口雙擊c/c++ application添加一個配置,在右側標簽點擊search project 然后選擇php并確定.點擊arguments標簽并添加如下參數. -r "echo 'run-test-ok';" 3:點擊apply -> close. 4:運行測試,調試測試,切換透視圖 ## eclipse快捷鍵 Ctrl+左鍵 或 F3 :跳到光標所在標識符的定義代碼. Alt+左右方向鍵 :返回上一個/下一個閱讀位置. Ctrl+H : 打開查找窗口. Ctrl+Shift+G :在工作空間中查找引用了光標所在標識符的位置.可以說是與F3相反的快捷鍵 Ctrl+O :查看文件概要信息. ------------------ 調試快捷鍵 F5進入當前方法,如果當前執行語句是函數調用,則會進入函數里面. F6單步執行程序,運行下一行代碼 F7退出當前方法,返回到調用層 F8繼續運行直到下一個斷點 ctrl+b:重新編譯 ctrl+f11:重新運行 ## PHP內核源碼目錄結構 php-744.1.4 ├── build //源碼編譯相關文件 └── ext //官方擴展目錄,包括了絕大多數PHP的函數的定義和實現 └── main //PHP核心基本文件,這里和Zend引擎不一樣,Zend引擎主要實現語言最核心的語言運行環境. └── pear //“PHP 擴展與應用倉庫”,包含PEAR的核心文件. └── sapi //包含了各種服務器抽象層的代碼,例如apache的mod_php,cgi,fastcgi以及fpm等等接口. └── tests //PHP的測試腳本集合,包含PHP各項功能的測試文件 └── TSRM //PHP的線程安全是構建在TSRM庫之上的,PHP實現中常見的*G宏通常是對TSRM的封裝,TSRM(Thread Safe Resource Manager)線程安全資源管理器. └── win32 //Windows平臺相關的一些實現,比如sokcet的實現在Windows下和*Nix平臺就不太一樣,同時也包括了Windows下編譯PHP相關的腳本. └── Zend //Zend引擎的實現目錄,比如腳本的詞法語法解析,opcode的執行以及擴展機制的實現等等. └── .gdbinit //gdb命令編寫腳本 (gdb) source /home/laruence/package/php-5.2.14/.gdbinit (gdb) zbacktrace └── CODING_STANDARDS //PHP編碼標準 └── config.guess //由automake產生,兩個用于目標平臺檢測的腳本 └── config.log //configure執行時生成的日志文件 └── config.nice //configure執行時生成,記錄了上次執行configure時帶的詳細參數 └── config.status //configure執行時生成,實際調用編譯工具構建軟件的shell腳本 └── config.sub //由automake產生,兩個用于目標平臺檢測的腳本 └── configure //配置并生成makefile └── configure.in //autoreconf創建,開發者維護,用于生成configure └── CREDITS //開發人員名單 └── EXTENSIONS //擴展說明(維護狀態,維護人員,版本,適用系統..) └── LICENSE //發布協議 └── php.ini-development //PHP開發環境示例配置文件 └── php.ini-production //PHP生產環境示例配置文件 └── README.EXT_SKEL //構建擴展腳本說明 └── README.GIT-RULES //GIT提交時的規則 └── README.namespaces //命名空間說明 └── README.PARAMETER_PARSING_API //新的參數解析函數說明 └── README.REDIST.BINS //PHP中引用到的其它程序協議說明 └── README.RELEASE_PROCESS //PHP發布過程說明 └── README.SELF-CONTAINED-EXTENSIONS//創建一個內建的PHP擴展 └── README.STREAMS //PHP Streams(流概念) 說明 └── README.SUBMITTING_PATCH //介紹如何提交PHP的增強功能或修補程序 └── README.TESTING //測試說明(run-tests.php) └── README.TESTING2 //測試說明(server-tests.php) └── README.UNIX-BUILD-SYSTEM //PHP編譯系統V5概述 └── README.WIN32-BUILD-SYSTEM //WIN32編譯說明 └── run-test.php //測試腳本 └── server-test.php //測試腳本 └── sesrver-test-config.php //測試腳本 └── UPGRADING //版本更新說明 └── UPGRADING.INTERNALS //內部更新說明
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看