【发布时间】:2013-08-15 04:38:55
【问题描述】:
对于离线开发,我想制作一个独立的 PHP 5.4 二进制文件,这样我就可以使用 PHP 自托管选项。 例如 php -S localhost:8000 这将启动一个用于托管 PHP 文件的服务器。
由于在 mac 上安装和配置 PHP 5.4 对于非技术人员来说并非易事。我希望能够在我的文件中包含一个有效的 PHP 二进制文件。所以基本上我可以跑。 ./php -S localhost:8000 在我的文件夹中,它将起作用。
我已按照此处的说明通过在源代码上运行来创建独立的 PHP 二进制文件。
./configure --enable-static --enable-cgi --enable-mbstring\
--enable-force-cgi-redirect \
--with-config-file-path=/etc/php5cgi \
--prefix=/usr/local/php5cgi \
--with-curl \
--enable-sockets \
--with-zlib --with-zlib-dir=/usr/include \
--with-pear
然后编辑 Makefile 使其具有 -all-static
BUILD_CGI = <other commands here> $(ZEND_EXTRA_LIBS) -all-static -o $(SAPI_CGI_PATH).
BUILD_CLI = <other commands here> $(ZEND_EXTRA_LIBS) -all-static -o $(SAPI_CGI_PATH).
这确实有效。文件是独立的。 但是当我运行二进制文件时。
./php-cgi -h
内置网络服务器没有“-S”选项? 我是否需要更改配置选项中的某些内容以允许内置网络服务器?我的源代码是从 PHP.net 下载的(我确实下载了 5.5 最新的源代码,但仍然有 -S 选项)。
谢谢,约翰。
【问题讨论】:
-
为什么不安装 Homebrew 并使用:github.com/josegonzalez/homebrew-php
-
我认为问题在于您构建 php-cgi 而不是 php-cli
-
所以只需将配置开始时的 cgi 更改为 cli 即可?
-
说真的,只需要几分钟,如果你使用 Homebrew,大部分时间都在等待 PHP 编译。我建议任何一天手工编译,除非你有 Homebrew 包没有解决的非常特殊的需求。
-
自制不是我的问题。我需要一个用于 mac 的 100% 独立 PHP 二进制文件。现在我得到它的工作文件是 2.5mb 压缩。这意味着我的解决方案是独立的。否则我需要告诉设计师他们需要将他们的机器更新到 PHP5.4 并改变他们的路径。这太难了。