linux手动编译php源码
准备
下载源码:https://www.php.net/downloads
php-7.4.20
开始
解压
配置源码
配置项说明在附录讲。
编译
编译后的二进制文件会放在你配置的
--prefix
目录下,如果没有配置--prefix
详看附录配置说明查看配置文件目录
可能问题
ubuntu
centos
附录
configure参数说明,查看更多配置:
./configure --help
- –prefix=/xx/xx:文件安装的位置,默认是
/usr/local
- –with-mysqli[=FILE]:mysqli驱动支持,FILE是mysql_config的路径,就是mysql的安装目录。如果没有值或者mysqlnd被传递为file, MySQL本地驱动程序将被使用。
- –with-pdo-mysql[=DIR]:启用PDO_MySQL驱动。DIR是MySQL的安装目录,用来获取mysql_config。如果没有值或mysqlnd被传递为DIR, MySQL本地驱动程序将被使用
- –enable-debug:编译时加入调试符号。
- –with-layout=TYPE:设置被安装文件的布局。TYPE 是 PHP(默认)或 GNU。
- –with-pear=DIR:在 DIR(默认为 PREFIX/lib/php)中安装 PEAR。
- –without-pear:不安装 PEAR。
- –enable-sigchild:使用 PHP 自带的 SIGCHLD 处理器。
- –disable-rpath:禁用在搜索路径中传递其他运行库。
- –enable-libgcc:启用 libgcc 的精确链接。
- –enable-php-streams:包含试验性的 PHP 流。不要使用此选项,除非是要测试代码!
- –with-zlib-dir[=DIR]:定义 zlib 的安装目录。
- –with-tsrm-pthreads:使用 POSIX 线程(默认)。
- –enable-shared[=PKGS]:编译共享库 [default=yes]。
- –enable-static[=PKGS]:编译静态库 [default=yes]。
- –enable-fast-install[=PKGS]:为快速安装优化 [default=yes]。
- –with-gnu-ld:假设 C 编译器使用 GNU ld [default=no]。
- –disable-libtool-lock:避免锁死(可能破坏并联的编译)。
- –with-pic:尝试仅使用 PIC/非 PIC 对象 [default=use both]。
- –enable-memory-limit:编译内存限制支持功能。(自PHP 5.2.1开始不可用,默认enable)
- –disable-url-fopen-wrapper:禁用 URL 形式的 fopen 封装协议。该协议允许通过 HTTP 或者 FTP 访问文件。 (自PHP5.2.5开始不可用)
- –enable-versioning:仅导出必须的符号。查看 INSTALL 文件以获得更多信息。
- –enable-maintainer-mode:对偶然安装一下的情形启用此选项,使得不检查编译规则和依赖关系。
- –with-config-file-path=PATH:设置 php.ini 的搜索路径。默认为 PREFIX/lib。
- –enable-safe-mode:默认启用安全模式。警告:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
- –with-exec-dir[=DIR]:在安全模式时仅允许在 DIR 目录中执行。默认目录为 /usr/local/php/bin。警告:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除 **。
- –enable-magic-quotes:默认启用 magic quotes。警告:本特性已自 PHP 5.3.0 起废弃并将自 PHP 5.4.0 起移除。
- –with-libdir:指定Uxin系统库文件目录用于构建 PHP。 对于64位系统, 需要指定
lib64
目录,比如--with-libdir=lib64
。- –with-apxs[=FILE]:编译共享的 Apache 模块。FILE 是可选的 Apache apxs 工具的路径,默认指向 apxs。请确认指定的 apxs 已经安装在服务器中,并且它不是 Apache 源码包中的那个 apxs。
- –with-apache[=DIR]:编译静态 Apache 模块。DIR 是 Apache 编译目录的顶层,默认为 /usr/local/apache。
- –with-mod_charset:启用 mod_charset 的转换表(俄文的 Apache 使用)。
- –with-apxs2[=FILE]:编译共享的 Apache 2.0 模块。FILE 是可选的 Apache apxs 工具的路径,默认指向 apxs。
- –disable-cli:禁止编译 PHP 的 CLI 版本(使用它将同时强制使用 –without-pear 选项)。更多信息请参阅 PHP 的命令行模式。
- –enable-phpdbg:启用 phpdbg 调试 SAPI 模块支持,PHP 5.6.x 以后的版本有效。
- –enable-embed[=TYPE]:启用编译嵌入的 SAPI 库。TYPE 或者为
shared
或者为static
,默认为shared
。 - –with-servlet[=DIR]:包含 servlet 支持。DIR 是 JSDK 的安装目录。此 SAPI 要求 java 扩展必须作为共享模块编译到 PHP 中。
- –enable-embed[=TYPE]:启用编译嵌入的 SAPI 库。TYPE 或者为
- –disable-cgi:禁止编译 CGI 版本的 PHP。PHP 5.3.0 起,这个选项会启用 FastCGI,而在以前,必须使用
--enable-fastcgi
启用 FastCGI。- –enable-force-cgi-redirect:启用内部服务器重定向的安全检测。如果在 Apache 下使用 CGI 版本的 PHP,请启用该选项。PHP 5.3.0 起,默认有效并不再存在。要禁用此功能,需要在 INI 配置文件中将 cgi.force_redirect 设为
0
。 - –enable-discard-path:如果启用该选项,PHP CGI 目录可以安全的放在 web 目录树的外面,人们无法避开 .htaccess 的安全限制。PHP 5.3.0 起,默认禁用并不在存在。要启用此功能,需要设置 cgi-redirect INI 指令为
1
。
- –enable-force-cgi-redirect:启用内部服务器重定向的安全检测。如果在 Apache 下使用 CGI 版本的 PHP,请启用该选项。PHP 5.3.0 起,默认有效并不再存在。要禁用此功能,需要在 INI 配置文件中将 cgi.force_redirect 设为
- –enable-fastcgi:如果启用,CGI 模块将被编译为支持 FastCGI。PHP 5.3.0 起,此参数不再存在,并使用
--enable-cgi
替代。- –disable-path-info-check:如果该选项被禁用,例如 /info.php/test?a=b 形式的路径将不能工作。更多信息请参考 » Apache 手册。从 PHP 5.3.0 起,此选项默认开启并且不再使用。如果想禁用此特性,需要在 INI 配置中将 cgi.fix_pathinfo 设置成
0
。
- –disable-path-info-check:如果该选项被禁用,例如 /info.php/test?a=b 形式的路径将不能工作。更多信息请参考 » Apache 手册。从 PHP 5.3.0 起,此选项默认开启并且不再使用。如果想禁用此特性,需要在 INI 配置中将 cgi.fix_pathinfo 设置成
- –prefix=/xx/xx:文件安装的位置,默认是
linux手动编译php源码
http://blog.icy8.cn/posts/48473/