Я хочу изменить некоторые переменные php.ini (php5.6) через терминал. Пример: Мне нужно получить значение post_max_size (это пока 8M), отобразить его в терминале, изменить его на 2048M и отобразить его снова.
Как я мог это сделать ?
Get:
grep '^post_max_size ' php.ini
Заменить:
sed -i 's,^post_max_size =.*$,post_max_size = 2048M,' php.ini
Обратите внимание, что перед запуском sed рекомендуется создать резервную копию php.ini: [!d2 ]
cp php.ini php.ini.bak
Get:
grep '^post_max_size ' php.ini
Заменить:
sed -i 's,^post_max_size =.*$,post_max_size = 2048M,' php.ini
Обратите внимание, что перед запуском sed рекомендуется создать резервную копию php.ini:
cp php.ini php.ini.bak
Get:
grep '^post_max_size ' php.ini
Заменить:
sed -i 's,^post_max_size =.*$,post_max_size = 2048M,' php.ini
Обратите внимание, что перед запуском sed рекомендуется создать резервную копию php.ini:
cp php.ini php.ini.bak
Я предполагаю, что у вас есть значения в вашем php.ini, хранящиеся по одному в каждой строке и разделенные = с окружающими пространствами или без них. Ни имена переменных, ни значения не содержат =.
Чтобы напечатать значение post_max_size (выберите одно):
<php.ini awk -F"= *" '/^ *post_max_size/{print$2}'
<php.ini sed '/^ *post_max_size/!d;s/.*= *//'
<php.ini grep -oP '^ *post_max_size *= *\K.*'
В напечатать [!d2 ] значение post_max_size до 2048M, создающее резервную копию под названием php.ini.bak:
sed -i.bak '/^ *post_max_size/s/=.*/= 2048M/' php.ini
Я написал простой скрипт bash, который реализует ответ Аркадуша Драбчика.
Скрипт автоматически обнаруживает активную версию php.
Сценарий предполагает, что вы используете apache2 (вы можете пройти третий аргумент для переопределения).
Я назвал файл php-iniset и добавил его в один из моих каталогов bin.
теперь вы можете позвонить:
php-iniset post_max_size 2048M
или вызвать его так, чтобы прокомментировать переменную:
php-iniset post_max_size
Возможно, вам понадобится настроить такие вещи, как путь к файлам, вашим потребностям
Не забудьте сначала создать резервную копию своего ini-файла !
Вот сценарий:
#!/bin/bash
#
# useage:
# php-iniset key value
#
# sets php ini key to value
# if no value is supplied key will be commented
# If value is supplied key will automatically be commented out
#
key=$1
val=$2
scope=${3:-apache2}
version=`php -r "echo substr(PHP_VERSION, 0, 3);"`
filepath="/etc/php/$version/$scope/php.ini"
if [ -f $filepath ]
then
if [ -e $val ]
then
#disable if value is empty
sudo sed -i "/^$key =.*$/s/^/;/g" $filepath
#confirm disabled
grep "^;$key " $filepath
else
#enable if value has been supplied
sudo sed -i "/^;$key =.*$/s/^;//g" $filepath
#modify value
sudo sed -i "s,^$key =.*$,$key = $val," $filepath
#confirm value
grep "^$key " $filepath
fi
else
echo "$path does not exist"
fi
Я предполагаю, что у вас есть значения в вашем php.ini, хранящиеся по одному в каждой строке и разделенные = с окружающими пространствами или без них. Ни имена переменных, ни значения не содержат =.
Чтобы напечатать значение post_max_size (выберите одно):
<php.ini awk -F"= *" '/^ *post_max_size/{print$2}'
<php.ini sed '/^ *post_max_size/!d;s/.*= *//'
<php.ini grep -oP '^ *post_max_size *= *\K.*'
В напечатать значение post_max_size до 2048M, создающее резервную копию под названием php.ini.bak:
sed -i.bak '/^ *post_max_size/s/=.*/= 2048M/' php.ini
Я написал простой скрипт bash, который реализует ответ Аркадуша Драбчика.
Скрипт автоматически обнаруживает активную версию php.
Сценарий предполагает, что вы используете apache2 (вы можете пройти третий аргумент для переопределения).
Я назвал файл php-iniset и добавил его в один из моих каталогов bin.
теперь вы можете позвонить:
php-iniset post_max_size 2048M
или вызвать его так, чтобы прокомментировать переменную:
php-iniset post_max_size
Возможно, вам понадобится настроить такие вещи, как путь к файлам, вашим потребностям
Не забудьте сначала создать резервную копию своего ini-файла !
Вот сценарий:
#!/bin/bash
#
# useage:
# php-iniset key value
#
# sets php ini key to value
# if no value is supplied key will be commented
# If value is supplied key will automatically be commented out
#
key=$1
val=$2
scope=${3:-apache2}
version=`php -r "echo substr(PHP_VERSION, 0, 3);"`
filepath="/etc/php/$version/$scope/php.ini"
if [ -f $filepath ]
then
if [ -e $val ]
then
#disable if value is empty
sudo sed -i "/^$key =.*$/s/^/;/g" $filepath
#confirm disabled
grep "^;$key " $filepath
else
#enable if value has been supplied
sudo sed -i "/^;$key =.*$/s/^;//g" $filepath
#modify value
sudo sed -i "s,^$key =.*$,$key = $val," $filepath
#confirm value
grep "^$key " $filepath
fi
else
echo "$path does not exist"
fi
Я предполагаю, что у вас есть значения в вашем php.ini, хранящиеся по одному в каждой строке и разделенные = с окружающими пространствами или без них. Ни имена переменных, ни значения не содержат =.
Чтобы напечатать значение post_max_size (выберите одно):
<php.ini awk -F"= *" '/^ *post_max_size/{print$2}'
<php.ini sed '/^ *post_max_size/!d;s/.*= *//'
<php.ini grep -oP '^ *post_max_size *= *\K.*'
В напечатать значение post_max_size до 2048M, создающее резервную копию под названием php.ini.bak:
sed -i.bak '/^ *post_max_size/s/=.*/= 2048M/' php.ini
Я написал простой скрипт bash, который реализует ответ Аркадуша Драбчика.
Скрипт автоматически обнаруживает активную версию php.
Сценарий предполагает, что вы используете apache2 (вы можете пройти третий аргумент для переопределения).
Я назвал файл php-iniset и добавил его в один из моих каталогов bin.
теперь вы можете позвонить:
php-iniset post_max_size 2048M
или вызвать его так, чтобы прокомментировать переменную:
php-iniset post_max_size
Возможно, вам понадобится настроить такие вещи, как путь к файлам, вашим потребностям
Не забудьте сначала создать резервную копию своего ini-файла !
Вот сценарий:
#!/bin/bash
#
# useage:
# php-iniset key value
#
# sets php ini key to value
# if no value is supplied key will be commented
# If value is supplied key will automatically be commented out
#
key=$1
val=$2
scope=${3:-apache2}
version=`php -r "echo substr(PHP_VERSION, 0, 3);"`
filepath="/etc/php/$version/$scope/php.ini"
if [ -f $filepath ]
then
if [ -e $val ]
then
#disable if value is empty
sudo sed -i "/^$key =.*$/s/^/;/g" $filepath
#confirm disabled
grep "^;$key " $filepath
else
#enable if value has been supplied
sudo sed -i "/^;$key =.*$/s/^;//g" $filepath
#modify value
sudo sed -i "s,^$key =.*$,$key = $val," $filepath
#confirm value
grep "^$key " $filepath
fi
else
echo "$path does not exist"
fi