ffead-cpp-apache.sh 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. #!/bin/bash
  2. fw_installed ffead-cpp-apache && return 0
  3. fw_get -o unixODBC-2.3.4.tar.gz ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz
  4. fw_untar unixODBC-2.3.4.tar.gz
  5. cd unixODBC-2.3.4
  6. ./configure --enable-stats=no --enable-gui=no --enable-drivers=no --enable-iconv --with-iconv-char-enc=UTF8 --with-iconv-ucode-enc=UTF16LE --libdir=${IROOT} --prefix=${IROOT} --sysconfdir=${IROOT}
  7. make install
  8. cd -
  9. fw_get -o mongo-c-driver-1.4.0.tar.gz https://github.com/mongodb/mongo-c-driver/releases/download/1.4.0/mongo-c-driver-1.4.0.tar.gz
  10. fw_untar mongo-c-driver-1.4.0.tar.gz
  11. cd mongo-c-driver-1.4.0/
  12. ./configure --prefix=${IROOT} --libdir=${IROOT} --disable-automatic-init-and-cleanup
  13. make && make install
  14. cd -
  15. sudo apt-get install -y build-essential
  16. sudo apt-get install -y uuid-dev libmyodbc odbc-postgresql
  17. if [ ! -d "${IROOT}/ffead-cpp-2.0" ]; then
  18. fw_get -o ffead-cpp-2.0.tar.gz https://github.com/sumeetchhetri/ffead-cpp/releases/download/2.0/ffead-cpp-2.0-te-bin.tar.gz
  19. fw_untar ffead-cpp-2.0.tar.gz
  20. rm -rf ffead-cpp-2.0
  21. cp -rf ffead-cpp-2.0-bin ${IROOT}/ffead-cpp-2.0
  22. fi
  23. fw_get -o httpd-2.4.25.tar.gz http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz
  24. fw_get -o apr-1.5.2.tar.gz http://www-us.apache.org/dist//apr/apr-1.5.2.tar.gz
  25. fw_get -o apr-util-1.5.4.tar.gz http://www-us.apache.org/dist//apr/apr-util-1.5.4.tar.gz
  26. fw_untar httpd-2.4.25.tar.gz
  27. fw_untar apr-1.5.2.tar.gz
  28. fw_untar apr-util-1.5.4.tar.gz
  29. mv -f apr-1.5.2 httpd-2.4.25/srclib/apr
  30. mv -f apr-util-1.5.4 httpd-2.4.25/srclib/apr-util
  31. cd ${IROOT}/httpd-2.4.25
  32. rm -rf ${IROOT}/httpd
  33. mkdir ${IROOT}/httpd
  34. ./configure --prefix=${IROOT}/httpd --enable-mods-shared=all --with-included-apr
  35. make
  36. make install
  37. cd -
  38. fw_get -o mod_ffeadcpp.cpp https://raw.githubusercontent.com/sumeetchhetri/ffead-cpp/master/modules/apache_mod_ffeadcpp/mod_ffeadcpp.cpp
  39. 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
  40. 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++
  41. ${IROOT}/httpd/bin/apxs -i -n 'ffead_cpp' mod_ffeadcpp.so
  42. sed -i 's|localhost|'${DBHOST}'|g' ${IROOT}/ffead-cpp-2.0/web/te-benchmark/config/sdorm.xml
  43. sed -i 's|localhost|'${DBHOST}'|g' ${IROOT}/ffead-cpp-2.0/web/te-benchmark/config/sdormmongo.xml
  44. sed -i 's|localhost|'${DBHOST}'|g' ${IROOT}/ffead-cpp-2.0/web/te-benchmark/config/sdormmysql.xml
  45. sed -i 's|localhost|'${DBHOST}'|g' ${IROOT}/ffead-cpp-2.0/web/te-benchmark/config/sdormpostgresql.xml
  46. cp ${IROOT}/ffead-cpp-2.0/resources/sample-odbcinst.ini ${IROOT}/odbcinst.ini
  47. cp ${IROOT}/ffead-cpp-2.0/resources/sample-odbc.ini ${IROOT}/odbc.ini
  48. sed -i 's|localhost|'${DBHOST}'|g' ${IROOT}/odbc.ini
  49. cp -rf ${IROOT}/ffead-cpp-2.0 ${IROOT}/httpd/htdocs/
  50. FFEADROOT=${IROOT}/httpd/htdocs/ffead-cpp-2.0
  51. ETROOT=${FFEADROOT//\//\\/}
  52. EIROOT=${IROOT//\//\\/}
  53. sed -i 's/Listen 80.*/#Listen 80/' ${IROOT}/httpd/conf/httpd.conf
  54. sed -i 's/Include conf\/ffead-site\.conf//' ${IROOT}/httpd/conf/httpd.conf
  55. echo 'Include conf/ffead-site.conf' >> ${IROOT}/httpd/conf/httpd.conf
  56. if [ ! -f ${IROOT}/httpd/bin/envvars ]; then
  57. bash -c 'cat > ${IROOT}/httpd/bin/envvars <<EOL
  58. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  59. export LD_LIBRARY_PATH=\$FFEAD_CPP_PATH/lib:'"${IROOT}"':\$LD_LIBRARY_PATH/
  60. export ODBCINI='"$IROOT"'/odbc.ini
  61. export ODBCSYSINI='"$IROOT"'
  62. EOL'
  63. else
  64. if [ ! -f ${IROOT}/httpd/bin/envvars.bk ]; then
  65. cp ${IROOT}/httpd/bin/envvars ${IROOT}/httpd/bin/envvars.bk
  66. fi
  67. cp ${IROOT}/httpd/bin/envvars.bk ${IROOT}/httpd/bin/envvars
  68. sed -i '/^export FFEAD_CPP_PATH/ d' ${IROOT}/httpd/bin/envvars
  69. sed -i '/^export LD_LIBRARY_PATH/ d' ${IROOT}/httpd/bin/envvars
  70. sed -i '/^export ODBCINI/ d' ${IROOT}/httpd/bin/envvars
  71. sed -i '/^export ODBCSYSINI/ d' ${IROOT}/httpd/bin/envvars
  72. bash -c 'cat <<EOL >> ${IROOT}/httpd/bin/envvars
  73. export FFEAD_CPP_PATH='"${FFEADROOT}"'
  74. export LD_LIBRARY_PATH='"${FFEADROOT}"'/lib:'"${IROOT}"':$LD_LIBRARY_PATH/
  75. export ODBCINI='"$IROOT"'/odbc.ini
  76. export ODBCSYSINI='"$IROOT"'
  77. EOL'
  78. fi
  79. bash -c 'rm -f ${IROOT}/httpd/conf/ffead-site.conf'
  80. bash -c 'cat > ${IROOT}/httpd/conf/ffead-site.conf <<EOL
  81. LoadModule ffead_cpp_module '"${IROOT}"'/httpd/modules/mod_ffeadcpp.so
  82. Listen 8080
  83. FFEAD_CPP_PATH '"${FFEADROOT}"'
  84. <VirtualHost *:8080>
  85. DocumentRoot '"${FFEADROOT}"'/web
  86. SetHandler ffead_cpp_module
  87. <Directory '"${FFEADROOT}"'>
  88. Options FollowSymLinks
  89. AllowOverride None
  90. Require all denied
  91. </Directory>
  92. <Directory '"${FFEADROOT}"'/web/>
  93. Options -Indexes +FollowSymLinks +MultiViews
  94. AllowOverride All
  95. Require all granted
  96. </Directory>
  97. </VirtualHost>
  98. EOL'
  99. touch ${IROOT}/ffead-cpp-apache.installed