Моя цель — настроить профилирование php для локального сайта разработки в Kubuntu 16.04.
Установлены tideways согласно документам и проверил, правильно ли он установлен с:
php --ri tideways_xhprof
созданный header.php со следующим содержанием
<?php
tideways_xhprof_enable();
Добавлена ссылка на него php.ini
auto_prepend_file = "/home/user/pathto/header.php"
Restarted apache2
И получение следующих ошибок в журнале ошибок Apache:
[Сб 27 января 17: 54: 24.233604 2018] [: ошибка] [pid 15976] [клиент
127.0.0.1:42054] Предупреждение PHP: Неизвестно: не удалось открыть поток: В строке 0 неизвестно разрешение в неизвестном [суббота 27 января 17: 54: 24.233653
2018] [: error] [pid 15976] [client 127.0.0.1:42054] Неустранимая ошибка PHP:
Неизвестно: не удалось открыть файл ‘/home/user/pathto/header.php’
(include_path = ‘.: / usr / share / php’) в поле Неизвестно в строке 0
Попробовал добавить директиву
php_value auto_prepend_file /home/user/pathto/header.php
в каталог блок сайта в apache2.conf, но та же ошибка выскакивает.
В чем дело? Какие разрешения неверны?
С уважением.
Linux использует модель разрешений, которая включает пользователей, которые могут принадлежать к группам, и файлы и каталоги, которые могут быть назначены этим пользователям и группам. По умолчанию, когда вы устанавливаете Apache и PHP в Ubuntu, у вас появляется новый пользователь Apache с именем «www-data». Каждый раз, когда Apache запускается и ему необходим доступ к файловой системе, он не отличается от любого другого пользователя, а операционной системе требуются те же разрешения, что и любому другому пользователю.
Технически, если бы вы хотели, чтобы PHP-сценарии находились в домашнем каталоге вашего пользователя, вам нужно было бы каким-то образом дать пользователю Apache доступ к www-данным для доступа к файлам.
Когда я настраиваю новый сервер, я обычно добавляю себя в группу www-data:
# add user brian to the www-data group
sudo usermod -a -G www-data brian
Это облегчает мне управление файлами (после выполнения следующих шагов), поскольку мне не нужно использовать sudo для внесения изменений в файлы.
Я позволю www-данным владеть всем в / var / www
# Change all files at /var/www recursively to be owned by www-data
sudo chown -R www-data:www-data /var/www
Сделайте так, чтобы новые файлы, созданные в / var / www, в конечном итоге принадлежали www-data:
#set the gid on any new dir inside /var/www
sudo chmod 2755 /var/www/html
Затем установите себя в качестве владельца, а не www-data:
# Be the owner of all www
sudo chown -R brian:www-data /var/www
Обратите внимание, что я никогда не предоставлял разрешения вне / var / www, но это облегчает управление файлами и каталогами внутри / var / www, поэтому вы не чувствуете необходимости помещать файлы PHP в свой домашний каталог.
Других решений пока нет …