Похоже, я ничего не могу сделать со своим PHP-скриптом на моем VPS.
Он возвращает «Permission denied», когда я пытаюсь загрузить что-то в каталог.
Да, я изменил разрешение на 777, и оно работает, но мне не нравится небезопасность
При запуске команды:
ps axu|grep apache|grep -v grep
Возвращает
nobody 7689 0.1 3.8 50604 20036 ? S 21:38 0:00 /usr/local/apache/bin/httpd -k start -DSSL
root 13600 0.0 3.8 50304 20348 ? Ss Jun06 0:46 /usr/local/apache/bin/httpd -k start -DSSL
nobody 15733 0.1 3.8 50700 20156 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 15818 0.1 3.8 51492 20180 ? S 21:39 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 23843 0.1 3.7 51336 19592 ? S 21:40 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30335 0.0 3.5 50436 18496 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30406 0.0 3.5 50444 18544 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30407 0.0 3.5 50556 18696 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30472 0.0 3.6 50828 19348 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30474 0.0 3.5 50668 18868 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30476 0.0 3.6 50532 19064 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 30501 0.0 3.8 50556 20080 ? S 21:36 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32341 0.0 3.5 50444 18492 ? S 21:41 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32370 0.0 3.5 50444 18476 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32414 0.1 3.7 51336 19524 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32416 0.1 3.5 50668 18816 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32457 0.1 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32458 0.1 3.6 50772 19276 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32459 0.0 3.5 50444 18504 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32460 0.2 3.6 50828 19320 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32463 0.0 3.5 50444 18472 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody 32466 0.0 3.4 50436 17960 ? S 21:42 0:00 /usr/local/apache/bin/httpd -k start -DSSL
Владелец каталога - пользователь [505 ] ', а группа -' user [508] '(как показано в WinSCP)
Что я могу сделать, чтобы изменить Apache Handler на правильного владельца и группу, чтобы мои сценарии PHP работали?
PS
Мой PHP не установлен в безопасный режим, а open_basedir установлен на без значения
РЕДАКТИРОВАТЬ :
Вот как выглядит мой httpd.conf (для ассоциативного домена)
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /home/domain/public_html
ServerAdmin info@domain
## User <theUsername> # Needed for Cpanel::ApacheConf
<IfModule mod_userdir.c>
Userdir disabled
Userdir enabled <userName>
</IfModule>
<IfModule mod_suphp.c>
suPHP_UserGroup <userName> <userName>
</IfModule>
<IfModule !mod_disable_suexec.c>
SuexecUserGroup <userName> <userName>
</IfModule>
CustomLog /usr/local/apache/domlogs/domain.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
CustomLog /usr/local/apache/domlogs/domain.com combined
ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/
#Options -ExecCGI -Includes
#RemoveHandler cgi-script .cgi .pl .plx .ppl .perl
Этому будут нужны те же права как пользователь, это выполняет веб-сервер. Это будет варьироваться в зависимости от Вашей ОС. Это может быть "апачским" или "www-данные" или что-то еще полностью.
Если Вы не используете suEXEC, сценарий выполняется веб-сервером, и как таковой работает с теми же полномочиями как тот пользователь.
Так, для решения проблемы необходимо определить, под каким пользователем апачский процесс работает, и примените соответствующие полномочия к файлам/папкам, которые Вы хотите, чтобы сценарий смог изменить.
Можно указать, что Пользователь и Группа считают апачские выполнения под в conf файле с помощью
User=[username]
Group=[groupname]
директивы.
Взгляните в своем conf файле, снова название и местоположение файла будет меняться в зависимости от ОС. Предоставление немного большего количества специфических особенностей здесь может помочь с более прямым ответом.
править: для Centos conf файл расположен в
/etc/httpd/conf/httpd.conf
ОБНОВЛЕНИЕ! Если у Вас есть эта проблема, также пробуют это:
В WHM переходят в:
Основной>> Сервисная Конфигурация>> Конфигурация Apache>> PHP и Конфигурация SuExec
Я Измененный обработчик PHP 5 к: suphp.
Работавший обработка
изменение в WHM Главная >> Конфигурация сервиса >> Конфигурация Apache >> Конфигурация PHP и SuExec php hadler >> fcgi ,, это решит проблему ..