install.sh 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. #!/bin/bash
  2. # package type (subfolder in packager)
  3. # default version to install
  4. DEFAULT=5.6
  5. if [ -z $1 ]; then
  6. TYPE=$DEFAULT
  7. else
  8. TYPE=$1
  9. fi
  10. if [[ $TYPE = "force" ]]; then
  11. if [ -z $2 ]; then
  12. TYPE=$DEFAULT
  13. else
  14. TYPE=$2
  15. fi
  16. fi
  17. if [[ $TYPE != "force" ]]; then
  18. OS_VERSION_PATCH=`sw_vers -productVersion | egrep --color=never -o '10\.[0-9]+\.[0-9]+'`
  19. OS_VERSION=`echo $OS_VERSION_PATCH | cut -f 1,2 -d "."`
  20. OS_SUB=`echo $OS_VERSION_PATCH | cut -f 2 -d "."`
  21. OS_SUB=`expr $OS_SUB`
  22. OS_PATCH=`echo $OS_VERSION_PATCH | cut -f 3 -d "."`
  23. OS_PATCH=`expr $OS_PATCH`
  24. if [[ $OS_VERSION == "10.14" ]]; then
  25. if [[ $OS_PATCH < 4 ]]; then
  26. echo "****"
  27. echo "[WARNING]"
  28. echo "Detected macOS Mojave <= 10.14.3. There are serious issues with it, due to the original apache not loading"
  29. echo "foreign libraries anymore. PHP within apache will most certainly not work anymore if you proceed!"
  30. echo "The cli version still will."
  31. echo "See this issue at https://github.com/liip/php-osx/issues/249 for details and discussion"
  32. echo "****"
  33. if [[ $1 = "force" ]]; then
  34. echo "Proceeding"
  35. else
  36. echo "Restart this script with"
  37. echo " curl -s https://php-osx.liip.ch/install.sh | bash -s force $1"
  38. echo "to really install it"
  39. echo "****"
  40. exit 1
  41. fi
  42. else
  43. echo "Detected macOS Mojave >= 10.14.4. All ok."
  44. fi
  45. elif [[ $OS_VERSION == "10.13" ]]; then
  46. echo "Detected macOS High Sierra 10.13. All ok."
  47. elif [[ $OS_VERSION == "10.12" ]]; then
  48. echo "Detected macOS Sierra 10.12. All ok."
  49. elif [[ $OS_VERSION == "10.11" ]]; then
  50. echo "Detected OS X El Capitan 10.11. All ok."
  51. elif [[ $OS_VERSION == "10.10" ]]; then
  52. echo "Detected OS X Yosemite 10.10. All ok."
  53. elif [[ $OS_VERSION == "10.9" ]]; then
  54. echo "Detected OS X Mavericks 10.9 All ok."
  55. elif [[ $OS_VERSION == "10.8" ]]; then
  56. echo "Detected OS X Mountain Lion 10.8 All ok."
  57. elif [[ $OS_VERSION == "10.7" ]]; then
  58. echo "Detected OS X Lion 10.7. All ok."
  59. elif [[ $OS_VERSION == "10.6" ]]; then
  60. echo "Detected OS X Snow Leopard 10.6 All ok."
  61. else
  62. echo "****"
  63. echo "Your version of OS X ($OS_VERSION) is not supported, you need at least 10.6"
  64. echo "Stopping installation..."
  65. echo "If you think that's wrong, try"
  66. echo "****"
  67. echo "curl -o install.sh -s https://php-osx.liip.ch/install.sh | bash install.sh force"
  68. echo "****"
  69. exit 2
  70. fi
  71. if [[ -f /usr/sbin/sysctl ]]; then
  72. SYSCTL="/usr/sbin/sysctl"
  73. elif [[ -f /sbin/sysctl ]]; then
  74. SYSCTL="/sbin/sysctl"
  75. else
  76. SYSCTL="sysctl"
  77. fi
  78. HAS64BIT=`$SYSCTL -n hw.cpu64bit_capable 2> /dev/null`
  79. if [[ $HAS64BIT != 1 ]]; then
  80. echo "****"
  81. echo "ERROR! 32 BIT NOT SUPPORTED!"
  82. echo "****"
  83. echo "No 64bit capable system found. Your hardware is too old."
  84. echo "We don't support that (yet). Patches are welcome ;)"
  85. echo "If you think that's wrong, try"
  86. echo "****"
  87. echo "curl -o install.sh -s https://php-osx.liip.ch/install.sh | bash install.sh force"
  88. echo "****"
  89. exit 1
  90. fi
  91. fi
  92. if [[ $OS_VERSION = "10.8" ]] || [[ $OS_VERSION = "10.9" ]]; then
  93. if [[ $TYPE = "5.4" ]]; then
  94. TYPE=5.4-10.8
  95. elif [[ $TYPE = "5.5" ]]; then
  96. TYPE=5.5-10.8
  97. elif [[ $TYPE = "5.6" ]]; then
  98. TYPE=5.6-10.8
  99. elif [[ $TYPE = "5.3" ]]; then
  100. TYPE=5.3-10.8
  101. fi
  102. fi
  103. # 10.11 and later should be compatible with 10.10 versions for now.
  104. # See https://github.com/liip/build-entropy-php/issues/16 for more
  105. if [[ $OS_SUB -gt 9 ]]; then
  106. if [[ $TYPE = "5.4" ]]; then
  107. TYPE=5.4-10.10
  108. elif [[ $TYPE = "5.5" ]]; then
  109. TYPE=5.5-10.10
  110. elif [[ $TYPE = "5.6" ]]; then
  111. TYPE=5.6-10.10
  112. elif [[ $TYPE = "7.0" ]]; then
  113. TYPE=7.0-10.10
  114. elif [[ $TYPE = "7.1" ]]; then
  115. TYPE=7.1-10.10
  116. elif [[ $TYPE = "7.2" ]]; then
  117. TYPE=7.2-10.10
  118. elif [[ $TYPE = "7.3" ]]; then
  119. TYPE=7.3-10.10
  120. elif [[ $TYPE = "5.3" ]]; then
  121. TYPE=5.3-10.10
  122. fi
  123. fi
  124. if [[ $TYPE = "5.6" ]]; then
  125. echo "PHP 5.6 is not available for OS X < 10.8"
  126. exit 1
  127. elif [[ $TYPE = "7.3" ]]; then
  128. echo "PHP 7.3 is not available for OS X < 10.10"
  129. exit 1
  130. elif [[ $TYPE = "7.2" ]]; then
  131. echo "PHP 7.2 is not available for OS X < 10.10"
  132. exit 1
  133. elif [[ $TYPE = "7.1" ]]; then
  134. echo "PHP 7.1 is not available for OS X < 10.10"
  135. exit 1
  136. elif [[ $TYPE = "7.0" ]]; then
  137. echo "PHP 7.0 is not available for OS X < 10.10"
  138. exit 1
  139. fi
  140. echo "Get packager.tgz";
  141. curl -s -o /tmp/packager.tgz https://s3-eu-west-1.amazonaws.com/php-osx.liip.ch/packager/packager.tgz
  142. echo "Unpack packager.tgz";
  143. echo "Please type in your password, as we want to install this into /usr/local"
  144. if [ ! -d /usr/local ] ; then sudo mkdir /usr/local; fi
  145. sudo tar -C /usr/local -xzf /tmp/packager.tgz
  146. if [[ -f /usr/bin/python2.7 ]]; then
  147. PYTHONPATH=/usr/bin/python2.7
  148. elif [[ -f /usr/bin/python2.6 ]]; then
  149. PYTHONPATH=/usr/bin/python2.6
  150. elif [[ -f /usr/bin/python ]]; then
  151. PYTHONPATH=/usr/bin/python
  152. else
  153. PYTHONPATH=$(which python)
  154. fi
  155. echo "Start packager (may take some time) using $PYTHONPATH";
  156. sudo $PYTHONPATH /usr/local/packager/packager.py install $TYPE-frontenddev
  157. cd $ORIPWD
  158. echo "Finished."