繁体   English   中英

使用MySQL 5.6版从源代码编译PHP

[英]Compiling PHP from source with MySQL version 5.6

我正在尝试从源代码编译PHP以使ZTS正常工作。 我有PHP的源代码,我尝试安装依赖项

apt-get build-dep php5

我也为Ubuntu 14.04LTS安装了MySQL 5.6,我在命令后收到此错误:

以下软件包具有未满足的依赖项:mysql-server:取决于:mysql-server-5.5但不会安装E:无法满足php5的构建依赖性。

无论如何都可以绕过这种依赖,因为MySQL 5.6与预构建的PHP5一起工作正常但我无法开始编译,因为依赖项缺失了? 谢谢!

虽然不是同一个问题,但这个MySQL错误报告暗示了一个解决方案。 请尝试以下步骤:

  1. 卸载mysql-client-5.6和mysql-server-5.6: [sudo] apt-get remove mysql-client-5.6 mysql-server-5.6

  2. 启动你的[sudo] apt-get build-dep php5命令。 在再次升级之前,允许自动构建必要的依赖项。

  3. 重新安装mysql-5.6。 这应该替换对mysql-5.5的所有引用。 使用命令[sudo] apt-get install mysql-client-5.6 mysql-server-5.6

这只是在黑暗中拍摄,但你可以尝试首先使用所需的PHP构建安装mysql 5.5,一旦完成,将mysql升级到5.6

为什么使用apt-get build-dep而不是install? 根据apt-get的手册页,“build-deps”将尝试删除已安装的软件包以解决依赖关系,这里是mysql-server-5.6。 我只是使用安装,它的工作原理。

apt-get install php5

为了测试php是否正在使用mysql-5.6我使用apt-get安装了PhpMyadmin并且它可以正常使用5.6,你可以做同样的事情,并在Variables页面中检查名为“Version”的变量。

正如FYI apt-get build-dep与源代码构建不同。

由于这个问题是关于从源代码安装PHP5:
apt-get build-dep是值得怀疑的。
依赖关系检测应该对应于与中相同的定义
提供的php5 - debian - 包。
据我了解,您希望拥有不同的构建配置
但是,对于你的php5安装。
所以这通常是./configure --your-configure-options的过程
并进行干净的编译安装。
由configure调用生成的依赖项定义
不会被导出也不会被apt看到。
所以你必须自己解决这些问题,安装
正确版本的软件需要构建您的php5 - 安装
也许开发 - 包提供构建所需的正确标头。

PHP无法从Ubuntu 14.04开箱即用的Git checkout编译。

欢迎来到依赖地狱。

尝试从预编译下载进行编译

Git结账无法编译的原因是因为Bison的依赖性问题。 Ubuntu 14.04有Bison~3.0.0,编译PHP需要Bison~2.0.0。

checking for bison... bison -y
checking for bison version... invalid
configure: WARNING: This bison version is not supported for regeneration of the Zend/PHP parsers (found: 3.0, min: 204, excluded: 3.0).
configure: error: bison is required to build PHP/Zend when building a GIT checkout!

解决方法

这是一个使apt-get build-dep php5成功运行的解决方法。

  1. 完全删除MySQL(不仅仅是相关的5.6包)

    完全删除任何和所有MySQL包和任何配置文件非常重要。 您可以通过运行dpkg -l | grep mysql来检查安装了哪些mysql软件包 dpkg -l | grep mysql看看'ii''rc'这样的各种dpkg标志是什么意思?

    使用清除选项卸载软件包: apt-get remove --purge <package name>

    您可能还需要手动删除一些文件。 阅读apt-get remove --purge打印的消息,它会告诉你它是否没有删除某些文件以及它为什么不删除它们。 您需要手动删除apt-get未删除的文件。 它们很可能是/etc/mysql目录中的某个文件。

  2. 运行apt-get build-dep php5

    这使得apt-get build-dep php5成功运行并将安装MySQL 5.5!

  3. 确保已安装libmcrypt-dev

    稍后当你尝试编译时,你会收到抱怨readlinemcrypt错误,例如:

     configure: error: Please reinstall readline - I cannot find readline.h 

    所有这些错误都可以通过安装libmcrypt-dev来解决。 :)花了我太长时间来解决这个问题。

     apt-get install libmcrypt-dev 
  4. 完全删除MySQL

    像在第1步中那样完成整个过程,除非这次你要删除5.5。

  5. 安装MySQL 5.6

故障排除:当您尝试编译时仍然会出现错误?

确保已安装libmcrypt-dev

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM