Если скрипт payload.sh
не завершается с явным выходом 0
или выходом 1
, тогда его статус выхода будет таким же, как у последней команды в сценарии.
Если эта последняя команда делает, например, rm что-то 2>/dev/null
, то статус выхода будет ненулевым, если что-то
не может быть найдено или удалено .
В показанном сценарии вы правильно тестируете переменную $?
. Вы также можете упростить тест до эквивалента
if sh payload.sh; then
echo "Success"
else
echo "Failure"
fi
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 /
).