-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathphp-extension.sh
More file actions
executable file
·44 lines (35 loc) · 1.14 KB
/
php-extension.sh
File metadata and controls
executable file
·44 lines (35 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/env bash
EXTENSION="$1"
[ "$2" == 'on' ] || [ "$2" == '1' ] || [ "$2" == 'enable' ] && ENABLE=true || ENABLE=false
PHP_DIR=$(php --ini | grep 'Configuration File (php.ini) Path:' | sed -E "s~^.*: \"?(.*/php/[^/\"]*).*$~\1/~")
if [[ "$OSTYPE" == "darwin"* ]]; then
#MAC_OS
SED_ARGS="-i '' -E";
else
#OTHER
SED_ARGS="-i -E";
fi
if [ "$EXTENSION" == '' ]; then
echo 'Error: no extension provided'
exit 1;
fi
#toogle extension line in .ini file:
find "$PHP_DIR" -type f -name "*.ini" | while read -r FILE; do
if [ "$ENABLE" == true ]; then
COMMAND=("sed $SED_ARGS s/^;((zend_extension|extension).+$EXTENSION\.so\"?)$/\1/g $FILE")
else
COMMAND=("sed $SED_ARGS s/^((zend_extension|extension).+$EXTENSION\.so\"?)$/;\1/g $FILE")
fi
$COMMAND
done
#restart fpm
echo 'Restart fpm ...'
PHP_VERSION=$(php -v | grep '^PHP ' | sed -E "s/^PHP ([0-9]\.[0-9]).*$/\1/")
/etc/init.d/php"$PHP_VERSION"-fpm restart 2> /dev/null
/etc/init.d/php-fpm restart 2> /dev/null
#restart apache
echo 'Restart apache ...'
service apache2 restart 2> /dev/null
#restart on MAC
echo 'Restart brew php ...'
brew services restart php@"$PHP_VERSION" 2> /dev/null