Действительно ли команда PHP link () требует повышенных привилегий в Windows?
Но на моей машине с Windows 8 я могу запускатьПримечание: только для Windows: эта функция требует PHP для запуска в повышенный режим или с отключенным UAC.
mklink /H
без повышенных привилегий, поэтому я не понимаю, почему PHP требует этого. С другой стороны, если я запускаю mklink
Без H для создания символьной ссылки, я делаю требую повышенных привилегий, хотя это не комментируется в документах PHP для symlink().
У меня нет установки Windows PHP, поэтому я не могу ее протестировать (и мне интересно, как это применимо к windows 7, vista или чему-то еще). Неужели доктора ошибаются?
2 ответа:
Вам не нужно работать от имени администратора, чтобы создать жесткую ссылку. Однако, в отличие от UNIX, вам Действительно нужен доступ на запись к цели ссылки.
Я бы рискнул предположить, что автор рассматриваемого документа пытался создать жесткую ссылку на файл, к которому только администраторы имели доступ на запись, и поэтому неверно заключил, что доступ администратора необходим для создания жестких ссылок.
Я протестировал его на своей машине с Windows 8.1, и он, кажется, работает нормально (работает через Apache/CGI)
<pre><?php var_dump(file_exists('f1')); var_dump(file_exists('f2')); var_dump(touch('f1')); var_dump(link('f1','f2')); var_dump(file_exists('f1')); var_dump(file_exists('f2')); var_dump(file_put_contents('f1', 'test')); var_dump(file_get_contents('f2'));
Вывод:
boolean false boolean false boolean true boolean true boolean true boolean true int 4 string 'test' (length=4)