Я несколько дней безуспешно пытаюсь установить php. Процесс, который обычно занимает 2 минуты. У меня CentOS 7.4.1708 и Apache 2.4.6.
Когда я устанавливаю php с помощью yum install php
и запускаю команду
php -v
Я получаю сообщение об ошибке php: /lib64/libcrypto.so.10: версия OPENSSL_1.0.2 не найдена (требуется php)
Когда я запускаю команду rpm - qi openssl
Я получаю пакет openssl не установлен
Когда я запускаю версию openssl
, я получаю OpenSSL 1.0.1e-fips 11 февраля 2013 г.
Когда я запускаю команду yum info openssl
Я получаю
доступных пакетов
Имя: openssl
Арка: x86_64
Эпоха: 1
Версия: 1.0.2k
Релиз: 8.el7
Размер: 492 тыс.
Репо: base / 7 / x86_64
Описание: Утилиты из библиотеки криптографии общего назначения с реализацией TLS.
URL: http://www.openssl.org/
Лицензия: OpenSSL
Описание: набор инструментов OpenSSL обеспечивает поддержку безопасного обмена данными между
: машины. OpenSSL включает в себя инструмент управления сертификатами и общие
: библиотеки, которые предоставляют различные криптографические алгоритмы и
: протоколы.
yum info php дает
Доступные пакеты
Имя: php
Арка: x86_64
Версия: 5.4.16
Релиз: 43.el7_4.1
Размер: 1,4 м
Репо: обновления / 7 / x86_64
Описание: язык сценариев PHP для создания динамических веб-сайтов.
URL: http://www.php.net/
Лицензия: PHP, Zend и BSD.
Описание: PHP - это язык сценариев со встроенным HTML. PHP пытается сделать это
: разработчикам легко писать динамически генерируемые веб-страницы. PHP также
: предлагает встроенную интеграцию с базами данных для нескольких коммерческих и
: некоммерческие системы управления базами данных, поэтому напишите
: веб-страница с поддержкой базы данных с PHP довольно проста. Самый распространенный
: использование PHP-кода, вероятно, заменяет сценарии CGI.
:
: Пакет php содержит модуль (часто называемый mod_php)
: который добавляет поддержку языка PHP к HTTP-серверу Apache.
Результатом yum update openssl
является
Loaded plugins: fastestmirror, priorities
base | 3.6 kB 00:00:00
cm-rhel7-8.0 | 1.3 kB 00:00:00
cm-rhel7-8.0-updates | 1.3 kB 00:00:00
epel/x86_64/metalink | 29 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
webtatic | 3.6 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: centos.mirroring.pulsant.co.uk
* cm-rhel7-8.0: updates-eu.brightcomputing.com
* cm-rhel7-8.0-updates: updates-eu.brightcomputing.com
* epel: www.mirrorservice.org
* extras: centos.mirroring.pulsant.co.uk
* updates: centos.mirroring.pulsant.co.uk
* webtatic: uk.repo.webtatic.com
101 packages excluded due to repository priority protections
No packages marked for update
Вот результат команды ldd /lib64/libcrypto.so.10
linux-vdso.so.1 => (0x00002aaaaaaab000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaaaea8000)
libz.so.1 => /lib64/libz.so.1 (0x00002aaaab0ac000)
libc.so.6 => /lib64/libc.so.6 (0x00002aaaab2c3000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
Вывод команды openssl version -a
openssl: /lib64/libcrypto.so.10: версия ʻOPENSSL_1.0.2 'не найдена (требуется openssl)
Вот результат , который openssl
/ usr / bin / openssl
Вывод env | grep LD_
пуст.
Хорошо, я продвигаюсь вперед, с помощью этой команды yum переустановите openssl openssl-libs
Эта ошибка исчезла. Я думаю, есть небольшая проблема. Вывод команды php -v
:
Предупреждение PHP: запуск PHP: невозможно загрузить динамическую библиотеку '/usr/lib64/php/modules/zip.so' - libzip.so.2: невозможно открыть файл общих объектов: нет такого файла или каталога в Неизвестном в строке 0
PHP 5.4.16 (cli) (построено: 7 марта 2018 13:34:47)
Авторские права (c) 1997-2013 PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
Как получить правильную версию php и openssl, чтобы избавиться от ошибки?
Чтобы заставить его работать на Centos 7
yum install -y php php-common
yum install -y openssl openssl-libs
systemctl restart httpd
Чтобы решить ваши проблемы,эта команда должна помочь:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum reinstall openssl openssl-libs -y
yum reinstall libzip -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php54
yum install php php-common php-pecl-zip -y
Но клиенты с версией openssl ниже 1.1.0 не будут разрешать сертификаты letsencrypt со вчерашнего дня. лучшая практика для centos 7 - установить последнюю версию openssl из исходного кода, потому что ее нет ни в одном репозитории yum в виде пакета вы можете сделать это с помощью этого скрипта:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
yum groupinstall -y "Development Tools" "Development Libraries"
cd /usr/src
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1l.tar.gz
tar -zxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
./config
make
make install
mv /usr/local/lib64/libcrypto.so.1.1 /usr/local/lib64/libssl.so.1.1 /usr/lib64/
yum install php php-common -y
yum install ca-certificates -y
systemctl restart httpd
Также я бы рекомендовал вам установить как минимум 7+ версию php вместо очень устаревшей версии 5.4. Вы можете сделать это так:
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum-config-manager --disable 'remi-php*'
yum-config-manager --enable remi-php74
yum install php php-common -y # and others packages you need