730 lines
18 KiB
Bash
Executable File
730 lines
18 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# php ( fuer Apache 2 )
|
|
#
|
|
VERSION=5.3.29
|
|
|
|
WITHOUT_APACHE_MOD_PHP=false
|
|
#WITHOUT_APACHE_MOD_PHP=true
|
|
|
|
APACHE_VERSION=2.4.12
|
|
APACHE_BASEDIR=/usr/local/httpd-${APACHE_VERSION}_php-${VERSION}
|
|
APXS=${APACHE_BASEDIR}/bin/apxs
|
|
|
|
|
|
_srcdir=/usr/local/src/apache2
|
|
|
|
_pwd=`pwd`
|
|
|
|
## --------------------------------------------------
|
|
|
|
## - Let make use multiple cores (-j<number of cores +1>)
|
|
## -
|
|
export MAKEFLAGS=-j$(expr `grep "^processor" /proc/cpuinfo | sort -u | wc -l` + 1)
|
|
|
|
|
|
## --- Some functions
|
|
## ---
|
|
echononl(){
|
|
echo X\\c > /tmp/shprompt$$
|
|
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
|
|
echo -e -n "$*\\c" 1>&2
|
|
else
|
|
echo -e -n "$*" 1>&2
|
|
fi
|
|
rm /tmp/shprompt$$
|
|
}
|
|
|
|
fatal(){
|
|
echo ""
|
|
echo -e "Fehler: $*"
|
|
echo ""
|
|
echo -e "\t\033[31m\033[1mInstalllation wird abgebrochen\033[m\033[m"
|
|
echo ""
|
|
exit 1
|
|
}
|
|
|
|
echo_ok() {
|
|
echo -e "\033[75G[ \033[1;32mok\033[m ]"
|
|
## echo -e " [ ok ]"
|
|
}
|
|
echo_failed(){
|
|
echo -e "\033[75G[ \033[1;31mfailed\033[m ]"
|
|
## echo -e " [ failed ]"
|
|
}
|
|
echo_skipped() {
|
|
echo -e "\033[75G[ \033[33m\033[1mskipped\033[m ]"
|
|
}
|
|
## ---
|
|
## --- END: functions
|
|
|
|
|
|
## --------------------------------------------------
|
|
|
|
if $WITHOUT_APACHE_MOD_PHP ; then
|
|
PREFIX_PHP=/usr/local/php-$VERSION
|
|
PHP_INI_FILE="${PREFIX_PHP}/etc/php.ini"
|
|
_builddir=${_srcdir}/php-${VERSION}
|
|
_logdir=${_srcdir}/log_php-${VERSION}_build
|
|
elif [ -n "$APACHE_VERSION" ]; then
|
|
PREFIX_PHP="/usr/local/php-$VERSION-httpd-${APACHE_VERSION}"
|
|
PHP_INI_FILE="${APACHE_BASEDIR}/conf/php.ini"
|
|
_builddir=${_srcdir}/php-${VERSION}_http-${APACHE_VERSION}
|
|
_logdir=${_srcdir}/log_php-${VERSION}_http-${APACHE_VERSION}_build
|
|
else
|
|
echo ""
|
|
echo -e "\t[ Error ]: I was requested to build php with apache mod_php module,"
|
|
echo -e "\t but environment \"APACHE_VERSION\" is unset."
|
|
echo ""
|
|
exit
|
|
fi
|
|
|
|
|
|
if [ -d "$_logdir" ];then
|
|
mv $_logdir $_logdir.`date +%Y%m%d-%H%M`
|
|
fi
|
|
mkdir -p $_logdir > /dev/null 2>&1
|
|
if [ -d "$_builddir" ];then
|
|
mv $_builddir $_builddir.`date +%Y%m%d-%H%M`
|
|
fi
|
|
if [ -d "$PREFIX_PHP" ];then
|
|
mv $PREFIX_PHP $PREFIX_PHP.`date +%Y%m%d-%H%M`
|
|
fi
|
|
|
|
|
|
## - get sources..
|
|
## -
|
|
cd $_srcdir
|
|
|
|
if [ ! -f ${_srcdir}/php-$VERSION.tar.bz2 ]; then
|
|
wget http://de.php.net/distributions/php-$VERSION.tar.bz2
|
|
fi
|
|
|
|
|
|
bunzip2 < ${_srcdir}/php-$VERSION.tar.bz2 | tar -xf - || exit 1
|
|
chown -R root.root php-$VERSION || exit 1
|
|
if ! $WITHOUT_APACHE_MOD_PHP ; then
|
|
mv php-$VERSION $_builddir
|
|
fi
|
|
cd $_builddir || exit 1
|
|
|
|
if [ "$VERSION" = "5.3.28" ]; then
|
|
echo -e "\n\tgoing to patch file \"Zend/zend_language_parser.y\" .."
|
|
if [ ! -f "${_srcdir}/bison_build_2a.patch" ]; then
|
|
fatal "Cannot find patch \"bison_build_2a.patch\" for Zend/zend_language_parser.y\n\t See: https://bugs.php.net/patch-display.php?bug_id=64503&patch=bison_build_2a.patch&revision=latest"
|
|
else
|
|
patch ${_builddir}/Zend/zend_language_parser.y ${_srcdir}/bison_build_2a.patch > /dev/null
|
|
fi
|
|
fi
|
|
|
|
echo -e "\n\tgoing to configure.."
|
|
echo -e "\t(see ${_logdir}/php-configure.log for more details)"
|
|
|
|
|
|
## - if you get the following error:
|
|
## -
|
|
## - configure: error: libXpm.(a|so) not found
|
|
## -
|
|
## - set a symlink /usr/lib/libXpm.a --> /usr/lib/x86_64-linux-gnu/libXpm.a
|
|
## -
|
|
if [ ! -h "/usr/lib/libXpm.a" -a ! -f "/usr/lib/libXpm.a" ];then
|
|
ln -s x86_64-linux-gnu/libXpm.a /usr/lib/libXpm.a
|
|
fi
|
|
if [ ! -h "/usr/lib/libjpeg.a" -a ! -f "/usr/lib/libjpeg.a" ];then
|
|
ln -s x86_64-linux-gnu/libjpeg.a /usr/lib/libjpeg.a
|
|
fi
|
|
if [ ! -h "/usr/lib/libXpm.a" -a ! -f "/usr/lib/libXpm.a" ];then
|
|
ln -s x86_64-linux-gnu/libpng.a /usr/lib/libpng.a
|
|
fi
|
|
|
|
|
|
# : ${_arch:=i686}
|
|
# : ${_arch:=athlon}
|
|
: ${_arch:=k8} ## --> x86-64 instructionset
|
|
|
|
##_cflags="-O2 -march=$_arch "
|
|
|
|
## - LDFLAGS="-s" --> Remove all symbol table and relocation information from the executable.
|
|
## F77="/usr/bin/g77-3.4" \
|
|
## CXXCPP="/usr/bin/g++-3.4 -E" \
|
|
## CC="/usr/bin/gcc-3.4" \
|
|
## CXX="/usr/bin/g++-3.4" \
|
|
## CPP="/usr/bin/cpp-3.4" \
|
|
## CFLAGS="$_cflags" LDFLAGS="-s" \
|
|
config_params="
|
|
--prefix=$PREFIX_PHP \
|
|
--with-gd \
|
|
--with-mysql=/usr/local/mysql \
|
|
--with-mysqli=/usr/local/mysql/bin/mysql_config \
|
|
--with-pdo-mysql=/usr/local/mysql \
|
|
--with-mysql-sock \
|
|
--with-pgsql \
|
|
--with-pdo-pgsql \
|
|
--with-regex=system \
|
|
--enable-wddx \
|
|
--enable-exif \
|
|
--with-zlib \
|
|
--with-openssl \
|
|
--with-gdbm \
|
|
--with-jpeg-dir \
|
|
--with-png-dir \
|
|
--with-curl \
|
|
--enable-dba \
|
|
--with-mcrypt \
|
|
--with-xpm-dir \
|
|
--with-t1lib \
|
|
--with-freetype-dir \
|
|
--enable-ftp \
|
|
--with-readline \
|
|
--enable-sockets \
|
|
--with-imap \
|
|
--with-imap-ssl \
|
|
--with-kerberos \
|
|
--with-gettext \
|
|
--with-pspell \
|
|
--enable-soap \
|
|
--enable-mbstring \
|
|
--enable-zip \
|
|
--enable-calendar \
|
|
--enable-bcmath \
|
|
--with-bz2 \
|
|
--enable-shmop \
|
|
--enable-sysvmsg \
|
|
--enable-sysvsem \
|
|
--enable-sysvshm \
|
|
--enable-cgi"
|
|
|
|
if $WITHOUT_APACHE_MOD_PHP ; then
|
|
config_params="$config_params --without-apxs2 --without-apxs --with-config-file-path=${PREFIX_PHP}/etc"
|
|
else
|
|
config_params="$config_params --with-apxs2=$APXS --with-config-file-path=${APACHE_BASEDIR}/conf"
|
|
fi
|
|
|
|
LDFLAGS="-s" \
|
|
./configure $config_params > ${_logdir}/php-configure.log 2>&1 || exit 1
|
|
|
|
## --with-mm \ # does not work with apache v2.4
|
|
|
|
## --with-pgsql=/usr/local/pgsql \
|
|
## --with-mysql=/usr/local/mysql \
|
|
## --with-mysqli=/usr/local/mysql/bin/mysql_config \
|
|
## --with-pdo-mysql=/usr/local/mysql \
|
|
|
|
## --enable-force-cgi-redirect \
|
|
## --enable-track-vars \
|
|
## --with-tiff-dir \
|
|
## --with-ttf \
|
|
## --with-memcache \
|
|
## --with-xml \
|
|
|
|
echo -e "\n\tgoing to compile.."
|
|
echo -e "\t(see ${_logdir}/php-make.log for more details)"
|
|
make > ${_logdir}/php-make.log 2>&1 || exit 1
|
|
|
|
echo -e "\n\tgoing to install.."
|
|
echo -e "\t(see ${_logdir}/php-make_install.log for more details)"
|
|
make install > ${_logdir}/php-make_install.log 2>&1
|
|
|
|
if [ "$?" != "0" ]; then
|
|
make install > ${_logdir}/php-make_install.log 2>&1
|
|
if [ "$?" != "0" ]; then
|
|
echo -e "\n [ Warn ] make install returncode: $?"
|
|
echo " for safety:"
|
|
echo " # cd $_builddir"
|
|
echo " # make install"
|
|
fi
|
|
fi
|
|
|
|
echo -e "\n\tBasic installation complete..\n"
|
|
|
|
#cp php.ini-production $PHP_INI_FILE || exit 1
|
|
[ -f $PHP_INI_FILE ] && cp -a $PHP_INI_FILE ${PHP_INI_FILE}-`date +"%Y-%m-%d-%H%M"`
|
|
cp php.ini-production $PHP_INI_FILE || exit 1
|
|
|
|
|
|
if ! $WITHOUT_APACHE_MOD_PHP ; then
|
|
_set_php_entries=""
|
|
echo ""
|
|
echo -n "do you want to set \"LoadModule\" entries in httpd.conf ? [y/n]: "
|
|
read _set_php_entries
|
|
if [ "y" = "$_set_php_entries" -o "Y" = "$_set_php_entries" -o "Yes" = "$_set_php_entries" -o "yes" = "$_set_php_entries" ];then
|
|
sed -i -r \
|
|
-e "s&(^\s*LoadModule php5_module.*$)&\1\n#<IfModule mod_php5.c>\n AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml\n AddType application/x-httpd-php-source .phps\n#</IfModule>&" ${APACHE_BASEDIR}/conf/httpd.conf
|
|
#-e "s&(^\s*LoadModule php5_module.*$)&\1\n<IfModule mod_php5.c>\n AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml\n AddType application/x-httpd-php-source .phps\n</IfModule>&" ${APACHE_BASEDIR}/conf/httpd.conf
|
|
fi
|
|
fi
|
|
|
|
_set_link=""
|
|
echo
|
|
echo -n "do you want to set symlink /usr/local/php -> `basename $PREFIX_PHP` ? [y/n]: "
|
|
read _set_link
|
|
if [ "y" = "$_set_link" -o "Y" = "$_set_link" -o "Yes" = "$_set_link" -o "yes" = "$_set_link" ];then
|
|
if [ -L /usr/local/php ];then
|
|
rm -f /usr/local/php
|
|
fi
|
|
ln -s `basename $PREFIX_PHP` /usr/local/php
|
|
fi
|
|
|
|
## - special for debian. set manpath entries
|
|
## -
|
|
if [ -f /etc/manpath.config ];then
|
|
if ! grep /usr/local/php/man /etc/manpath.config > /dev/null 2<&1 ; then
|
|
echo >> /etc/manpath.config
|
|
echo "MANDATORY_MANPATH /usr/local/php/man /var/cache/man" >> /etc/manpath.config
|
|
echo "MANPATH_MAP /usr/local/php/bin /usr/local/php/man" >> /etc/manpath.config
|
|
echo "MANDB_MAP /usr/local/php/man /var/cache/man" >> /etc/manpath.config
|
|
fi
|
|
elif [ -f /etc/man.conf];then
|
|
if ! grep /opt/php/man /etc/man.conf > /dev/null 2<&1 ; then
|
|
echo >> /etc/man.conf
|
|
echo "MANPATH /opt/php/man /var/cache/man" >> /etc/man.conf
|
|
echo "MANPATH_MAP /opt/php/bin /opt/php/man" >> /etc/man.conf
|
|
fi
|
|
fi
|
|
|
|
|
|
## - Add /usr/local/php/bin to the systems PATH variable
|
|
## -
|
|
echononl "\tAdd `dirname $PREFIX_PHP`/php/bin to the systems PATH variable"
|
|
_checkdir=`dirname $PREFIX_PHP`/php/bin
|
|
if [ -f /etc/profile ]; then
|
|
if ! grep -e "$_checkdir" /etc/profile > /dev/null 2<&1 ; then
|
|
perl -i -n -p -e "s#^([ ]*export[ ]*PATH.*$)#check_dir=$_checkdir\nif [ -d \"\\\$check_dir\" ];then\n PATH=\\\${check_dir}:\\\$PATH\nfi\n\n\1#" /etc/profile > /dev/null 2<&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
if ! echo "$PATH" | grep $_checkdir > /dev/null 2>&1 ; then
|
|
export PATH=${_checkdir}:$PATH
|
|
fi
|
|
|
|
else
|
|
echo_skipped
|
|
fi
|
|
fi
|
|
|
|
|
|
echo ""
|
|
|
|
## -----
|
|
## - Install geoip
|
|
## -----
|
|
|
|
echononl "\tInstalling libgeoip1 libgeoip-dev geoip-bin .."
|
|
if ! dpkg -l libgeoip-dev | grep -e "^ii" | grep libgeoip-dev > /dev/null 2>&1 ; then
|
|
apt-get -q -y install libgeoip1 libgeoip-dev geoip-bin > /dev/null 2>&1
|
|
if [ "$?" = 0 ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
echononl "\tInstall geoip via pecl.."
|
|
${PREFIX_PHP}/bin/pecl install geoip > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tphp.ini: extension=geoip.so .."
|
|
_extension="geoip.so"
|
|
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
## -----
|
|
## - END: Install geoip
|
|
## -----
|
|
|
|
|
|
## -----
|
|
## - Install APC
|
|
## -----
|
|
|
|
echononl "\tInstall APC via pecl.."
|
|
printf "\n" | ${PREFIX_PHP}/bin/pecl install apc > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tphp.ini: extension=APC .."
|
|
_extension="apc.so"
|
|
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## -----
|
|
## - END: Install APC
|
|
## -----
|
|
|
|
|
|
## -----
|
|
## - Install intl
|
|
## -----
|
|
|
|
echononl "\tInstall intl via pecl.."
|
|
printf "\n" | ${PREFIX_PHP}/bin/pecl install intl > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tphp.ini: extension=intl .."
|
|
_extension="intl.so"
|
|
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## -----
|
|
## - END: Install intl
|
|
## -----
|
|
|
|
|
|
## -----
|
|
## - Install uploadprogress
|
|
## -----
|
|
|
|
echononl "\tInstall uploadprogress via pecl.."
|
|
printf "\n" | ${PREFIX_PHP}/bin/pecl install uploadprogress > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tphp.ini: extension=uploadprogress .."
|
|
_extension="uploadprogress.so"
|
|
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## -----
|
|
## - END: Install uploadprogress
|
|
## -----
|
|
|
|
|
|
## -----
|
|
## - Install solr
|
|
## -----
|
|
|
|
echononl "\tInstall solr via pecl.."
|
|
printf "\n" | ${PREFIX_PHP}/bin/pecl install solr > /dev/null 2>&1
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
echononl "\tphp.ini: extension=solr .."
|
|
_extension="solr.so"
|
|
perl -i -n -p -e "s#^(\s*\[PHP\]\s*)#\1\nextension=${_extension}\n#" $PHP_INI_FILE
|
|
if [ "$?" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## -----
|
|
## - END: Install solr
|
|
## -----
|
|
|
|
|
|
|
|
## -----
|
|
## - Configure php.ini (base)
|
|
## -----
|
|
|
|
## - set date.timezon = "Europe/Berlin"
|
|
## -
|
|
echononl "\tphp.ini: date.timezone = \"Europe/Berlin\""
|
|
_key="date.timezone"
|
|
_val="Europe/Berlin"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
## - set short_open_tag = On
|
|
## -
|
|
echononl "\tphp.ini: short_open_tag = On"
|
|
_key="short_open_tag"
|
|
_val="Off"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set memory_limit = 256M
|
|
## -
|
|
echononl "\tphp.ini: memory_limit = 256M"
|
|
_key="memory_limit"
|
|
_val="256M"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set error_log = /var/log/apache2/php_error.log
|
|
## -
|
|
echononl "\tphp.ini: error_log = /var/log/apache2/php_error.log"
|
|
_key="error_log"
|
|
_val="/var/log/apache2/php_error.log"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set upload_max_filesize = 16M
|
|
## -
|
|
echononl "\tphp.ini: upload_max_filesize = 16M"
|
|
_key="upload_max_filesize"
|
|
_val="16M"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set post_max_size = 128M
|
|
## -
|
|
echononl "\tphp.ini: post_max_size = 128M"
|
|
_key="post_max_size"
|
|
_val="128M"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set max_file_uploads = 50
|
|
## -
|
|
echononl "\tphp.ini: max_file_uploads = 50"
|
|
_key="max_file_uploads"
|
|
_val=50
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set safe_mode = Off
|
|
## -
|
|
echononl "\tphp.ini: safe_mode = Off"
|
|
_key="safe_mode"
|
|
_val="Off"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
|
|
## - set register_globals = Off
|
|
## -
|
|
echononl "\tphp.ini: register_globals = Off"
|
|
_key="register_globals"
|
|
_val="Off"
|
|
if grep -e "^\s*${_key}\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*${_key}\s*=.*)#;\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
elif grep -e "^\s*;\s*error_log\s*=" $PHP_INI_FILE > /dev/null 2>&1 ; then
|
|
perl -i -n -p -e "s#^(\s*;${_key}\s*=.*)#\1\n${_key} = ${_val}#" $PHP_INI_FILE
|
|
_retval=$?
|
|
fi
|
|
if [ "$_retval" = "0" ]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fi
|
|
|
|
## -----
|
|
## - END: Configure php.ini (base)
|
|
## -----
|
|
|
|
|
|
|
|
|
|
cd $pwd
|
|
|
|
if $WITHOUT_APACHE_MOD_PHP ; then
|
|
cat<<END
|
|
|
|
Webserver
|
|
=========
|
|
|
|
- Activate php for using with mod_fcgid. Put the following directives
|
|
|
|
- Create config directory for your site, create fcgi-wrapper inside and
|
|
copy the php-ini file \"$PHP_INI_FILE\" into the
|
|
created configuration directory.
|
|
|
|
_site_base_dir=/var/www/adm.warenform.de
|
|
mkdir \${_site_base_dir}/conf
|
|
mkdir /var/www/\${_site_base_dir}/tmp
|
|
chown www-data:www-data \${_site_base_dir}/conf /var/www/\${_site_base_dir}/tmp
|
|
cat<<EOF
|
|
#!/bin/sh
|
|
export PHPRC="/var/www/\${_site_base_dir}/conf/"
|
|
export TMPDIR="/var/www/\${_site_base_dir}/tmp"
|
|
exec \${PREFIX_PHP}/bin/php-cgi
|
|
EOF
|
|
cp \$PHP_INI_FILE /var/www/\${_site_base_dir}/conf/
|
|
|
|
|
|
VHost Configuration
|
|
===================
|
|
|
|
in your VHost config file:
|
|
|
|
DocumentRoot "<path-to-documentroot>"
|
|
<Directory <path-to-documentroot>>
|
|
FCGIWrapper <path-to-site-conf-dir>/fcgid .php
|
|
<FilesMatch \.php$>
|
|
SetHandler fcgid-script
|
|
</FilesMatch>
|
|
Options +ExecCGI -Indexes
|
|
</Directory>
|
|
END
|
|
|
|
else
|
|
cat<<EOF
|
|
|
|
php.ini
|
|
=======
|
|
|
|
You may edit your php.ini file at ${APACHE_BASEDIR}/conf
|
|
to set PHP options.
|
|
|
|
|
|
httpd.conf
|
|
=========
|
|
|
|
|
|
1. Edit your httpd.conf to load the PHP module. The path on the right hand
|
|
side of the LoadModule statement must point to the path of the PHP
|
|
module on your system. The make install from above may have already
|
|
added this for you, but be sure to check.
|
|
|
|
For PHP 5:
|
|
LoadModule php5_module libexec/libphp5.so
|
|
|
|
I will hope, this is already done
|
|
|
|
|
|
2. Tell Apache to parse certain extensions as PHP. For example,
|
|
let's have Apache parse the .php extension as PHP. You could
|
|
have any extension(s) parse as PHP by simply adding more, with
|
|
each separated by a space. We'll add .phtml to demonstrate.
|
|
|
|
AddType application/x-httpd-php .php .phtml
|
|
|
|
It's also common to setup the .phps extension to show highlighted PHP
|
|
source, this can be done with:
|
|
|
|
AddType application/x-httpd-php-source .phps
|
|
|
|
or much better:
|
|
|
|
|
|
<IfModule mod_php5.c>
|
|
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
|
|
AddType application/x-httpd-php-source .phps
|
|
</IfModule>
|
|
|
|
|
|
EOF
|
|
fi
|
|
|
|
exit 0
|