@@ -135,12 +135,28 @@ echo "Updating Nginx configuration for PHP ${NEW_PHP_VER}..."
135135SOCKET_EXPR=' s|(unix:/run/php/)php%s-fpm(\.sock)|\1php%s-fpm\2|g'
136136FASTCGI_EXPR=' s|(fastcgi_pass[[:space:]]+[^;]*php)%s(-fpm)|\1%s\2|g'
137137
138+ # Escape text for use in sed extended regex pattern fragments.
139+ sed_escape_ere () {
140+ local text=" $1 "
141+ printf ' %s' " $text " | sed -e ' s/[][(){}.^$*+?|\\]/\\&/g'
142+ return $?
143+ }
144+
145+ # Escape text for use in sed replacement fragments.
146+ sed_escape_replacement () {
147+ local text=" $1 "
148+ printf ' %s' " $text " | sed -e ' s/[&\\]/\\&/g'
149+ return $?
150+ }
151+
138152# Update php-fpm.conf
139153if [[ -f " /etc/nginx/globals/php-fpm.conf" ]]; then
140154 for OLD_VER in " ${MIGRATION_SOURCE_PHP_VERS[@]} " ; do
155+ OLD_VER_ERE=" $( sed_escape_ere " $OLD_VER " ) "
156+ NEW_PHP_VER_REPL=" $( sed_escape_replacement " $NEW_PHP_VER " ) "
141157 sed -E -i \
142- -e " $( printf " $SOCKET_EXPR " " $OLD_VER " " $NEW_PHP_VER " ) " \
143- -e " $( printf " $FASTCGI_EXPR " " $OLD_VER " " $NEW_PHP_VER " ) " \
158+ -e " $( printf " $SOCKET_EXPR " " $OLD_VER_ERE " " $NEW_PHP_VER_REPL " ) " \
159+ -e " $( printf " $FASTCGI_EXPR " " $OLD_VER_ERE " " $NEW_PHP_VER_REPL " ) " \
144160 " /etc/nginx/globals/php-fpm.conf"
145161 done
146162fi
149165for config_file in /etc/nginx/sites-available/* ; do
150166 if [[ -f " $config_file " ]]; then
151167 for OLD_VER in " ${MIGRATION_SOURCE_PHP_VERS[@]} " ; do
152- sed -E -i -e " /^[[:space:]]*fastcgi_pass[[:space:]]+/ $( printf " $FASTCGI_EXPR " " $OLD_VER " " $NEW_PHP_VER " ) " " $config_file "
168+ OLD_VER_ERE=" $( sed_escape_ere " $OLD_VER " ) "
169+ NEW_PHP_VER_REPL=" $( sed_escape_replacement " $NEW_PHP_VER " ) "
170+ sed -E -i -e " /^[[:space:]]*fastcgi_pass[[:space:]]+/$( printf " $FASTCGI_EXPR " " $OLD_VER_ERE " " $NEW_PHP_VER_REPL " ) " " $config_file "
153171 done
154172 fi
155173done
@@ -185,6 +203,8 @@ debug_pause "PHP Service Start"
185203STATUS=" $( systemctl is-active " php${NEW_PHP_VER} -fpm" ) "
186204if [[ " ${STATUS} " == " active" ]]; then
187205 echo " PASSED: PHP ${NEW_PHP_VER} is running."
206+ mkdir -p /etc/enginescript
207+ touch /etc/enginescript/install-state.conf
188208 if grep -q ' ^PHP=' /etc/enginescript/install-state.conf; then
189209 sed -i ' s/^PHP=.*/PHP=1/' /etc/enginescript/install-state.conf
190210 else
0 commit comments