как собрать apache httpd 2. * и выше на msys2 - PullRequest
0 голосов
/ 15 марта 2019

сборка httpd на msys2 завершается с ошибкой:

xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

На реальных дистрибутивах Linux установка пакета expat-devel, похоже, решает проблему см. Здесь , точнее,expat-devel является обязательным условием apr-util, и по крайней мере его заголовки отсутствуют на msys2.

Итак, как построить httpd с msys, так как нет пакета expat-devel или заголовков?При настройке httpd --with-includes-apr, где apr-utils ищет заголовки экспатов или как это настроить?

, точнее, документация CHANGES-APR-UTIL-1.6 гласит

Изменения с использованием APR-util 1.6.0

*)зависимость apr-util от expat больше не создается с помощью apr-util.Сначала установите expat (включая заголовки и библиотеки разработки) перед сборкой apr-util.

где в дереве каталогов сборки httpds должны быть установлены заголовки и библиотеки expat?

1 Ответ

0 голосов
/ 15 марта 2019

Мне, наконец, пришлось построить экспат отдельно, потом возникли другие ошибки, и я нашел решение благодаря этой ссылке на отсутствующий libtool и этой ссылке для эффективного способа построить экспат безсоздание переопределения экспорта.

позвольте найти полный сценарий сборки здесь:

pacman -S make gcc libcrypt perl unzip libtool msys/libcrypt-devel

cd OpenSSL_1_1_1-stable
curl http://mirrors.standaloneinstaller.com/apache/httpd/httpd-2.4.38.tar.gz --output httpd-2.4.38.tar.gz
tar xvf  httpd-2.4.38.tar.gz

cd $HOME
git clone --branch OpenSSL_1_1_1-stable https://github.com/openssl/openssl.git
mv openssl  OpenSSL_1_1_1-stable
cd OpenSSL_1_1_1-stable
./configure gcc --prefix=$HOME/openssl
make
make install

cd $HOME
wget https://github.com/libexpat/libexpat/releases/download/R_2_2_6/expat-2.2.6.tar.bz2
tar xjvf expat-2.2.6.tar.bz2
cd $HOME/expat-2.2.6
./configure --prefix=$HOME/httpd --exec-prefix=$HOME/httpd
make
make install

cd $HOME
curl http://mirrors.standaloneinstaller.com/apache//apr/apr-1.6.5.tar.gz --output apr-1.6.5.tar.gz
tar xvf apr-1.6.5.tar.gz
curl http://mirrors.standaloneinstaller.com/apache//apr/apr-util-1.6.1.tar.gz --output apr-util-1.6.1.tar.gz
tar xvf apr-util-1.6.1.tar.gz
cd $HOME/apr-1.6.5
./configure --prefix=$HOME/httpd
 make
 make install
cd $HOME/apr-util-1.6.1
 ./configure --prefix=$HOME/httpd --with-apr=$HOME/httpd --with-expat=$HOME/httpd 
 make
 make install

cd $HOME
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar xvf pcre-8.43.tar.gz
cd pcre-8.43
./configure --prefix=$HOME/pcre
make 
make install

cd $HOME
wget https://github.com/nghttp2/nghttp2/releases/download/v1.37.0/nghttp2-1.37.0.tar.gz
tar xvf nghttp2-1.37.0.tar.gz
cd $HOME/nghttp2-1.37.0
./configure  --exec-prefix=$HOME/httpd --prefix=$HOME/httpd
make 
make install

cd $HOME/httpd-2.4.38
 ./configure --prefix=$HOME/httpd --with-expat==$HOME/httpd --with-apr-util=$HOME/httpd --with-apr=$HOME/httpd --with-pcre=$HOME/pcre --enable-ssl --enable-ssl-staticlib-deps --with-ssl=$HOME/openssl --enable-proxy --enable-proxy-connect --enable-proxy-http --enable-proxy-balancer --enable-http2 --enable-nghttp2-staticlib-deps --with-nghttp2=$HOME/nghttp2
make
make install

Процесс сборки успешно завершен, но полезно сказать, что среда выполнения не может использоваться, так как httpd не может загрузить его динамическиймодули как описано здесь

...