Skip to content

Commit eeb9926

Browse files
committed
Improve php-fpm backend: enable multiphp support
1 parent 3c98468 commit eeb9926

File tree

6 files changed

+51
-37
lines changed

6 files changed

+51
-37
lines changed

bin/v-add-web-domain-backend

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
6262
sed -e "s|%backend_port%|$backend_port|" \
6363
-e "s|%user%|$user|g"\
6464
-e "s|%domain%|$domain|g"\
65-
-e "s|%backend%|$backend_type|g" > $pool/$backend_type.conf
65+
-e "s|%backend%|$backend_type|g"\
66+
-e "s|%backend_version%|$version|g" > $pool/$backend_type.conf
6667

6768

6869
#----------------------------------------------------------#

bin/v-add-web-php

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ fi
5151
mph="php$version-mbstring php$version-bcmath php$version-cli php$version-curl
5252
php$version-fpm php$version-gd php$version-intl php$version-mysql
5353
php$version-soap php$version-xml php$version-zip php$version-mbstring
54-
php$version-json php$version-bz2 php$version-pspell"
54+
php$version-json php$version-bz2 php$version-pspell php$version-imagick"
5555

5656
# Check is version is 7.1 or below to add mcrypt
5757
if [[ `echo "$version 7.2" | awk '{print ($1 < $2)}'` == 1 ]]; then
@@ -83,42 +83,32 @@ fi
8383

8484
# Check if required modules for apache2 are enabled
8585
if [ "$WEB_SYSTEM" = "apache2" ]; then
86-
if ! ls -l /etc/apache2/mods-enabled/ | grep --quiet "proxy_fcgi"; then
87-
a2enmod proxy_fcgi > /dev/null 2>&1
88-
restart_apache2="yes"
86+
if ! a2query -q -m proxy_fcgi; then
87+
a2enmod -q proxy_fcgi
8988
fi
90-
if ! ls -l /etc/apache2/mods-enabled/ | grep --quiet "setenvif"; then
91-
a2enmod setenvif > /dev/null 2>&1
92-
restart_apache2="yes"
93-
fi
94-
if [ "$restart_apache2" = "yes" ]; then
95-
service apache2 restart > /dev/null 2>&1
89+
if ! a2query -q -m setenvif; then
90+
a2enmod -q setenvif
9691
fi
92+
$BIN/v-restart-web
9793
fi
9894

9995
# Configure fpm
10096
update-rc.d php$version-fpm defaults > /dev/null 2>&1
101-
v_tpl=$(echo "$version" | sed -e 's/[.]//')
97+
v_tpl=${version//.}
10298
rm -f /etc/php/$version/fpm/pool.d/*
10399
cp -f $HESTIA_INSTALL_DIR/php-fpm/dummy.conf /etc/php/$version/fpm/pool.d/
104100
sed -i "s/9999/99$v_tpl/g" /etc/php/$version/fpm/pool.d/dummy.conf
105101

106-
# Install php templates
107-
cp -f $HESTIA_INSTALL_DIR/multiphp/$WEB_SYSTEM/PHP-${version//.}.sh \
108-
$HESTIA/data/templates/web/$WEB_SYSTEM/
109-
cp -f $HESTIA_INSTALL_DIR/multiphp/$WEB_SYSTEM/PHP-${version//.}.tpl \
110-
$HESTIA/data/templates/web/$WEB_SYSTEM/
111-
cp -f $HESTIA_INSTALL_DIR/multiphp/$WEB_SYSTEM/PHP-${version//.}.stpl \
112-
$HESTIA/data/templates/web/$WEB_SYSTEM/
113-
chmod a+x $HESTIA/data/templates/web/$WEB_SYSTEM/PHP-${version//.}.sh
114-
102+
# Install backend template
103+
cp -f $HESTIA_INSTALL_DIR/multiphp/php-fpm/default.tpl \
104+
$HESTIA/data/templates/web/php-fpm/PHP-${version/\./_}.tpl
115105

116106
#----------------------------------------------------------#
117107
# Hestia #
118108
#----------------------------------------------------------#
119109

120110
# Logging
121-
log_history "installed php $job"
111+
log_history "installed php $version" '' 'admin'
122112
log_event "$OK" "$ARGUMENTS"
123113

124114
exit

bin/v-change-web-domain-backend-tpl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ cat $WEBTPL/$WEB_BACKEND/$template.tpl |\
6969
-e "s|%user%|$user|g"\
7070
-e "s|%domain%|$domain|g"\
7171
-e "s|%domain_idn%|$domain_idn|"\
72-
-e "s|%backend%|$backend_type|g" > $pool/$backend_type.conf
72+
-e "s|%backend%|$backend_type|g"\
73+
-e "s|%backend_version%|$version|g" > $pool/$backend_type.conf
7374

7475
# Checking backend pool configuration
7576
if [ "$backend_type" = "$user" ]; then

bin/v-delete-web-php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,8 @@ if [ -f "$php_fpm" ]; then
7575
echo "apt-get purge $mph"
7676
fi
7777

78-
# Install php templates
79-
rm -f $HESTIA/data/templates/web/$WEB_SYSTEM/PHP-${version//.}.sh
80-
rm -f $HESTIA/data/templates/web/$WEB_SYSTEM/PHP-${version//.}.tpl
81-
rm -f $HESTIA/data/templates/web/$WEB_SYSTEM/PHP-${version//.}.stpl
82-
78+
# Remove php templates
79+
rm -f $HESTIA/data/templates/web/php-fpm/PHP-${version/\./_}.tpl
8380

8481
#----------------------------------------------------------#
8582
# Hestia #

func/domain.sh

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,14 @@ is_web_alias_new() {
8484

8585
# Prepare web backend
8686
prepare_web_backend() {
87-
pool=$(find -L /etc/php/ -name "$domain.conf" -exec dirname {} \;)
88-
8987
# Check if multiple-PHP installed
9088
regex="socket-(\d+)_(\d+)"
91-
if [[ $template =~ ^socket-([0-9])\_([0-9])$ ]]
92-
then
89+
if [[ $template =~ ^PHP-([0-9])\_([0-9])$ ]]; then
9390
version="${BASH_REMATCH[1]}.${BASH_REMATCH[2]}"
9491
pool=$(find -L /etc/php/$version -type d \( -name "pool.d" -o -name "*fpm.d" \))
9592
else
96-
if [ "$pool" == "" ]
97-
then
98-
version=`echo "<?php echo (float)phpversion();" | php`
99-
pool=$(find -L /etc/php/$version -type d \( -name "pool.d" -o -name "*fpm.d" \))
100-
fi
93+
version=$(php -r "echo (float)phpversion();")
94+
pool=$(find -L /etc/php/$version -type d \( -name "pool.d" -o -name "*fpm.d" \))
10195
fi
10296

10397
if [ ! -e "$pool" ]; then
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[%domain%]
2+
3+
listen = /run/php/php%backend_version%-fpm-%domain%.sock
4+
listen.owner = %user%
5+
listen.group = www-data
6+
listen.mode = 0660
7+
8+
user = %user%
9+
group = %user%
10+
11+
pm = ondemand
12+
pm.max_children = 8
13+
pm.max_requests = 4000
14+
pm.process_idle_timeout = 10s
15+
pm.status_path = /status
16+
17+
php_admin_value[upload_tmp_dir] = /home/%user%/tmp
18+
php_admin_value[session.save_path] = /home/%user%/tmp
19+
php_admin_value[open_basedir] = /home/%user%/web/%domain%/public_html:/home/%user%/web/%domain%/public_shtml:/home/%user%/tmp:/bin:/usr/bin:/usr/local/bin:/var/www/html:/tmp:/usr/share:/etc/phpMyAdmin:/etc/phpmyadmin:/var/lib/phpmyadmin:/etc/roundcubemail
20+
php_admin_value[upload_max_filesize] = 80M
21+
php_admin_value[max_execution_time] = 30
22+
php_admin_value[post_max_size] = 80M
23+
php_admin_value[memory_limit] = 256M
24+
php_admin_value[sendmail_path] = \"/usr/sbin/sendmail -t -i -f info@%domain%\"
25+
php_admin_flag[mysql.allow_persistent] = off
26+
php_admin_flag[safe_mode] = off
27+
28+
env[PATH] = /usr/local/bin:/usr/bin:/bin
29+
env[TMP] = /home/%user%/tmp
30+
env[TMPDIR] = /home/%user%/tmp
31+
env[TEMP] = /home/%user%/tmp

0 commit comments

Comments
 (0)