Изменение пользователя / группы, чтобы разрешить PHP выполнять chmod / rename и move_upload_file () [закрыто]

Похоже, я ничего не могу сделать со своим 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

1
задан 8 June 2010 в 05:09
3 ответа

Этому будут нужны те же права как пользователь, это выполняет веб-сервер. Это будет варьироваться в зависимости от Вашей ОС. Это может быть "апачским" или "www-данные" или что-то еще полностью.

Если Вы не используете suEXEC, сценарий выполняется веб-сервером, и как таковой работает с теми же полномочиями как тот пользователь.

Так, для решения проблемы необходимо определить, под каким пользователем апачский процесс работает, и примените соответствующие полномочия к файлам/папкам, которые Вы хотите, чтобы сценарий смог изменить.

Можно указать, что Пользователь и Группа считают апачские выполнения под в conf файле с помощью

User=[username]
Group=[groupname]

директивы.

Взгляните в своем conf файле, снова название и местоположение файла будет меняться в зависимости от ОС. Предоставление немного большего количества специфических особенностей здесь может помочь с более прямым ответом.

править: для Centos conf файл расположен в

/etc/httpd/conf/httpd.conf
1
ответ дан 4 December 2019 в 02:04
  • 1
    I' m рабочий CentOS..., как я определил бы, под каким пользователем он работает? И как я изменил бы его? Httpd.conf? –   8 June 2010 в 04:59
  • 2
    I' ve отредактировал мой ответ. –  LukeR 8 June 2010 в 05:05
  • 3
    Посмотрите, что мое редактирование, имя пользователя и группа кажутся правильно набором.. –   8 June 2010 в 05:09
  • 4
    никакие заботы. довольный it' s отсортированный. –  LukeR 8 June 2010 в 05:20

ОБНОВЛЕНИЕ! Если у Вас есть эта проблема, также пробуют это:

В WHM переходят в:

Основной>> Сервисная Конфигурация>> Конфигурация Apache>> PHP и Конфигурация SuExec

Я Измененный обработчик PHP 5 к: suphp.

Работавший обработка

0
ответ дан 4 December 2019 в 02:04

изменение в WHM Главная >> Конфигурация сервиса >> Конфигурация Apache >> Конфигурация PHP и SuExec php hadler >> fcgi ,, это решит проблему ..

0
ответ дан 4 December 2019 в 02:04

Теги

Похожие вопросы