Skip to content

Commit 6639d5d

Browse files
authored
Merge pull request #335 from JedMeister/php-updates
PHP updates
2 parents a0a1736 + 21ca2ba commit 6639d5d

1 file changed

Lines changed: 33 additions & 29 deletions

File tree

conf/php

Lines changed: 33 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,62 +1,66 @@
1-
#!/bin/sh -e
1+
#!/bin/bash -e
22

33
setini() {
44

55
file=$1
66
var=$2
77
val=$3
88

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
1414
exit 1
1515
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"
1919
fi
2020
}
2121

2222
# 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)
2828

2929
# 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)
3232

3333
cli_ini=cli/php.ini
3434
for f in /etc/php/?.?/*/php.ini; do
35-
[ -f $f ] || continue
35+
[[ -f "$f" ]] || continue
3636
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"
4242

4343
# 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"
4747
fi
4848
done
4949

5050
# auto adjust webmin default php.ini path to default php
5151
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}"
5656
TAB="$(printf '\t')"
5757
cat > ${WEBMIN_PHP_CONF} <<EOF
5858
php_ini=${APACHE_INI}=Configuration for mod_php${TAB}\
5959
${CGI_INI}=Configuration for scripts run via CGI${TAB}\
6060
${CLI_INI}=Configuration for command-line scripts
6161
EOF
6262
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

Comments
 (0)