У меня PHP работает на веб-сервере IIS.
Сервер получает доступ к некоторым файлам, хранящимся на другом файловом сервере, однако с ограничениями доступа к файлам на уровне пользователя и возвращает содержимое обратно клиенту через Интернет. интерфейс.
По причине устаревших причин до сих пор в системе использовался PHP 5.6.31.
Теперь я обновился до PHP 8.3.9, но столкнулся с проблемой: служба PHP больше не может получить доступ к возвращаемым файлам.
В PHP8 file_exists($filename) возвращает false, а в PHP5 точно такой же код возвращает true.Это имя файла имеет формат \\xxx.xxx.xxx.xxx\sharename\filename.ext, где xxx — это IP-адрес.
Переключение назад старый PHP восстанавливает доступ к файлу.
Я предполагаю, что я что-то не так сделал в файле php.ini, но не могу это понять. Я сравнил два ini-файла, но не нашел ничего особенного.
Я установил fastcgi.impersonate = 1.
Я контролирую версию PHP через менеджер PHP в диспетчере IIS.
Этот код:
$file = trim('//FILE01/DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\\\FILE01\\DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\\\10.249.70.8\\DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('//10.249.70.8/DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('C:\PHP');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\PHP');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
С PHP 5.6 я получаю такой результат:
//FILE01/DOC:Exists
\\FILE01\DOC:Exists
\\10.249.70.8\DOC:Exists
//10.249.70.8/DOC:Exists
C:\PHP:Exists
\PHP:Exists
PHP8.3 включен и никаких других изменений:
//FILE01/DOC:Does not exist
\\FILE01\DOC:Does not exist
\\10.249.70.8\DOC:Does not exist
//10.249.70.8/DOC:Does not exist
C:\PHP:Exists
\PHP:Exists
Подробнее здесь: https://stackoverflow.com/questions/787 ... on-context
PHP 8 в IIS и контексте выполнения ⇐ Php
Кемеровские программисты php общаются здесь
1721043897
Anonymous
У меня PHP работает на веб-сервере IIS.
Сервер получает доступ к некоторым файлам, хранящимся на другом файловом сервере, однако с ограничениями доступа к файлам на уровне пользователя и возвращает содержимое обратно клиенту через Интернет. интерфейс.
По причине устаревших причин до сих пор в системе использовался PHP 5.6.31.
Теперь я обновился до PHP 8.3.9, но столкнулся с проблемой: служба PHP больше не может получить доступ к возвращаемым файлам.
В PHP8 file_exists($filename) возвращает false, а в PHP5 точно такой же код возвращает true.Это имя файла имеет формат \\xxx.xxx.xxx.xxx\sharename\filename.ext, где xxx — это IP-адрес.
Переключение назад старый PHP восстанавливает доступ к файлу.
Я предполагаю, что я что-то не так сделал в файле php.ini, но не могу это понять. Я сравнил два ini-файла, но не нашел ничего особенного.
Я установил fastcgi.impersonate = 1.
Я контролирую версию PHP через менеджер PHP в диспетчере IIS.
Этот код:
$file = trim('//FILE01/DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\\\FILE01\\DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\\\10.249.70.8\\DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('//10.249.70.8/DOC');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('C:\PHP');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
$file = trim('\\PHP');
echo "
$file:" . (file_exists($file)?'Exists':'Does not exist');
С PHP 5.6 я получаю такой результат:
//FILE01/DOC:Exists
\\FILE01\DOC:Exists
\\10.249.70.8\DOC:Exists
//10.249.70.8/DOC:Exists
C:\PHP:Exists
\PHP:Exists
PHP8.3 включен и никаких других изменений:
//FILE01/DOC:Does not exist
\\FILE01\DOC:Does not exist
\\10.249.70.8\DOC:Does not exist
//10.249.70.8/DOC:Does not exist
C:\PHP:Exists
\PHP:Exists
Подробнее здесь: [url]https://stackoverflow.com/questions/78748674/php-8-on-iis-and-execution-context[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия