ffead-cpp-httpd.sh 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. #!/bin/bash
  2. fw_installed ffead-cpp-httpd && return 0
  3. fw_depends ffead-cpp-framework
  4. sudo apt-get remove -y apache2
  5. fw_get -o httpd-2.4.25.tar.gz http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz
  6. fw_get -o apr-1.5.2.tar.gz http://www-us.apache.org/dist//apr/apr-1.5.2.tar.gz
  7. fw_get -o apr-util-1.5.4.tar.gz http://www-us.apache.org/dist//apr/apr-util-1.5.4.tar.gz
  8. rm -rf ${IROOT}/httpd-2.4.25
  9. rm -rf ${IROOT}/apr-1.5.2
  10. rm -rf ${IROOT}/apr-util-1.5.4
  11. fw_untar httpd-2.4.25.tar.gz
  12. fw_untar apr-1.5.2.tar.gz
  13. fw_untar apr-util-1.5.4.tar.gz
  14. mv -f apr-1.5.2 httpd-2.4.25/srclib/apr
  15. mv -f apr-util-1.5.4 httpd-2.4.25/srclib/apr-util
  16. cd ${IROOT}/httpd-2.4.25
  17. rm -rf ${IROOT}/httpd
  18. mkdir ${IROOT}/httpd
  19. ./configure --prefix=${IROOT}/httpd --enable-mods-shared=all --with-included-apr
  20. make
  21. make install
  22. cd ${IROOT}
  23. cd ${IROOT}/ffead-cpp-src/modules/apache_mod_ffeadcpp/
  24. 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
  25. 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++
  26. ${IROOT}/httpd/bin/apxs -i -n 'ffead_cpp' mod_ffeadcpp.so
  27. cd -
  28. FFEADROOT=${IROOT}/ffead-cpp-2.0
  29. ETROOT=${FFEADROOT//\//\\/}
  30. EIROOT=${IROOT//\//\\/}
  31. sed -i 's/Listen 80.*/#Listen 80/' ${IROOT}/httpd/conf/httpd.conf
  32. sed -i 's/Include conf\/ffead-site\.conf//' ${IROOT}/httpd/conf/httpd.conf
  33. echo 'Include conf/ffead-site.conf' >> ${IROOT}/httpd/conf/httpd.conf
  34. if [ ! -f ${IROOT}/httpd/bin/envvars ]; then
  35. bash -c 'cat > ${IROOT}/httpd/bin/envvars <<EOL
  36. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  37. export LD_LIBRARY_PATH=\$FFEAD_CPP_PATH/lib:'"${IROOT}"':\$LD_LIBRARY_PATH/
  38. export ODBCINI='"$IROOT"'/odbc.ini
  39. export ODBCSYSINI='"$IROOT"'
  40. EOL'
  41. else
  42. if [ ! -f ${IROOT}/httpd/bin/envvars.bk ]; then
  43. cp ${IROOT}/httpd/bin/envvars ${IROOT}/httpd/bin/envvars.bk
  44. fi
  45. cp ${IROOT}/httpd/bin/envvars.bk ${IROOT}/httpd/bin/envvars
  46. sed -i '/^export FFEAD_CPP_PATH/ d' ${IROOT}/httpd/bin/envvars
  47. sed -i '/^export LD_LIBRARY_PATH/ d' ${IROOT}/httpd/bin/envvars
  48. sed -i '/^export ODBCINI/ d' ${IROOT}/httpd/bin/envvars
  49. sed -i '/^export ODBCSYSINI/ d' ${IROOT}/httpd/bin/envvars
  50. bash -c 'cat <<EOL >> ${IROOT}/httpd/bin/envvars
  51. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  52. export LD_LIBRARY_PATH='"${FFEADROOT}"'/lib:'"${IROOT}"':$LD_LIBRARY_PATH/
  53. export ODBCINI='"$IROOT"'/odbc.ini
  54. export ODBCSYSINI='"$IROOT"'
  55. EOL'
  56. fi
  57. bash -c 'rm -f ${IROOT}/httpd/conf/ffead-site.conf'
  58. bash -c 'cat > ${IROOT}/httpd/conf/ffead-site.conf <<EOL
  59. LoadModule ffead_cpp_module '"${IROOT}"'/httpd/modules/mod_ffeadcpp.so
  60. Listen 8080
  61. FFEAD_CPP_PATH '"${FFEADROOT}"'
  62. <VirtualHost *:8080>
  63. DocumentRoot '"${FFEADROOT}"'/web
  64. SetHandler ffead_cpp_module
  65. <Directory '"${FFEADROOT}"'>
  66. Options FollowSymLinks
  67. AllowOverride None
  68. Require all denied
  69. </Directory>
  70. <Directory '"${FFEADROOT}"'/web/>
  71. Options -Indexes +FollowSymLinks +MultiViews
  72. AllowOverride All
  73. Require all granted
  74. </Directory>
  75. </VirtualHost>
  76. EOL'
  77. touch ${IROOT}/ffead-cpp-httpd.installed