如何正确地重新编译 PHP?

如何正确地重新编译 PHP?

使用 Ubuntu Server 14.04 x64 / PHP 5.5.9-1ubuntu4 (cli) 和 FPM / MySQL InnoDB 版本 5.5.35

本来应该只是个小问题,却让我非常沮丧。基本上,我被迫从源代码重新编译 PHP(这是我从未做过也不必做的事情),以便能够从 PHP 执行 LOAD DATA 查询 - 就像以编程方式将 CSV 加载到 MySQL 数据库中一样简单,我错误地认为这很平凡和日常。(我之前的问题:https://stackoverflow.com/questions/24618135/mysql-still-cant-load-data-local-infile-path-to-file-txt-into-table-test-fi)。

话虽如此……我已经安装了 PHP-FPM,尽管有无数关于如何在 Linux 中安装任何 PHP 或 PHP-FPM 变体的教程,但当您必须正确删除当前安装并从源代码重新编译 PHP 时,河流开始枯竭。当我收到以下错误(在数百行详细输出中)时,我开始按照教程的方向编译自己的:

configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.

我需要删除 PHP 并重新编译以支持PDO::MYSQL_ATTR_LOCAL_INFILE => true? 我对所有使用 PHP 安装的内容运行了删除脚本,结果如​​下所示:

sudo apt-get remove php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-fpm

所以我认为 PHP 已被正确删除......

另外,我似乎需要其他 PHP 扩展(例如 mcrypt、php-gd 以及 WordPress/Magento 类型应用程序所需的其他扩展)。这些是否也必须同时与它们一起编译?如果将来我遇到另一个扩展,我想这意味着我必须再次删除 PHP 并重新编译。这应该很有趣。

相关内容