ПРОБЛЕМА
После обновления до MacOS 10.15 Catalina PHP испытывает проблемы с чтением некоторых ссылок, а не других, при запуске PHP (как пользователь Apache "www"). Возможно, проблема заключается в изменении конфигурации конфиденциальности / безопасности ОС, которая, как мы знаем, изменилась, а не разрешений на выполнение каталога / разрешений FollowSymLink.
ДЕТАЛИ
$ ls -alt /Users/[MYUSER]/Sites/*info.php
lrwxr-xr-x 1 [MYUSER] staff 8 Oct 10 11:16 /Users/[MYUSER]/Sites/linfo.php -> info.php
-rwxr-xr-x 1 [MYUSER] staff 25 Oct 30 2014 /Users/[MYUSER]/Sites/info.php
В приведенных вышестраницы info.php и linfo.php работают правильно, что, я думаю, показывает работоспособность FollowSymLinks.
$ ls -alt /Users/[MYUSER]/Sites/*index.php
lrwxr-xr-x 1 [MYUSER] staff 78 Dec 30 2014 /Users/[MYUSER]/Sites/index.php -> /Users/[MYUSER]/Documents/[ADIR]/Development/GitHub/cms/sitesIndex.php
$ ls -alt /Users/[MYUSER]/Sites/sitesIndex.php
-rwxr-xr-x 1 [MYUSER] staff 20847 Oct 8 13:11 sitesIndex.php
На вышеуказанных страницах index.php происходит сбой ссылки, когда происходит сбой при копировании связанного файла sitesIndex.php.
ОБЩАЯ ИНФОРМАЦИЯ
Хотя я не верю, что это связано (поскольку невозможность followSymLinks имеет другое сообщение об ошибке), фоллинг - это настройка FollowSymLinks.
<Directory "/Users/*/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Require all granted
</Directory>
$ cat $HOME/Sites/.htaccess
Options +FollowSymLinks
Веб-сервер работает от имени пользователя «www».
Apache запускается от имени пользователя root, хотя рабочие потоки работают как _www, как и ожидалось.
_www 65500 0.0 0.0 4317396 1288 ?? S 9:56AM 0:00.02 /usr/sbin/httpd -D FOREGROUND
_www 28574 0.0 0.0 4317440 2256 ?? S 12:16PM 0:00.03 /usr/sbin/httpd -D FOREGROUND
_www 28546 0.0 0.0 4317520 2612 ?? S 12:15PM 0:00.06 /usr/sbin/httpd -D FOREGROUND
root 28529 0.0 0.0 4317548 1284 ?? Ss 12:15PM 0:04.56 /usr/sbin/httpd -D FOREGROUND
Все эти файлы в$ HOME / Sites находятся под iCloud, и в заметках о выпуске нам сообщают, что в 10.15 для iCl введены новые дополнительные ограничения конфиденциальностиКаталоги oud, но мне неясно, что это за ограничения или задокументированы ли эти ограничения.
ОШИБКИ
На странице ответа сервера PHP выдает следующие ошибки:
Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0
Fatal error: Unknown: Failed opening required '/Users/owenbrunette/Sites/index.php' (include_path='.:') in Unknown on line 0
И в файле error.log:
[Tue Oct 08 21:49:11.855033 2019] [php7:warn] [pid 83605] [client ::1:64968] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0, referer: http://localhost/
[Tue Oct 08 21:49:11.855078 2019] [php7:error] [pid 83605] [client ::1:64968] PHP Fatal error: Unknown: Failed opening required '/Users/[MYUSER]/Sites/index.php' (include_path='.:') in Unknown on line 0, referer: http://localhost/
Я много проверял файлы. Флаги чтения и выполнения UNIX для других устанавливаются для всех каталогов, ведущих к файлам.
ПОПЫТКИ ПРИ РЕШЕНИИ
Ошибка «операция не разрешена» - это строка ошибки, связанная с системойIntegrety Protection "под MacOS, а не после Apache SymLink, хотя фазовая" операция не разрешена ", вполне может быть не уникальной. Ошибка исходит от PHP, а не от Apache.
Я разрешил полный доступ к диску в: Системные настройки / Безопасность и конфиденциальность / Конфиденциальность / Полный доступ к диску.
Я не пытался полностью отключить SIP (защиту целостности системы) на уровне операционной системы, поскольку это далеко от идеального решения.