Php

將 PHP 安裝為 CGI 和 CLI

  • September 24, 2010

我正在嘗試為 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-cgiphp-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這兩個的目錄嗎?

引用自:https://serverfault.com/questions/184255