apache — Почему php-файлы в поддомене не запускаются под тем же пользователем / группой, что и основной домен (Webmin)?

Система: LAMP, работающий под управлением CentOS 6 и Virutalmin / Webmin.

Я установил поддомен с помощью Webmin в существующем главном домене (также созданном с помощью Webmin). Основной домен запускается как пользователь 910, группа 582. Размещение php-скрипта в директории public_html основного домена с этим кодом:

<? echo `whoami`; ?>

генерирует имя пользователя владельца домена.

Размещение того же скрипта в поддомене public_html создает «apache».

И каталоги, и файлы имеют одинаковое правообладание (910: 582).

В /etc/httpd/conf/httpd.conf оба виртуальных хоста имеют одинаковую строку SuexecUserGroup:

SuexecUserGroup "#910" "#582"

Мне нужен поддомен для запуска под тем же пользователем, чтобы WordPress мог обращаться к файлам напрямую. В противном случае мне придется скомбинировать все в поддомене с apache: apache, который представляет собой угрозу безопасности / плохую практику.

Что мне здесь не хватает?

Спасибо!

1

Решение

Оказывается, эта проблема была вызвана несколькими причинами:

  1. mod_php5 включен по умолчанию. Добавление директивы

    php_admin_value engine Off
    

в файле httpd.conf для этого виртуального хоста отключается mod_php5, который несовместим с suexec.

  1. Добавить директиву FCGIWrapper, которая не была создана Webmin

    FCGIWrapper [home dir]/fcgi-bin/php5.fcgi .php
    
  2. Создайте файл php5.fcgi в каталоге fcgi-bin. Я просто скопировал этот файл с другого виртуального хоста, так как это всего лишь скрипт оболочки bash для запуска интерпретатора php.

  3. Добавьте директивы AddHandler и AddType в основной раздел VirtualHost, а также public_html <directory> раздел:

    AddType application/x-httpd-php .php
    
    AddHandler fcgid-script .php
    
  4. Убедитесь, что все владельцы файлов и разрешения правильно установлены для владельца учетной записи.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]