Итак, можно ли из этого сказать, что сервер неправильно настроен?
Нет. Так и должно быть. PHP-скрипты, выполняемые Apache, запускаются от имени пользователя www-data
(в Ubuntu). www-data
практически не имеет прав на запись на весь сервер. И так оно и должно быть. Если вы пишете даже слегка небезопасный php-скрипт (например, подверженный внедрению кода ), и он запускается как root, злонамеренный посетитель может стереть весь ваш жесткий диск.
В целях безопасности было бы лучше, если бы php работал от имени пользователя?
Кого вы имеете в виду под пользователем ? Если это root, см. Выше. Если это пользователь с привилегиями root, см. Выше.
Будет ли эта проблема (требуется 777) по-прежнему возникать?
Проблема в том, что вы используете код, который требует полного разрешения на чтение, запись и выполнение в чужом каталоге.
Если это каталог, который будет использоваться только вашим сценарием, www-data
должен принадлежать ему. Проблема решена.
Если вы используете скрипт php, который должен иметь доступ к чувствительным системным областям, вы можете переосмыслить способ сделать это. Многие задачи, которые должен выполнять php-скрипт, могут быть запланированы скриптом, а затем выполнены заданием cron.
И последнее, но не менее важное: если вы абсолютно должны , вы можете запустить php от любого пользователя. Просто установите модуль mpm_itk_module
и добавьте
AssignUserId user group
внутри тега <VirtualHost>
.
Но имейте в виду, что - как я уже говорил - с плохим сценарием и неправильными привилегиями может произойти очень плохое (TM).