|
1 | | -#!/bin/sh -e |
| 1 | +#!/bin/bash -e |
2 | 2 |
|
3 | 3 | setini() { |
4 | 4 |
|
5 | 5 | file=$1 |
6 | 6 | var=$2 |
7 | 7 | val=$3 |
8 | 8 |
|
9 | | - count=$(grep -c "^;\?$var" $file) || true |
10 | | - if [ "$count" -eq 0 ]; then |
11 | | - echo "[WARNING] no match for $var in $file" |
12 | | - elif [ "$count" -gt 1 ]; then |
13 | | - echo "[FATAL] more than one match for $var in $file" |
| 9 | + count=$(grep -c "^;\?$var" "$file") || true |
| 10 | + if [[ "$count" -eq 0 ]]; then |
| 11 | + echo "[WARNING] no match for $var in $file - skipping" >&2 |
| 12 | + elif [[ "$count" -gt 1 ]]; then |
| 13 | + echo "[FATAL] more than one match for $var in $file" >&2 |
14 | 14 | exit 1 |
15 | 15 | else |
16 | | - echo " - $var=$val" |
17 | | - sed -i "/^;* *$var *=/ s|^;* *$var|$var|g" $file |
18 | | - sed -i "/^$var *=/ s|= *[^ ]\+|=$val|g" $file |
| 16 | + echo " - Updating $file - $var=$val" |
| 17 | + sed -i "/^;* *$var *=/ s|^;* *$var|$var|g" "$file" |
| 18 | + sed -i "/^$var *=/ s|= *[^ ]\+|=$val|g" "$file" |
19 | 19 | fi |
20 | 20 | } |
21 | 21 |
|
22 | 22 | # use these defaults unless otherwise set |
23 | | -set ${PHP_MEMORY_LIMIT:=128M} # php.ini default: 128MB (i.e. unchanged) |
24 | | -set ${PHP_POST_MAX_SIZE:=16M} # php.ini default: 8MB |
25 | | -set ${PHP_UPLOAD_MAX_FILESIZE:=8M} # php.ini default: 2MB |
26 | | -set ${PHP_MAX_EXECUTION_TIME:=30} # php.ini default: 30 (seconds - i.e. unchanged) |
27 | | -set ${PHP_MAX_INPUT_VARS:=1000} # php.ini default: 1000 (i.e. unchanged) |
| 23 | +set "${PHP_MEMORY_LIMIT:=128M}" # php.ini default: 128MB (i.e. unchanged) |
| 24 | +set "${PHP_POST_MAX_SIZE:=16M}" # php.ini default: 8MB |
| 25 | +set "${PHP_UPLOAD_MAX_FILESIZE:=8M}" # php.ini default: 2MB |
| 26 | +set "${PHP_MAX_EXECUTION_TIME:=30}" # php.ini default: 30 (seconds - i.e. unchanged) |
| 27 | +set "${PHP_MAX_INPUT_VARS:=1000}" # php.ini default: 1000 (i.e. unchanged) |
28 | 28 |
|
29 | 29 | # no TKLDEV facility to adjust these, but should be ok defaults |
30 | | -set ${OPCACHE_INTERNAL_STR_BUFF:=8} # php.ini default: 4(MB) |
31 | | -set ${OPCACHE_REVALIDATE_FREQ:=30} # php.ini default: 2 (seconds) |
| 30 | +set "${OPCACHE_INTERNAL_STR_BUFF:=8}" # php.ini default: 4(MB) |
| 31 | +set "${OPCACHE_REVALIDATE_FREQ:=30}" # php.ini default: 2 (seconds) |
32 | 32 |
|
33 | 33 | cli_ini=cli/php.ini |
34 | 34 | for f in /etc/php/?.?/*/php.ini; do |
35 | | - [ -f $f ] || continue |
| 35 | + [[ -f "$f" ]] || continue |
36 | 36 | echo "updating $f" |
37 | | - setini $f memory_limit $PHP_MEMORY_LIMIT |
38 | | - setini $f post_max_size $PHP_POST_MAX_SIZE |
39 | | - setini $f upload_max_filesize $PHP_UPLOAD_MAX_FILESIZE |
40 | | - setini $f max_execution_time $PHP_MAX_EXECUTION_TIME |
41 | | - setini $f max_input_vars $PHP_MAX_INPUT_VARS |
| 37 | + setini "$f" memory_limit "$PHP_MEMORY_LIMIT" |
| 38 | + setini "$f" post_max_size "$PHP_POST_MAX_SIZE" |
| 39 | + setini "$f" upload_max_filesize "$PHP_UPLOAD_MAX_FILESIZE" |
| 40 | + setini "$f" max_execution_time "$PHP_MAX_EXECUTION_TIME" |
| 41 | + setini "$f" max_input_vars "$PHP_MAX_INPUT_VARS" |
42 | 42 |
|
43 | 43 | # adjust opcache settings for Apache only (not cli) |
44 | | - if [ "${f%%$cli_ini}" = "$f" ]; then |
45 | | - setini $f opcache.interned_strings_buffer $OPCACHE_INTERNAL_STR_BUFF |
46 | | - setini $f opcache.revalidate_freq $OPCACHE_REVALIDATE_FREQ |
| 44 | + if [[ "${f%%"$cli_ini"}" = "$f" ]]; then |
| 45 | + setini "$f" opcache.interned_strings_buffer "$OPCACHE_INTERNAL_STR_BUFF" |
| 46 | + setini "$f" opcache.revalidate_freq "$OPCACHE_REVALIDATE_FREQ" |
47 | 47 | fi |
48 | 48 | done |
49 | 49 |
|
50 | 50 | # auto adjust webmin default php.ini path to default php |
51 | 51 | WEBMIN_PHP_CONF=/etc/webmin/phpini/config |
52 | | -if [ -f "${WEBMIN_PHP_CONF}" ]; then |
53 | | - CLI_INI="$(php -i | sed -n '\|Loaded Configuration File|s|^.*=> ||'p)" |
54 | | - CGI_INI="$(echo $CLI_INI | sed 's|cli|cgi|')" |
55 | | - APACHE_INI="$(echo $CLI_INI | sed 's|cli|apache2|')" |
| 52 | +if [[ -f "${WEBMIN_PHP_CONF}" ]]; then |
| 53 | + CLI_INI="$(php -i | sed -n '\|Loaded Configuration File|s|^.*=> ||p')" |
| 54 | + CGI_INI="${CLI_INI/cli/cgi}" |
| 55 | + APACHE_INI="${CLI_INI/cli/apache2}" |
56 | 56 | TAB="$(printf '\t')" |
57 | 57 | cat > ${WEBMIN_PHP_CONF} <<EOF |
58 | 58 | php_ini=${APACHE_INI}=Configuration for mod_php${TAB}\ |
59 | 59 | ${CGI_INI}=Configuration for scripts run via CGI${TAB}\ |
60 | 60 | ${CLI_INI}=Configuration for command-line scripts |
61 | 61 | EOF |
62 | 62 | fi |
| 63 | + |
| 64 | +# ensure php session dir exists and is writeable by the webserver user |
| 65 | +mkdir -p /var/lib/php/sessions |
| 66 | +chown -R www-data:www-data /var/lib/php/sessions |
0 commit comments