Page 1 of 2

Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 8:57 pm
by akifievaa
При создании домена, в папке /home/user/conf/web создаются conf файлы виртуальных хостов из шаблонов для апача и nginx.

В каждом таком файлике есть подхват настроек посредством
Include /home/mod/conf/web/httpd.domain.conf* (у апача например).

проблема в том, что даже имея bash доступ, юзер не может видеть и редактировать эти файлы (что в принципе замечательно) или тут какая то ошибка с правами?

Некоторые скажут, что пользовательские настройки можно подхватить из .htaccess и будут частично правы.

Пример: CMS 1C_Bitrix 14 не установится если mbstring.func_overload =0 (а так оно и есть по умолчанию).

Дело в том, что в PHP 5.4 директива MB_string enable подхватывается через .htaccess, а вот mbstring.func_overload =2 уже нет
Ее уже надо добавлять либо в php.ini (что глобально и плохо) или через php_admin_value в настройках виртуалхоста.

Внимание вопрос: Почему бы не дать юзверю возможность подхватить свои настройки из папки которую он может редактировать?
Например Include /home/mod/web/httpd.local ?
Иначе все будет выливаться в просьбы отредактировать, добавить конфиги владельцу сервера - что есть трата времени и нервов.
Или я не прав и доступ к локальным конфигам его виртуал хоста даст юзверю сделать посредством конфига сделать что то, что он в принципе сделать не имеет права?

Re: Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 9:09 pm
by imperio
.htaccess, а вот mbstring.func_overload =2 уже нет
а если так?

Code: Select all

php_admin_value mbstring.func_overload 2

Re: Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 9:11 pm
by akifievaa
так только из виртуалхоста, из .htaccess не подхватывает (дело не в синтаксисе)
а конфиг виртуал хоста как бе для юзверя не доступен, вот.

Re: Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 9:23 pm
by imperio
Попробуйте так
php_admin_value mbstring.func_overload 2
php_admin_value mbstring.internal_encoding UTF-8
не поможет, тогда настройте через глобальный php.ini

По поводу индивидуального php.ini
подумаем. Добавьте пожелание в багтрекер

Re: Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 9:37 pm
by akifievaa
Это точно сработает если я внесу правки в виртуалхост или php.ini.

Дайте ссылку на багтрекер, где просить? :)

Re: Виртуальные хосты Apache+Nginx

Posted: Tue Feb 11, 2014 9:49 pm
by imperio
в php.ini раскомментируйте строку

Code: Select all

mbstring.func_overload = 0
вместо 0 выстави 2
и рестартани апач

Code: Select all

etc/init.d/httpd restart
Багтрекер

Re: Виртуальные хосты Apache+Nginx

Posted: Wed Feb 12, 2014 4:05 am
by akifievaa
Imperio, поймите, я про это знаю и описал уже это выше. Я к тому, что есть
1C Bitrix который требует func_overload 2, а есть Kohana framework и другие, что требуют
func_overload 0, и править php.ini не вариант.

Я веду речь именно о подхвате настроек юзера в конфиге виртуального хоста.

Re: Виртуальные хосты Apache+Nginx

Posted: Wed Feb 12, 2014 5:25 am
by demian

Code: Select all

# cat /usr/local/vesta/data/templates/web/httpd/bitrix.tpl 
<VirtualHost %ip%:%web_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %docroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    SuexecUserGroup %user% %group%
    CustomLog /var/log/httpd/domains/%domain%.bytes bytes
    CustomLog /var/log/httpd/domains/%domain%.log combined
    ErrorLog /var/log/httpd/domains/%domain%.error.log
    <Directory %docroot%>
        AllowOverride All
        Options +Includes -Indexes +ExecCGI
        php_admin_value upload_tmp_dir %home%/%user%/tmp
        php_admin_value upload_max_filesize 100M
        php_admin_value max_execution_time 600
        php_admin_value post_max_size  100M
        php_admin_value memory_limit 128M
        php_admin_flag mysql.allow_persistent  off
        php_admin_flag safe_mode off
        php_admin_value session.save_path %home%/%user%/tmp
        php_admin_value mbstring.func_overload 7
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid %user% %group%
        RGroups apache
    </IfModule>
    <IfModule itk.c>
        AssignUserID %user% %group%
    </IfModule>

    Include %home%/%user%/conf/web/httpd.%domain%.conf*

</VirtualHost>

Code: Select all

# cat /usr/local/vesta/data/templates/web/httpd/bitrix.stpl 
<VirtualHost %ip%:%web_ssl_port%>

    ServerName %domain_idn%
    %alias_string%
    ServerAdmin %email%
    DocumentRoot %sdocroot%
    ScriptAlias /cgi-bin/ %home%/%user%/web/%domain%/cgi-bin/
    Alias /vstats/ %home%/%user%/web/%domain%/stats/
    Alias /error/ %home%/%user%/web/%domain%/document_errors/
    SuexecUserGroup %user% %group%
    CustomLog /var/log/httpd/domains/%domain%.bytes bytes
    CustomLog /var/log/httpd/domains/%domain%.log combined
    ErrorLog /var/log/httpd/domains/%domain%.error.log
    <Directory %sdocroot%>
        AllowOverride All
        SSLRequireSSL
        Options +Includes -Indexes +ExecCGI
        php_admin_value mbstring.func_overload 7
        php_admin_value upload_tmp_dir %home%/%user%/tmp
        php_admin_value upload_max_filesize 100M
        php_admin_value max_execution_time 600
        php_admin_value post_max_size  100M
        php_admin_value memory_limit 128M
        php_admin_flag mysql.allow_persistent  off
        php_admin_flag safe_mode off
        php_admin_value session.save_path %home%/%user%/tmp
    </Directory>
    <Directory %home%/%user%/web/%domain%/stats>
        AllowOverride All
    </Directory>
    SSLEngine on
    SSLVerifyClient none
    SSLCertificateFile %ssl_crt%
    SSLCertificateKeyFile %ssl_key%
    %ssl_ca_str%SSLCertificateChainFile %ssl_ca%

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid %user% %group%
        RGroups apache
    </IfModule>
    <IfModule itk.c>
        AssignUserID %user% %group%
    </IfModule>

    Include %home%/%user%/conf/web/shttpd.%domain%.conf*

</VirtualHost>

Re: Виртуальные хосты Apache+Nginx

Posted: Wed Feb 12, 2014 5:45 am
by akifievaa
Блин, это все понятно что можно сделать шаблон. Хотелось бы все таки это реализовать подхватом пользовательских настроек PHP.

Re: Виртуальные хосты Apache+Nginx

Posted: Wed Feb 12, 2014 6:07 am
by demian
mbstring.func_overload является admin value с версии 5.4 часть подобные настройки могут быть изменены только из php.ini
mbstring.func_overload не может быть переопределена в коде или в .htaccess
уточнять в документации