Es un delimitador de sustitución. El delimitador más utilizado es una barra diagonal /
. Pero sed
puede usar cualquier carácter como delimitador -, automáticamente usará el carácter que sigue a s
como delimitador:
sed 's@ @@g'
sed 's+ ++g'
sed 's\ \\g'
sed 's* **g'
También es posible usar el espacio como delimitador:
echo "foo" | sed 's foo bar g'
Otros delimitadores que no sean /
se usan con mayor frecuencia cuando tiene muchas barras en su comando en la sintaxis que se vuelve confusa. Considere este caso en el que queremos convertir varios espacios en un solo carácter de espacio :en lugar de
echo " a b c " | sed 's/\s\{1,\}/ /g'
puedes ejecutar
echo " a b c " | sed 's~\s\{1,\}~ ~g'
que es más claro.
Вы не сказали нам, какую ОС вы используете. Но поскольку вы уже упомянули apt-get
, я предполагаю, что вы используете что-то похожее на Ubuntu или Debian. Они имеют относительно аналогичную настройку конфигурации.
Проверка 1
Пакет php-mysql
должен зависеть от php7.2-mysql
или аналогичного, поэтому сначала убедитесь, что он установлен, например:
dpkg --list | grep 'php.*mysql'
ii php-mysql 2:7.2+69ubuntu1 all MySQL module for PHP [default]
ii php7.2-mysql 7.2.19-0ubuntu0.19.04.1 amd64 MySQL module for PHP
Запишите, какую версию вы установили. Если это не 7.2, как у меня, вам нужно будет позже изменить проверки, чтобы они соответствовали вашей версии.
Проверка 2
Я только что просмотрел свою установку Ubuntu 19.04, и у mysqli есть собственная общая библиотека, которая в настоящее время установлена в пакете php7.2-mysql
и установлена в /usr/lib/php/20170718/mysqli.so
.
find /usr/lib/php -name mysqli.so
Проверка 3
Чтобы PHP мог использовать модуль, ему нужно дать указание загрузить его. В зависимости от того, как вы настроили PHP для запуска, вам может потребоваться искать в другом месте. Но для меня, запускающего PHP 7.2 под phpfpm, инструкция по загрузке mysqli находится в :/etc/php/7.2/fpm/conf.d/20-mysqli.ini
.
Проверьте, загружен ли модуль с:
grep mysqli.so /etc/php/7.2/*/conf.d/*
/etc/php/7.2/cli/conf.d/20-mysqli.ini:extension=mysqli.so
/etc/php/7.2/fpm/conf.d/20-mysqli.ini:extension=mysqli.so
Убедитесь, что независимо от того, как вы используете PHP `, он настроен на загрузку модуля. Если он не настроен для этого, вы сможете добавить обратно конфигурацию :
.cd /etc/php/7.2/fpm/conf.d
ln -s../../mods-available/mysqli.ini 20-mysqli.ini
Проверка 3 является наиболее вероятной причиной, учитывая доказательства, которые вы представили,но также легко ошибиться.
Похоже, что в вашей установке php отсутствует модуль mysql. Вы можете проверить, установлен ли он с php -i
в вашей оболочке. Если нет, попробуйте установить его.
Для Ubuntu:
apt install php-mysql
Для CentOS:
yum install php-mysql
Подтвердите, что ваша версия MySQL должна быть совместима с версией PHP
Деталь:-
Во-первых, убедитесь, что на странице phpinfo у вас должна быть информация об установленной mysqli, если нет, то.....
, установите его, и если вы думаете, что уже установили его на свой компьютер, но он не работает
затем подтвердите, что ваша версия MySQL должна быть совместима с версией PHP. нравится
Сначала я использовал эту пару для MySQL и PHP
после этого я установил