You've already forked postfixadmin
mirror of
https://github.com/postfixadmin/postfixadmin.git
synced 2026-10-24 12:19:19 +03:00
93 lines
2.9 KiB
Bash
93 lines
2.9 KiB
Bash
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
# PostfixAdmin install script.
|
|
# 1. Downloads 'composer.phar' to the current directory, if 'composer' is not found in your PATH
|
|
# 2. Runs 'php composer install' which should install required runtime libraries for Postfixadmin
|
|
# 3. Runs 'mkdir templates_c && chmod 777 templates_c'
|
|
|
|
PATH=/bin:/usr/bin:/usr/local/bin
|
|
export PATH
|
|
|
|
COMPOSER_URL=https://getcomposer.org/download/latest-stable/composer.phar
|
|
|
|
type php >/dev/null 2>&1 || { echo >&2 "I require php but it's not installed. Aborting."; exit 1; }
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
# Check for $(pwd)/composer.phar
|
|
|
|
echo " * Checking for composer.phar "
|
|
|
|
if ! command -v composer >/dev/null 2>&1 ; then
|
|
# not in path, try and fall back to a local version
|
|
if [ ! -f composer.phar ]; then
|
|
echo " * 'composer' not found in your path, will try to download from $COMPOSER_URL "
|
|
|
|
# try and download it one way or another
|
|
if [ -x /usr/bin/wget ]; then
|
|
wget -q -O composer.phar $COMPOSER_URL
|
|
else
|
|
if [ -x /usr/bin/curl ]; then
|
|
curl -o composer.phar $COMPOSER_URL
|
|
else
|
|
echo " ** Could not find wget or curl; please download $COMPOSER_URL to pwd" >/dev/stderr
|
|
exit 1
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
COMPOSER="$(pwd)/composer.phar"
|
|
|
|
# not sure if we can actually get here, wget/curl failing should kill the script due to 'set -e'
|
|
if [ ! -f "${COMPOSER}" ]; then
|
|
echo "Failed to download composer, download $COMPOSER_URL manually into this directory." > /dev/stderr
|
|
exit 1
|
|
fi
|
|
|
|
else
|
|
COMPOSER="$(command -v composer)"
|
|
fi
|
|
|
|
echo " * checking for PHP database support ... "
|
|
found=0
|
|
for ext in pdo_mysql pdo_sqlite PDO pdo_pgsql
|
|
do
|
|
if php -m | grep -q $ext
|
|
then
|
|
found=$(( found + 1 ))
|
|
fi
|
|
done
|
|
|
|
if [ $found -lt 2 ]; then
|
|
# we need at least PDO and one of the specific drivers.
|
|
echo " * Failed to check you have the necessary PHP database libraries installed. "
|
|
echo " * You are probably missing some of these PHP extensions: PDO, pdo-mysql, pdo-sqlite or pdo-pgsql"
|
|
exit 1
|
|
fi
|
|
|
|
echo " * Using composer ( $COMPOSER )"
|
|
echo " * Installing libraries ( composer install --no-dev ... )"
|
|
|
|
php "${COMPOSER}" install --prefer-dist -n --no-dev --ignore-platform-req=ext-mysqli --ignore-platform-req=ext-sqlite3
|
|
|
|
if [ ! -d templates_c ]; then
|
|
|
|
mkdir -p templates_c && chmod 777 templates_c
|
|
|
|
echo ""
|
|
echo " Warning: "
|
|
echo " templates_c directory didn't exist, now created."
|
|
echo ""
|
|
echo " You should change the ownership and reduce permissions on templates_c to 750. "
|
|
echo " The ownership needs to match the user used to execute PHP scripts, perhaps 'www-data' or 'httpd'"
|
|
echo ""
|
|
echo " e.g. chown www-data templates_c && chmod 750 templates_c"
|
|
echo ""
|
|
fi
|
|
echo ""
|
|
echo "Please continue configuration / setup within your web browser. "
|
|
echo "See also : https://github.com/postfixadmin/postfixadmin/blob/master/INSTALL.TXT#L58 "
|
|
echo ""
|