X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=26cec9de6e499fa8bff20be1be11a9a7ebe259f9;hb=31b942f8f72c2f669577ac538bdaab5475500f96;hp=af35ec59ac29ce2533b7b055954ab2b0ad769281;hpb=d443845d6ce091d56ff5e8b56c7d54511e5a268c;p=php5-cn.git diff --git a/debian/postinst b/debian/postinst index af35ec5..26cec9d 100755 --- a/debian/postinst +++ b/debian/postinst @@ -5,18 +5,18 @@ set -e [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx case "$1" in - configure) - # continue below - ;; - - abort-upgrade|abort-remove|abort-deconfigure) - exit 0 - ;; - - *) - echo "postinst called with unknown argument \`$1'" >&2 - exit 0 - ;; + configure) + # continue below + ;; + + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; esac @@ -28,9 +28,13 @@ esac PKG="php5-cn" A2MODEDIR="/etc/apache2/mods-enabled" -EXTENSIONS="mysql" +### mysql je vec ukljucen u wheezyu +### EXTENSIONS="mysql" +EXTENSIONS="" PHP5DIR="/etc/php5" +PHP5MODADIR="$PHP5DIR/mods-available" PHP5CONFD="/etc/php5/conf.d" +PHP4DIR="/etc/php4" need_restart=0 @@ -61,24 +65,35 @@ phpinivalidate () { ini_file="$1" awk -F'[[:space:]]*=[[:space:]]*' \ - '/^[[:space:]]*[[:alpha:]_]+[[:space:]]*=[[:space:]]*[[:digit:]]+[MGK]B/ {print $1" = "$2}' \ - "$ini_file" + '/^[[:space:]]*[[:alpha:]_]+[[:space:]]*=[[:space:]]*[[:digit:]]+[MGK]B/ {print $1" = "$2}' \ + "$ini_file" } # Disable PHP4 module and enable Apache2 PHP5 module. # if [ -e /etc/apache2/apache2.conf ]; then - if [ -e "$A2MODEDIR/php4.load" ]; then - cp_echo "CN: Disabling PHP4 module for Apache2 web server" - a2dismod php4 >/dev/null || true - need_restart=1 - fi - if [ ! -e "$A2MODEDIR/php5.load" ] || [ ! -e "$A2MODEDIR/php5.conf" ]; then - cp_echo "CN: Enabling PHP5 module for Apache2 web server" - a2enmod php5 >/dev/null || true - need_restart=1 - fi + if [ -e "$A2MODEDIR/php4.load" ]; then + cp_echo "CN: Disabling PHP4 module for Apache2 web server" + a2dismod php4 >/dev/null || true + need_restart=1 + fi + if [ ! -e "$A2MODEDIR/php5.load" ] || [ ! -e "$A2MODEDIR/php5.conf" ]; then + cp_echo "CN: Enabling PHP5 module for Apache2 web server" + a2enmod php5 >/dev/null || true + + if [ -e "$A2MODEDIR/php5.conf" ]; then + if egrep -qi "^[[:space:]]*php_admin_value engine Off" "$A2MODEDIR/php5.conf"; then + db_fset php5-cn/userdir seen false + db_title php5-cn - konfiguracija + db_subst php5-cn/userdir php5_conf "$A2MODEDIR/php5.conf" + db_input critical php5-cn/userdir || true + db_go || true + fi + fi + + need_restart=1 + fi fi @@ -86,93 +101,106 @@ fi # for SAPI in apache2 cli; do - if [ ! -d "$PHP5DIR/$SAPI" ]; then - cp_echo "CN: Creating configuration directory $PHP5DIR/$SAPI/" - mkdir -p $PHP5DIR/$SAPI/ - fi + if [ ! -d "$PHP5DIR/$SAPI" ]; then + cp_echo "CN: Creating configuration directory $PHP5DIR/$SAPI/" + mkdir -p $PHP5DIR/$SAPI/ + fi - ini_file="$PHP5DIR/$SAPI/php.ini" + ini_file="$PHP5DIR/$SAPI/php.ini" + + if [ ! -f "$ini_file" ]; then - 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/php5/php.ini-dist.cli" ]; then - cat /usr/share/php5/php.ini-dist.cli > $ini_file_tmp - fi - else - if [ -f "/usr/share/php5/php.ini-dist" ]; then - cat /usr/share/php5/php.ini-dist > $ini_file_tmp - fi - fi - cp_mv $ini_file_tmp $ini_file - need_restart=1 + cp_echo "CN: Generating configuration file $ini_file" + + ini_file_tmp=`mktemp $ini_file.tmp.XXXXXX` + if [ "$SAPI" = "cli" ]; then + if [ -f "/usr/share/php5/php.ini-production.cli" ]; then + cat /usr/share/php5/php.ini-production.cli > $ini_file_tmp + fi + else + if [ -f "/usr/share/php5/php.ini-production" ]; then + cat /usr/share/php5/php.ini-production > $ini_file_tmp + fi fi - chmod 644 $ini_file + cp_mv $ini_file_tmp $ini_file + need_restart=1 + fi + chmod 644 $ini_file done # Check for /etc/php5/conf.d/ directory. # if [ ! -d "$PHP5CONFD" ]; then - cp_echo "CN: Creating configuration directory $PHP5CONFD" - mkdir -p $PHP5CONFD/ + cp_echo "CN: Creating configuration directory $PHP5CONFD" + mkdir -p $PHP5CONFD/ fi +# Brisanje obsolete datoteke mysql.ini u $PHP5CONFD +# +if [ -f "$PHP5CONFD/mysql.ini" ]; then + # just to make sure mysql is included in _new-style_ configuration + if [ -f "$PHP5MODADIR/mysql.ini" ]; then + cp_echo "CN: Removing obsolete $PHP5CONFD/mysql.ini" + rm -f $PHP5CONFD/mysql.ini + else + cp_echo "CN: WARNING: Obsolete $PHP5CONFD/mysql.ini present, and no $PHP5MODADIR/mysql.ini!" + fi +fi # Check if PHP5 extensions are enabled. # for php5ext in $EXTENSIONS; do - php5ext_re="^[[:space:]]*extension[[:space:]]*=[[:space:]]*$php5ext\.so" + php5ext_re="^[[:space:]]*extension[[:space:]]*=[[:space:]]*$php5ext\.so" + + # Remove extension entry from /etc/php5/(apache2|cli).ini + # configuration files. + for SAPI in apache2 cli; do - # Remove extension entry from /etc/php5/(apache2|cli).ini - # configuration files. - for SAPI in apache2 cli; do + ini_file="$PHP5DIR/$SAPI/php.ini" - ini_file="$PHP5DIR/$SAPI/php.ini" + if [ -f "$ini_file" ]; then - if [ -f "$ini_file" ]; then + if egrep -q "$php5ext_re" "$ini_file"; then + cp_echo "CN: Removing $php5ext extension from file $ini_file" + fi - cp_echo "CN: Removing $php5ext extension from file $ini_file" + cp_check_and_sed "$php5ext_re" \ + "/$php5ext_re/d" \ + "$ini_file" && need_restart=1 || true + fi + done - cp_check_and_sed "$php5ext_re" \ - "/$php5ext_re/d" \ - "$ini_file" && need_restart=1 || true - fi - done + # Check extension configuration in /etc/php5/conf.d/ directory. + if [ ! -f "$PHP5CONFD/$php5ext.ini" ]; then - # Check extension configuration in /etc/php5/conf.d/ directory. - if [ ! -f "$PHP5CONFD/$php5ext.ini" ]; then + cp_echo "CN: Creating configuration file $PHP5CONFD/$php5ext.ini" - cp_echo "CN: Creating configuration file $PHP5CONFD/$php5ext.ini" - - php5ext_up=`echo $php5ext | tr [:lower:] [:upper:] | sed 's/Y/y/'` - INITMP=`mktemp $PHP5CONFD/$php5ext.ini.tmp.XXXXXX` + php5ext_up=`echo $php5ext | tr [:lower:] [:upper:] | sed 's/Y/y/'` + INITMP=`mktemp $PHP5CONFD/$php5ext.ini.tmp.XXXXXX` - cp_echo "CN: Adding $php5ext extension to file $PHP5CONFD/$php5ext.ini" - - printf "# configuration for php %s module\nextension=%s.so\n" "${php5ext_up}" "${php5ext}" >> "$INITMP" - cp_mv "$INITMP" "$PHP5CONFD/$php5ext.ini" - - need_restart=1 - else + cp_echo "CN: Adding $php5ext extension to file $PHP5CONFD/$php5ext.ini" - if ! grep -q "$php5ext_re" "$PHP5CONFD/$php5ext.ini"; then - - cp_echo "CN: Adding $php5ext extension to file $PHP5CONFD/$php5ext.ini" - - INITMP=`mktemp $PHP5CONFD/$php5ext.ini.tmp.XXXXXX` - cat "$PHP5CONFD/$php5ext.ini" > "$INITMP" - echo "extension=$php5ext.so" >> "$INITMP" - cp_mv "$INITMP" "$PHP5CONFD/$php5ext.ini" - - need_restart=1 - fi - fi - chmod 644 $PHP5CONFD/$php5ext.ini + printf "# configuration for php %s module\nextension=%s.so\n" "${php5ext_up}" "${php5ext}" >> "$INITMP" + cp_mv "$INITMP" "$PHP5CONFD/$php5ext.ini" + + need_restart=1 + else + + if ! grep -q "$php5ext_re" "$PHP5CONFD/$php5ext.ini"; then + + cp_echo "CN: Adding $php5ext extension to file $PHP5CONFD/$php5ext.ini" + + INITMP=`mktemp $PHP5CONFD/$php5ext.ini.tmp.XXXXXX` + cat "$PHP5CONFD/$php5ext.ini" > "$INITMP" + echo "extension=$php5ext.so" >> "$INITMP" + cp_mv "$INITMP" "$PHP5CONFD/$php5ext.ini" + + need_restart=1 + fi + fi + chmod 644 $PHP5CONFD/$php5ext.ini done @@ -181,102 +209,141 @@ done # * upload_max_filesize = 256M # * post_max_size, memory_limit = depends on system memory, we are using # phpmemlimit() function. +# * error_reporting = E_ERROR # for SAPI in apache2 cli; do - if [ ! -d "$PHP5DIR/$SAPI" ]; then - continue - fi + if [ ! -d "$PHP5DIR/$SAPI" ]; then + continue + fi - ini_file="$PHP5DIR/$SAPI/php.ini" - db_get php5-cn/${SAPI} || true - if [ "$RET" = "true" ]; then - - cp_echo "CN: Checking and enabling some specific parameters in file $ini_file" - - phplimit="$(phpmemlimit)M" - - if [ -f "$ini_file" ]; then - - 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:]]*=" \ - "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${phplimit}/" \ - "$ini_file" && need_restart=1 || true - - 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 - - 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 ! 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" - chmod 644 "$ini_file" - - if [ -e "$ini_file_tmp" ]; then - rm -f "$ini_file_tmp" - fi - fi + ini_file="$PHP5DIR/$SAPI/php.ini" + db_get php5-cn/${SAPI} || true + if [ "$RET" = "true" ]; then - # Validate php.ini values. - if [ -f "$ini_file" ]; then - php5_inivalues="$(phpinivalidate "$ini_file")" - if [ -n "$php5_inivalues" ]; then - db_fset php5-cn/inivalues seen false - db_title php5-cn - konfiguracija za $(echo ${SAPI} | sed 's/a/A/;s/cli/CLI/') - db_subst php5-cn/inivalues php5_sapi $(echo ${SAPI} | sed 's/a/A/;s/cli/CLI/') - db_subst php5-cn/inivalues ini_file "$ini_file" - db_capb escape - db_subst php5-cn/inivalues php5_inivalues "$(echo -n "$php5_inivalues" | debconf-escape -e)" - db_input critical php5-cn/inivalues || true - db_go || true - fi - fi + cp_echo "CN: Checking and enabling some specific parameters in file $ini_file" + + phplimit="$(phpmemlimit)M" + + if [ -f "$ini_file" ]; then + + 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:]]*=" \ + "s/^[[:space:]]*post_max_size[[:space:]]*=.*/post_max_size = ${phplimit}/" \ + "$ini_file" && need_restart=1 || true + + cp_check_and_sed "^[[:space:]]*memory_limit[[:space:]]*=" \ + "s/^[[:space:]]*memory_limit[[:space:]]*=.*/memory_limit = ${phplimit}/" \ + "$ini_file" && need_restart=1 || true + + cp_check_and_sed "^[[:space:]]*error_reporting[[:space:]]*=" \ + "s/^[[:space:]]*error_reporting[[:space:]]*=.*/error_reporting = E_ERROR/" \ + "$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 + + 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 ! 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 + if ! egrep -q "^[[:space:]]*error_reporting[[:space:]]*=" $ini_file_tmp; then + echo "error_reporting = E_ERROR" >> "$ini_file_tmp" + need_restart=1 + fi + cp_mv "$ini_file_tmp" "$ini_file" + chmod 644 "$ini_file" + + if [ -e "$ini_file_tmp" ]; then + rm -f "$ini_file_tmp" + fi + fi + + # Validate php.ini values. + if [ -f "$ini_file" ]; then + php5_inivalues="$(phpinivalidate "$ini_file")" + if [ -n "$php5_inivalues" ]; then + db_fset php5-cn/inivalues seen false + db_title php5-cn - konfiguracija za $(echo ${SAPI} | sed 's/a/A/;s/cli/CLI/') + db_subst php5-cn/inivalues php5_sapi $(echo ${SAPI} | sed 's/a/A/;s/cli/CLI/') + db_subst php5-cn/inivalues ini_file "$ini_file" + db_capb escape + db_subst php5-cn/inivalues php5_inivalues "$(echo -n "$php5_inivalues" | debconf-escape -e)" + db_input critical php5-cn/inivalues || true + db_go || true + fi + fi done +# Compare active PHP5 extensions with PHP4 ones, if PHP4 configuration still exists. +# +if [ -d "${PHP4DIR}" ] && [ -f "${PHP4DIR}/apache2/php.ini" ]; then + + phpext_re='^[[:space:]]*extension[[:space:]]*=[[:space:]]*["]{0,1}(.*)\.so["]{0,1}' + + # Get all active PHP4 extensions. + php4_ext="$(find ${PHP4DIR} -type f -name *.ini | + egrep "\/(conf\.d|apache2|cli)\/" | + xargs sed -rn 's/'$phpext_re'/\1/Ip')" || true + + # Get all active PHP5 extensions. + php5_ext="" + if [ -d "${PHP5DIR}" ]; then + php5_ext="$(find ${PHP5DIR} -type f -name *.ini | + egrep "\/(conf\.d|apache2|cli)\/" | + xargs sed -rn 's/'$phpext_re'/\1/Ip')" || true + fi + + # Compare PHP5 <-> PHP4 extensions. + php5_ext_mis="" + for ext in $php4_ext; do + if [ "$(echo $php5_ext | egrep $ext)" = "" ]; then + php5_ext_mis="\n${ext}${php5_ext_mis}" + fi + done + + # Some PHP5 extensions are not active. + if [ -n "$php5_ext_mis" ]; then + db_fset php5-cn/extensions seen false + db_title php5-cn - konfiguracija + db_capb escape + db_subst php5-cn/extensions php5_extensions "${php5_ext_mis#*\n}" + db_input critical php5-cn/extensions || true + db_go || true + fi +fi + + db_stop || true # Restart Apache2 web server if needed. # if [ $need_restart -eq 1 ]; then - - # Check Apache2 web server configuration. - if /usr/sbin/apache2ctl configtest 2>/dev/null; then - - # Restart Apache2 web server. - if [ -x "/etc/init.d/apache2" ]; then - if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then - invoke-rc.d apache2 force-reload || true - else - /etc/init.d/apache2 force-reload || true - fi - fi - else - - # Something is broken. - cp_echo "CN: Your Apache2 configuration is broken." - cp_echo "CN: Please, check the service after the installation finishes!" - fi + + # Check Apache2 web server configuration. + if apache2ctl configtest 2>/dev/null; then + invoke-rc.d apache2 force-reload || true + else + # Something is broken. + cp_echo "CN: Your Apache2 configuration is broken." + cp_echo "CN: Please, check the service after the installation finishes!" + fi fi @@ -284,4 +351,6 @@ fi # cp_mail "$PKG" +#DEBHELPER# + exit 0