你好,我用 debian 9 安装了 apache。然后用apt-get安装了php7.0,但我需要安装php7.1,一开始我这样做
# su
# apt-get purge php7.0
所以我从下载http://php.net/downloads.phpphp 7.1.10 并制作这个
# ./configure --with-mcrypt
# make
# make install
但phpinfo()
得到了 php7.0,所以我做
# su
# apt-get purge php7.0
# apt-get autoremove php7.0
并且知道phpinfo()
是行不通的。我估计现在php还没有安装。
然后从下载http://php.net/downloads.phpphp 7.1.11(今天新)及其内部
# tar jxvf php-7.1.11.tar.bz2
# apt-get install build-essential
# apt-get install libxml2-dev libmcrypt-dev libjpeg-dev
# cd php-7.1.11
# ./configure --with-mcrypt --with-pdo-pgsql=/etc/postgresql/9.6/main --with-openssl=/usr/bin/openssl --with-zlib --with-apxs2=/usr/bin/apxs2
在所有检查之间我得到了下一个错误
Configuring SAPI modules
checking for Apache 2.0 handler-module support via DSO through APXS... [Fri Oct 27 12:30:45.328686 2017] [core:warn] [pid 12056] AH00111: Config variable ${APACHE_RUN_DIR} is not defined
apache2: Syntax error on line 80 of /etc/apache2/apache2.conf: DefaultRuntimeDir must be a valid directory, absolute or relative to ServerRoot
yes
configure: error: Cannot find OpenSSL's <evp.h>
这有什么问题吗?
答案1
为此使用 Sury 存储库(https://deb.sury.org/),这是一个小脚本,用于将其添加到您的存储库列表中。
#!/bin/bash
# To add this repository please do:
if [ "$(whoami)" != "root" ]; then
SUDO=sudo
fi
${SUDO} apt-get install apt-transport-https lsb-release ca-certificates
${SUDO} wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
${SUDO} sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
${SUDO} apt-get update
使用 Debian 存储库来安装软件比手动安装要好得多,它会避免你很多麻烦:)
答案2
您可能缺少 SSL 开发人员。尝试这个...
apt-get install libssl-dev
这可能会解决您的问题。
提示:每当您丢失文件时,请使用 apt-get 查找它的包...
apt-file search /evp.h | egrep '/evp.h$'