2017-02-17 49 views
6

PHP 7.1.2 jest tutaj, próbowałem go skompilować jak zwykle, ale tym razem nie z tymi ./configure błędu:PHP 7.1.2 kompilacja i libcurl błąd

checking for cURL in default path... not found
configure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/

jestem na Debian Stretch (9).

znalazłem libcurl4-openssl-dev jest zainstalowany w/usr/include/x86_64-linux-gnu/curl when ./configure expect it in/include/curl/`

libcurl4-openssl-dev w Debianie Jessie install curl w/usr/include/curl/when Stretch zainstaluj curl w/usr/include/x86_64-linux-gnu/curl.

Z ostatnią wersją PHP, którą skompilowałem (7.1.1), nie miałem żadnych problemów, ale tym razem nie udało się.

Aby skompilować:

./buildconf --force && ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php/lib --enable-bcmath --with-bz2 --with-zlib --enable-zip --enable-calendar --enable-exif --enable-ftp --with-gettext --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-xpm-dir --enable-mbstring --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --enable-intl --enable-soap --with-readline --with-curl --with-mcrypt --with-xsl --enable-sockets 

curl i libcurl4-openssl-dev pakiety są zainstalowane

Próbowałem z --with-curl =/usr/include/x86_64-linux-gnu/curl/ale nie robi” t działa.

Nie wiem, jak rozwiązać ten problem, czy ktoś może o tym wiedzieć?

+0

Przyjrzyj się dokładniej w pliku 'config.log' po tym, jak nie udało się uzyskać dokładniejszych informacji o nieudanej próbie. –

Odpowiedz

1

Należy zainstalować pakiet libcurl4-gnutls-dev.

This package provides the development files (ie. includes, static library, manual pages) that allow one to build software which uses libcurl .

Aby zainstalować libcurl4-gnutls-dev:

sudo apt-get install libcurl4-gnutls-dev 
+0

Próbowałem, ale nic nie zmieniłem. Instalowanie libcurl4-gnutls-dev usuwa libcurl4-openssl-dev. Pliki wymagane przez php są zainstalowane (easy.h), ale nie w oczekiwanej ścieżce. Jest "nowy", aż do wersji 7.1.2. W ten sposób kompilowałem każdą nową wersję php i działa za każdym razem. Ale tym razem nie mogę skompilować PHP, ponieważ ścieżka nie pasuje do wymagań. – krazitchek

+0

@krazitchek wypróbuj za pomocą './ configure --prefix =/usr' – GAD3R

+1

Nic się nie zmienia, ten sam błąd. Nie jestem pewien, ale myślę, że coś się zmieniło w pakiecie libcurl4-openssl-dev w debian 8 jessie (https://packages.debian.org/fr/jessie/amd64/libcurl4-openssl-dev/filelist) i debian 9 stretch (https://packages.debian.org/fr/stretch/amd64/libcurl4-openssl-dev/filelist). Widzimy na tych dwóch adresach URL, że ścieżka nie jest taka sama dla tego samego pakietu. Wymóg dopasowania wersji Jessie (/usr/include/curl/easy.h), gdy wersja rozciągliwa nie pasuje do wymagań (/usr/include/x86_64-linux-gnu/curl/easy.h). – krazitchek

4

tymczasowy rozwiązaniem jest utworzenie łącza sym na /usr/local/include/curl wskazując /usr/include/x86_64-linux-gnu/curl i skompilować PHP z --with-curl=/usr/local.

Przykład: polecenie z poziomu /usr/local/include jako użytkownik root lub użycie sudo ln -s /usr/include/x86_64-linux-gnu/curl curl.

Dla osób szukających tego problemu należy zastąpić architekturę x86_64.

Nie mogę powiedzieć, czy to błąd, czy niezamierzona konsekwencja aktualizacji pakietów libcurl4-gnutls-dev i libcurl4-openssl-dev. Zauważysz, że jeśli spróbujesz skompilować poprzednie wersje PHP, to teraz również zawiedzie z powodu błędu braku curl, ponieważ po prostu nowe pakiety rozwojowe nie tworzą wymaganych plików, w których PHP ich oczekuje.

Nazywam to rozwiązaniem tymczasowym, ponieważ przyszłe aktualizacje w Debianie mogą to naprawić, umieszczając dowiązanie symboliczne lub coś pod adresem /usr/include/curl wskazujące na domyślną architekturę, lub może skrypt PHP configure zostanie zaktualizowany. Powodem, dla którego używasz --with-curl=/usr/local jest to, że skrypt konfiguracyjny PHP wymaga "tego, co określasz" i dołącza /include/curl.