PHP не использует сокеты MySQL по умолчанию

Если скрипт payload.sh не завершается с явным выходом 0 или выходом 1, тогда его статус выхода будет таким же, как у последней команды в сценарии.

Если эта последняя команда делает, например, rm что-то 2>/dev/null, то статус выхода будет ненулевым, если что-то не может быть найдено или удалено .

В показанном сценарии вы правильно тестируете переменную $?. Вы также можете упростить тест до эквивалента

if sh payload.sh; then
    echo "Success"
else
    echo "Failure"
fi
1
22.04.2016, 01:03
1 ответ

PHP пытается используйте другой сокет, чем тот, который прослушивает MySQL.

Чтобы узнать, какой сокет прослушивает MySQL, запустите:

 mysqld --verbose --help|grep ^socket

socket /var/run/mysqld/mysqld.sock

Чтобы узнать, какой сокет пытается использовать PHP, вы можете проверить вывод скрипта < ? php phpinfo (); ?> , это переменная mysqli.default_socket . Вы можете изменить его в своем файле php.ini (обычно в / etc / php5 / apache2 / ).

1
28.01.2020, 01:20

Теги

Похожие вопросы