將 PHP 安裝為 CGI 和 CLI
我正在嘗試為 PHP 5.1.4 中的一些舊項目設置開發環境。它需要在 apache 下作為 CGI(或 fastcgi)執行,我想要 cli 二進製文件。我的配置選項是:
./configure \ --prefix=/usr/local/php-dev \ --with-config-file-path=/usr/local/php-dev/etc \ --enable-bcmath \ --enable-calendar \ --enable-dbase \ --enable-exif \ --enable-fastcgi \ --enable-force-cgi-redirect \ --enable-ftp \ --enable-gd-native-ttf \ --enable-mbstring \ --enable-memory-limit \ --enable-soap \ --enable-track-vars \ --enable-trans-sid \ --enable-versioning \ --enable-xslt \ --with-curl=/usr/local/php-libs/curl-7.12.2 \ --with-freetype \ --with-freetype-dir \ --with-gd \ --with-iconv \ --with-jpeg-dir \ --with-mhash \ --with-mime-magic \ --with-mssql=/usr/local/php-libs/freetds-0.64 \ --with-mysql=/usr/local/mysql5 \ --with-mysql-sock=/var/run/mysql/mysql.sock \ --with-openssl \ --with-pdo-mysql=/usr/local/mysql5 \ --with-pear \ --with-ttf \ --with-xslt-sablot=/usr/local/sablot-1.0.3 \ --with-zlib
安裝後,我只有這些文件
/usr/local/php-dev/bin
:pear peardev pecl php php-config phpize
我也期望
php-cgi
或php-cli
。./php -v
從命令行執行時,它顯示:PHP 5.1.4 (cgi-fcgi) (built: Sep 23 2010 09:46:33) Copyright (c) 1997-2006 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
所以我只有 CGI 版本,當我嘗試執行 CLI 特定腳本時,變數
$argv
和.$argc``NULL
有沒有辦法同時擁有 CLI 和 CGI 版本?(系統:slackware 13.0)
來自http://www.php.net/manual/en/features.commandline.introduction.php:
CLI/CGI 二進製文件的名稱、位置和存在將根據 PHP 在系統上的安裝方式而有所不同。預設情況下,當執行 make 時,CGI 和 CLI 都被建構並分別作為 sapi/cgi/php-cgi 和 sapi/cli/php 放置在你的 PHP 源目錄中。您會注意到兩者都命名為 php。make install 期間發生的情況取決於您的配置行。如果在配置期間選擇了模組 SAPI,例如 apxs,或者使用了 –disable-cgi 選項,則在 make install 期間將 CLI 複製到 {PREFIX}/bin/php,否則將 CGI 放置在那裡。因此,例如,如果 –with–apxs 在您的配置行中,則 CLI 將在 make install 期間複製到 {PREFIX}/bin/php。如果要覆蓋 CGI 二進製文件的安裝,請在 make install 之後使用 make install-cli。或者,您可以在配置行中指定 –disable-cgi。
那麼,你試過了
make install-cli
嗎?你有sapi
這兩個的目錄嗎?