LINUX.ORG.RU

Не собирается 7.0 php из исходников Cannot find OpenSSL's <evp.h>

 


0

2

ошибка configure: error: Cannot find OpenSSL's <evp.h>

файл лежит тут он /usr/include/openssl/evp.h
-rw-r--r-- 1 root root 103601 Feb 16 13:51 /usr/include/openssl/evp.h

Путь указан до него правильно
--with-openssl=/usr/include/openssl \

что не так? Собираю из под root

./configure --prefix=/usr/local/php7/7.0.0 \
--localstatedir=/usr/local/var \
--sysconfdir=/usr/local/etc/php/7 \
--with-config-file-path=/usr/local/etc/php/7 \
--with-config-file-scan-dir=/usr/local/etc/php/7/conf.d \
--mandir=/usr/local/php7/7.0.0/share/man \
--with-libdir=/lib/x86_64-linux-gnu \
--enable-fpm \
--enable-bcmath \
--enable-calendar \
--enable-dba \
--enable-exif \
--enable-ftp \
--enable-gd-native-ttf \
--enable-intl \
--enable-mbregex \
--enable-mbstring \
--enable-shmop \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--enable-zip \
--with-freetype-dir=/usr/local/opt/freetype \
--with-gd \
--with-gettext=/usr/local/opt/gettext \
--with-iconv-dir=/usr \
--with-icu-dir=/usr/local/opt/icu4c \
--with-jpeg-dir=/usr/local/opt/jpeg \
--with-kerberos=/usr \
--with-libedit \
--with-mhash \
--with-ndbm=/usr \
--with-openssl=/usr/include/openssl \
--with-pdo-odbc=unixODBC,/usr/local/opt/unixodbc \


Ответ на: комментарий от romanlinux

а почему php собрать так тяжело? и очень зависит от ос изначальной.
то одно то другое не работает. я так и несмог собрать ниче пришлось все пункты вырубать ну и в итоге нафиг он нужен

по этим путям все пусто
./configure --prefix=/usr/local/php7/7.0.0 \
--localstatedir=/usr/local/var \
--sysconfdir=/usr/local/etc/php/7 \
--with-config-file-path=/usr/local/etc/php/7 \
--with-config-file-scan-dir=/usr/local/etc/php/7/conf.d \

может есть какое то репозитарий с ним? чтоб не садамазить

Regacar
() автор топика
Последнее исправление: Regacar (всего исправлений: 2)
Ответ на: комментарий от Regacar
может есть какое то репозитарий с ним? чтоб не садамазить

ИМХО «заниматься» сборкой из исходников в 2к24 это какая-то жесть. Просто сделайте контейнер с пыхой в докере…

romanlinux ★★★
()
Последнее исправление: romanlinux (всего исправлений: 3)

version: «3»

services:
php70:
build:
context: ./
dockerfile: Dockerfile
depends_on:
- redis
hostname: php70
container_name: php70
volumes:
- ./configs:/cfgs
env_file: .env

redis:
image: redis:latest

вопрос, нафиг тут редис?
и как мне ссылаться из nginx ? типа того
fastcgi_pass unix:/run/php/php7.0-fpm.sock;

Regacar
() автор топика
Ответ на: комментарий от Regacar

Dockerfile

# Устанавливаем образ базового php-fpm
FROM php:7.0-fpm

# Устанавливаем необходимые зависимости
RUN apt-get update && apt-get install -y \
    git \
    zip \
    unzip \
    libpng-dev \
    libjpeg62-turbo-dev \
    libfreetype6-dev \
    libmcrypt-dev \
    libpq-dev

# Устанавливаем необходимые PHP расширения
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd mysqli pdo_mysql pdo_pgsql mcrypt

# Рабочая директория для приложения
WORKDIR /var/www/html

# Открываем порт 9000, на котором будет работать PHP-FPM
EXPOSE 9000

# Запускаем PHP-FPM
CMD ["php-fpm"]

Не нужные расширения можешь удалить, но я бы оставил (они так сказать нужные и нужны в 99% проектах)

romanlinux ★★★
()
Последнее исправление: romanlinux (всего исправлений: 2)
Ответ на: комментарий от romanlinux

спасибо но и тут ошибка:
Step 2/6 : RUN apt-get update && apt-get install -y git zip unzip libpng-dev libjpeg62-turbo-dev libfreetype6-dev libmcrypt-dev libpq-dev
---> Running in 79eebd561916


W: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch Release' does not have a Release file.
W: The repository 'http://deb.debian.org/debian stretch-updates Release' does not have a Release file.
E: Failed to fetch http://security.debian.org/debian-security/dists/stretch/updates/main/binary-... 404 Not Found [IP: 151.101.130.132 80]
E: Failed to fetch http://deb.debian.org/debian/dists/stretch/main/binary-amd64/Packages 404 Not Found
E: Failed to fetch http://deb.debian.org/debian/dists/stretch-updates/main/binary-amd64/Packages 404 Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

собираю на ubuntu 22.04

Regacar
() автор топика
Последнее исправление: Regacar (всего исправлений: 1)
Ответ на: комментарий от romanlinux

у тебя дебиан ос?

тут ошибка что репо неконектится как я понял,
попробовал подключить архивные репо но все равно не фурычит
deb [trusted=yes] http://archive.debian.org/debian/ stretch main
deb [trusted=yes] http://archive.debian.org/debian-security/ stretch/updates main
sudo apt-get update --allow-unauthenticated
sudo apt-get update --allow-insecure-repositories

Regacar
() автор топика
Ответ на: комментарий от Regacar

Всё прекрасно собирается, просто у тебя какая-то странная простыня вместо конфига. И подозреваю большинство опций - дефолт и можно их не указывать.

firkax ★★★★★
()
Ответ на: комментарий от romanlinux

Это не фишка, это жуткий костыль. Вместо нативной сборки запускаешь виртуалку с другой ОС. Но даже если хост - линукс, и докер будет не виртуалочный, он всё равно не нужен.

firkax ★★★★★
()
Ответ на: комментарий от romanlinux

Вот он типичный докер-юзер, ему apt пишет что репозитория по настроенному адресу (скорее всего он даже не знает где он настраивается) нет, а он «попробуй изменить список пакетов».

firkax ★★★★★
()

Вот поэтому и советуют это говно через докер запускать из-за несовместимости версий системных либ. Ты не можешь просто так взять и openssh откатить, не сломав всю систему, но если не любишь докер, можешь продолжать биться об стену

rtxtxtrx ★★
()
Ответ на: комментарий от Regacar

Выкинуть докер и больше не прикасаться к этой пакости. Конкретно в твоём случае у тебя протухший шаблон сборки на основе репозитория, который дебиан давно снял с поддержки.

firkax ★★★★★
()
Ответ на: комментарий от anonymous

В случае с пхп эти eol-ы почти ничего не значат. Ну разве что если где-то в интерпретаторе RCE обнаружат - то да, использовать не стоит, но это очень редкое событие, если вообще было в 5.х и более поздних ветках. Я вот где-то 5.6 использую например и не собираюсь менять на более поздний.

firkax ★★★★★
()
Ответ на: комментарий от rtxtxtrx

romanlinux
да уже разобрался, оказывается в dockerfile можно ос указывать.
firkax
в докере запустил порт 0.0.0.0:9000 открыт файлвол отключен но немогу подконектится
вобщем установил из репозитариев что выше скинули нор работает.

у php7 уязвимость есть серьезная CVE-2019-11043 но у меня конфиг по другому написан, вроде недолжна работать. Проверять лень.

Regacar
() автор топика
Ответ на: комментарий от Regacar

Так надо какой-нибудь 7.4 выбрать, где уязвимость закрыта, но лучше код изменить чтобы с php 8 работал. Там немного изменений в сравнении, например, с PHP 4 и PHP 5

rtxtxtrx ★★
()