ffead-cpp-httpd.sh 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #!/bin/bash
  2. cd $IROOT
  3. wget -q https://archive.apache.org/dist/httpd/httpd-2.4.25.tar.gz
  4. wget -q https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz
  5. wget -q https://archive.apache.org/dist/apr/apr-util-1.5.4.tar.gz
  6. rm -rf ${IROOT}/httpd-2.4.25
  7. rm -rf ${IROOT}/apr-1.5.2
  8. rm -rf ${IROOT}/apr-util-1.5.4
  9. tar xf httpd-2.4.25.tar.gz
  10. tar xf apr-1.5.2.tar.gz
  11. tar xf apr-util-1.5.4.tar.gz
  12. mv -f apr-1.5.2 httpd-2.4.25/srclib/apr
  13. mv -f apr-util-1.5.4 httpd-2.4.25/srclib/apr-util
  14. cd ${IROOT}/httpd-2.4.25
  15. rm -rf ${IROOT}/httpd
  16. mkdir ${IROOT}/httpd
  17. ./configure --prefix=${IROOT}/httpd --enable-mods-shared=all --with-included-apr
  18. make
  19. make install
  20. cd ${IROOT}
  21. cd ${IROOT}/ffead-cpp-src/modules/apache_mod_ffeadcpp/
  22. g++ -fpic -DSHARED_MODULE -fpermissive -I"${IROOT}/httpd/include" -I"${IROOT}/ffead-cpp-2.0/include/" -I"${IROOT}/include" -I"${IROOT}/include/libbson-1.0/" -I"${IROOT}/include/libmongoc-1.0" mod_ffeadcpp.cpp -L"${IROOT}/ffead-cpp-2.0/lib" -L"${IROOT}" -lffead_common -lffead_framework -ldl -lcrypto -lssl -c mod_ffeadcpp.cpp
  23. g++ -shared -o mod_ffeadcpp.so mod_ffeadcpp.o -L"${IROOT}/ffead-cpp-2.0/lib" -L"${IROOT}" -L"${IROOT}/httpd/lib" -lffead_common -lffead_framework -ldl -lcrypto -lssl -lapr-1 -laprutil-1 -lstdc++
  24. ${IROOT}/httpd/bin/apxs -i -n 'ffead_cpp' mod_ffeadcpp.so
  25. cd -
  26. FFEADROOT=${IROOT}/ffead-cpp-2.0
  27. ETROOT=${FFEADROOT//\//\\/}
  28. EIROOT=${IROOT//\//\\/}
  29. sed -i 's/Listen 80.*/#Listen 80/' ${IROOT}/httpd/conf/httpd.conf
  30. sed -i 's/Include conf\/ffead-site\.conf//' ${IROOT}/httpd/conf/httpd.conf
  31. echo 'Include conf/ffead-site.conf' >> ${IROOT}/httpd/conf/httpd.conf
  32. if [ ! -f ${IROOT}/httpd/bin/envvars ]; then
  33. bash -c 'cat > ${IROOT}/httpd/bin/envvars <<EOL
  34. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  35. export LD_LIBRARY_PATH=\$FFEAD_CPP_PATH/lib:'"${IROOT}"':\$LD_LIBRARY_PATH/
  36. export ODBCINI='"$IROOT"'/odbc.ini
  37. export ODBCSYSINI='"$IROOT"'
  38. EOL'
  39. else
  40. if [ ! -f ${IROOT}/httpd/bin/envvars.bk ]; then
  41. cp ${IROOT}/httpd/bin/envvars ${IROOT}/httpd/bin/envvars.bk
  42. fi
  43. cp ${IROOT}/httpd/bin/envvars.bk ${IROOT}/httpd/bin/envvars
  44. sed -i '/^export FFEAD_CPP_PATH/ d' ${IROOT}/httpd/bin/envvars
  45. sed -i '/^export LD_LIBRARY_PATH/ d' ${IROOT}/httpd/bin/envvars
  46. sed -i '/^export ODBCINI/ d' ${IROOT}/httpd/bin/envvars
  47. sed -i '/^export ODBCSYSINI/ d' ${IROOT}/httpd/bin/envvars
  48. bash -c 'cat <<EOL >> ${IROOT}/httpd/bin/envvars
  49. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  50. export LD_LIBRARY_PATH='"${FFEADROOT}"'/lib:'"${IROOT}"':$LD_LIBRARY_PATH/
  51. export ODBCINI='"$IROOT"'/odbc.ini
  52. export ODBCSYSINI='"$IROOT"'
  53. EOL'
  54. fi
  55. bash -c 'rm -f ${IROOT}/httpd/conf/ffead-site.conf'
  56. bash -c 'cat > ${IROOT}/httpd/conf/ffead-site.conf <<EOL
  57. LoadModule ffead_cpp_module '"${IROOT}"'/httpd/modules/mod_ffeadcpp.so
  58. Listen 8080
  59. FFEAD_CPP_PATH '"${FFEADROOT}"'
  60. <VirtualHost *:8080>
  61. DocumentRoot '"${FFEADROOT}"'/web
  62. SetHandler ffead_cpp_module
  63. <Directory '"${FFEADROOT}"'>
  64. Options FollowSymLinks
  65. AllowOverride None
  66. Require all denied
  67. </Directory>
  68. <Directory '"${FFEADROOT}"'/web/>
  69. Options -Indexes +FollowSymLinks +MultiViews
  70. AllowOverride All
  71. Require all granted
  72. </Directory>
  73. </VirtualHost>
  74. EOL'