X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=php4-cn.git;a=blobdiff_plain;f=debian%2Fpostinst;h=26a3e5f080277fba4862eb7754344aaeca3f5fab;hp=ee9870051c24d14016d331c9411ea8b338d8d790;hb=de39535cd06585d6895fb78304d45c4f83d04273;hpb=412d2d6b997923dc1dfb094e3cb40922efe56ff6 diff --git a/debian/postinst b/debian/postinst index ee98700..26a3e5f 100755 --- a/debian/postinst +++ b/debian/postinst @@ -20,6 +20,9 @@ case "$1" in esac +# Load debconf +. /usr/share/debconf/confmodule + # Include CARNet functions . /usr/share/carnet-tools/functions.sh @@ -32,19 +35,75 @@ PHP4CONFD="/etc/php4/conf.d" need_restart=0 +# phpmemlimit () +# +# Calculate memory size for PHP memory_limit option. +# +phpmemlimit () { + + local memtotal memlimit + memtotal=`awk 'tolower($1) == "memtotal:" { printf("%i", $2/1024); }' /proc/meminfo` + + if [ $memtotal -lt 512 ]; then memlimit=16; fi + if [ $memtotal -ge 512 ]; then memlimit=32; fi + if [ $memtotal -gt 1024 ]; then memlimit=64; fi + + echo $memlimit +} + + # Disable PHP5 module and enable Apache2 PHP4 module. # if [ -e /etc/apache2/apache2.conf ]; then - if [ -e "$A2MODEDIR/php5.load" ]; then - cp_echo "CN: Disabling PHP5 module for Apache2 web server" - a2dismod php5 >/dev/null || true - need_restart=1 + if [ -e "$A2MODEDIR/php5.load" ]; then + cp_echo "CN: Disabling PHP5 module for Apache2 web server" + a2dismod php5 >/dev/null || true + need_restart=1 + fi + if [ ! -e "$A2MODEDIR/php4.load" ] || [ ! -e "$A2MODEDIR/php4.conf" ]; then + cp_echo "CN: Enabling PHP4 module for Apache2 web server" + a2enmod php4 >/dev/null || true + need_restart=1 + fi +fi + + +# Check for PHP4 SAPI directories and configuration files. +# +for SAPI in apache2 cli; do + + if [ ! -d "$PHP4DIR/$SAPI" ]; then + cp_echo "CN: Creating configuration directory $PHP4DIR/$SAPI/" + mkdir -p $PHP4DIR/$SAPI/ fi - if [ ! -e "$A2MODEDIR/php4.load" ] || [ ! -e "$A2MODEDIR/php4.conf" ]; then - cp_echo "CN: Enabling PHP4 module for Apache2 web server" - a2enmod php4 >/dev/null || true + + ini_file="$PHP4DIR/$SAPI/php.ini" + + if [ ! -f "$ini_file" ]; then + + cp_echo "CN: Generating configuration file $ini_file" + + ini_file_tmp=`mktemp $ini_file.tmp.XXXXXX` + if [ "$SAPI" = "cli" ]; then + if [ -f "/usr/share/php4/php.ini-dist.cli" ]; then + cat /usr/share/php4/php.ini-dist.cli > $ini_file_tmp + fi + else + if [ -f "/usr/share/php4/php.ini-dist" ]; then + cat /usr/share/php4/php.ini-dist > $ini_file_tmp + fi + fi + cp_mv $ini_file_tmp $ini_file need_restart=1 fi +done + + +# Check for /etc/php4/conf.d/ directory. +# +if [ ! -d "$PHP4CONFD" ]; then + cp_echo "CN: Creating configuration directory $PHP4CONFD" + mkdir -p $PHP4CONFD/ fi @@ -54,31 +113,22 @@ for php4ext in $EXTENSIONS; do php4ext_re="^[[:space:]]*extension[[:space:]]*=[[:space:]]*$php4ext\.so" - # Remove extension entry from /etc/php4/(apache|apache2|cgi|cli).ini + # Remove extension entry from /etc/php4/(apache2|cli).ini # configuration files. - for SAPI in apache apache2 cgi cli; do - - if [ -d "$PHP4DIR/$SAPI" ]; then + for SAPI in apache2 cli; do - ini_file="$PHP4DIR/$SAPI/php.ini" + ini_file="$PHP4DIR/$SAPI/php.ini" - if [ -f "$ini_file" ]; then + if [ -f "$ini_file" ]; then cp_echo "CN: Removing $php4ext extension from file $ini_file" cp_check_and_sed "$php4ext_re" \ "/$php4ext_re/d" \ "$ini_file" && need_restart=1 || true - fi fi done - # Check $PHP4CONFD directory. - if [ ! -d "$PHP4CONFD" ]; then - cp_echo "CN: Creating configuration directory $PHP4CONFD" - mkdir $PHP4CONFD - fi - # Check extension configuration in /etc/php4/conf.d/ directory. if [ ! -f "$PHP4CONFD/$php4ext.ini" ]; then @@ -113,61 +163,68 @@ done # Enable some PHP4 tweaks for Apache2 web server (/etc/php4/apache2/php.ini). # # * upload_max_filesize = 256M -# * post_max_size = 256M -# * memory_limit = 256M +# * post_max_size, memory_limit = depends on system memory, we are using +# phpmemlimit() function. # -for SAPI in apache apache2 cgi cli; do +for SAPI in apache2 cli; do if [ ! -d "$PHP4DIR/$SAPI" ]; then continue fi - ini_file="$PHP4DIR/$SAPI/php.ini" + db_get php4-cn/${SAPI} || true + if [ "$RET" = "true" ]; then + + ini_file="$PHP4DIR/$SAPI/php.ini" - cp_echo "CN: Checking and enabling some CARNet specific parameters in file $ini_file" + cp_echo "CN: Checking and enabling some specific parameters in file $ini_file" + + phplimit="$(phpmemlimit)M" - if [ -f "$ini_file" ]; then + if [ -f "$ini_file" ]; then - cp_check_and_sed "^[[:space:]]*upload_max_filesize[[:space:]]*=[[:space:]]*2M" \ + cp_check_and_sed "^[[:space:]]*upload_max_filesize[[:space:]]*=" \ 's/^[[:space:]]*upload_max_filesize[[:space:]]*=.*/upload_max_filesize = 256M/' \ "$ini_file" && need_restart=1 || true - cp_check_and_sed "^[[:space:]]*post_max_size[[:space:]]*=[[:space:]]*8M" \ - 's/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = 256M/' \ + cp_check_and_sed "^[[:space:]]*post_max_size[[:space:]]*=" \ + "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${phplimit}/" \ "$ini_file" && need_restart=1 || true - cp_check_and_sed "^[[:space:]]*memory_limit[[:space:]]*=[[:space:]]*8M" \ - 's/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = 256M/' \ + cp_check_and_sed "^[[:space:]]*memory_limit[[:space:]]*=" \ + "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${phplimit}/" \ "$ini_file" && need_restart=1 || true - fi - - ini_file_tmp=`mktemp $ini_file.tmp.XXXXXX` - if [ -f "$ini_file" ]; then - cat $ini_file > $ini_file_tmp - fi + fi - if ! egrep -q "^[[:space:]]*(upload_max_filesize|post_max_size|memory_limit)[[:space:]]*=" $ini_file_tmp; then + ini_file_tmp=`mktemp $ini_file.tmp.XXXXXX` + if [ -f "$ini_file" ]; then + cat $ini_file > $ini_file_tmp + fi - if ! egrep -q "^[[:space:]]*upload_max_filesize[[:space:]]*=" $ini_file_tmp; then - echo "upload_max_filesize = 256M" >> "$ini_file_tmp" - fi - if ! egrep -q "^[[:space:]]*post_max_size[[:space:]]*=" $ini_file_tmp; then - echo "post_max_size = 256MB" >> "$ini_file_tmp" - fi - if ! egrep -q "^[[:space:]]*memory_limit[[:space:]]*=" $ini_file_tmp; then - echo "memory_limit = 256M" >> "$ini_file_tmp" - fi - cp_mv "$ini_file_tmp" "$ini_file" - + if ! egrep -q "^[[:space:]]*upload_max_filesize[[:space:]]*=" $ini_file_tmp; then + echo "upload_max_filesize = 256M" >> "$ini_file_tmp" need_restart=1 - fi - - if [ -e "$ini_file_tmp" ]; then + fi + if ! egrep -q "^[[:space:]]*post_max_size[[:space:]]*=" $ini_file_tmp; then + echo "post_max_size = ${phplimit}" >> "$ini_file_tmp" + need_restart=1 + fi + if ! egrep -q "^[[:space:]]*memory_limit[[:space:]]*=" $ini_file_tmp; then + echo "memory_limit = ${phplimit}" >> "$ini_file_tmp" + need_restart=1 + fi + cp_mv "$ini_file_tmp" "$ini_file" + + if [ -e "$ini_file_tmp" ]; then rm -f "$ini_file_tmp" + fi fi done +db_stop || true + + # Restart Apache2 web server if needed. # if [ $need_restart -eq 1 ]; then