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

时间:2014-05-20 06:15:01

标签: php mysql ubuntu-14.04 mysql-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,但由于缺少依赖关系,我无法开始编译?谢谢!

5 个答案:

答案 0 :(得分:5)

尽管问题this MySQL bug report提示不一样。请尝试以下步骤:

  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

答案 1 :(得分:2)

这只是一个黑暗中的镜头,但你可以尝试首先使用所需的php版本安装mysql 5.5,一旦完成,将mysql升级到5.6

答案 2 :(得分:2)

为什么使用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与源代码构建不同。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

PHP无法通过Ubuntu 14.04开箱即用的Git结账编译。

欢迎来到依赖地狱。

尝试从pre-compiled download进行编译。

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查看What do the various dpkg flags like 'ii' 'rc' mean?

    来检查安装了哪些mysql软件包

    使用清除选项卸载软件包: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

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

    确保已安装libmcrypt-dev