diff --git a/bin/phpenv-apache-version b/bin/phpenv-apache-version new file mode 100755 index 0000000..6f43c0e --- /dev/null +++ b/bin/phpenv-apache-version @@ -0,0 +1,70 @@ +#!/usr/bin/env bash +# Usage: phpenv apache-version + +set -e +[ -n "$PHPENV_DEBUG" ] && set -x + +# Provide phpenv completions +if [ "$1" = "--complete" ]; then + exec phpenv-versions --bare +fi + +PHPENV_APACHE_VERSION="$1" +PHPENV_APACHE_VERSION_FILE="${PHPENV_ROOT}/php-apache-version" + +if [ -n "$PHPENV_APACHE_VERSION" ]; then + phpenv-version-file-write "$PHPENV_APACHE_VERSION_FILE" "$PHPENV_APACHE_VERSION" +else + phpenv-version-file-read "$PHPENV_APACHE_VERSION_FILE" || + phpenv-help --usage apache-version >&2 + exit 1 +fi + +if command -v brew >/dev/null; then + if [ -d "$(brew --prefix httpd)" ]; then + PHPENV_APACHE_MODULE_PATH="$(brew --prefix httpd)/libexec" + fi +else + if [ -f /etc/redhat-release ] ; then + PHPENV_APACHE_MODULE_PATH="/etc/httpd/modules" + elif [ -f /etc/debian_version ] ; then + PHPENV_APACHE_MODULE_PATH="/usr/lib/apache2/modules" + fi +fi + +if [ -z "$PHPENV_APACHE_MODULE_PATH" ]; then + echo "Sorry your OS is not supported." >&2 + exit 1 +fi + +PHPENV_PREFIX_PATH="${PHPENV_ROOT}/versions/${PHPENV_APACHE_VERSION}" + +if [[ $PHPENV_APACHE_VERSION =~ ^5 ]]; then + PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp5.so" +elif [[ $PHPENV_APACHE_VERSION =~ ^7 ]]; then + PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp7.so" +elif [[ $PHPENV_APACHE_VERSION =~ ^8 ]]; then + PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp.so" +fi + +if [ ! -f "$PHP_MODULE_PATH" ]; then + echo "Make sure the specified version is installed." >&2 + echo "Apache module not found ${PHP_MODULE_PATH}" >&2 + exit 1 +fi + +echo "copy ${PHP_MODULE_PATH} to ${PHPENV_APACHE_MODULE_PATH}" +cp "$PHP_MODULE_PATH" "$PHPENV_APACHE_MODULE_PATH" + +echo "Restarting apache..." + +OS=`uname` +if [ "$OS" == "Darwin" ]; then + sudo apachectl restart +else + if [ -f /etc/redhat-release ] ; then + sudo service httpd restart + elif [ -f /etc/debian_version ] ; then + sudo service apache2 restart + fi +fi diff --git a/bin/rbenv-apache-version b/bin/rbenv-apache-version index 51b09ec..290f02c 100755 --- a/bin/rbenv-apache-version +++ b/bin/rbenv-apache-version @@ -43,6 +43,8 @@ if [[ $PHPENV_APACHE_VERSION =~ ^5 ]]; then PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp5.so" elif [[ $PHPENV_APACHE_VERSION =~ ^7 ]]; then PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp7.so" +elif [[ $PHPENV_APACHE_VERSION =~ ^8 ]]; then + PHP_MODULE_PATH="${PHPENV_PREFIX_PATH}/libphp.so" fi if [ ! -f "$PHP_MODULE_PATH" ]; then