open_basedir - это директива, определенная в вашем файле php.ini.
Это самый низкий каталог, к которому вам разрешен доступ из скрипта PHP, обычно это ваш webroot.
Попытка получить доступ к файлу / каталогу ниже по дереву, например, в / dev /, будет запрещена, и вы получите сообщение, которое у вас есть.
Вам придется отредактировать ваш php.ini и установить open_basedir в корневой каталог вашего сервера, что, как правило, плохо с точки зрения безопасности, так как если кому-то удастся внедрить вредоносный код в ваш скрипт, он получит доступ ко всей системе. 1007 *
Было бы безопаснее выполнить скрипт (Perl, Python и т. Д.), Который находится в вашей веб-папке, для чтения / dev / urandom, если вам действительно нужно.
$output = `/scripts/get_urandom.pl`;
// Process output
Версия 1.8 phpass решает эту проблему , подавляя ошибку:
Изменения с версии 1.7: +2 -2 строки:
Префикс is_readable () с "@" для подавления предупреждения, когда open_basedir
ограничение действует.