Ограничение на использование скриптов PHP
Ограничение на использование скриптов PHP
Столкнулся с такой необходимостью, как ограничение на PHP скрипты.
Есть созданный мной пакет в весте, называется без разницы как. Для этого пакета нужно выставить ограничение, чтобы пользователь не мог использовать любые PHP скрипты. То есть пакет подразумевает собой создание сайтов только на html (ествественно css и картинки тоже должны быть разрешены).
Подскажите откуда начать или уже имеется готовое решение.
Есть созданный мной пакет в весте, называется без разницы как. Для этого пакета нужно выставить ограничение, чтобы пользователь не мог использовать любые PHP скрипты. То есть пакет подразумевает собой создание сайтов только на html (ествественно css и картинки тоже должны быть разрешены).
Подскажите откуда начать или уже имеется готовое решение.
Re: Ограничение на использование скриптов PHP
Из коробки такого нет, однако можно сделать шаблон для вебсервера без поддержки php.
Шаблоны здесь: /usr/local/vesta/data/templates/web/apache2/
Шаблоны здесь: /usr/local/vesta/data/templates/web/apache2/
Re: Ограничение на использование скриптов PHP
Создаем шаблончег:
Делаем скелетик:
Создаем и еще шаблончег:
Делаем и еще скелетик:
Code: Select all
nano /usr/local/vesta/data/templates/web/apache2/nophp.tpl
Code: Select all
<VirtualHost %ip%:%web_port%>
ServerName %domain_idn%
%alias_string%
ServerAdmin %email%
DocumentRoot %docroot%
Alias /vstats/ %home%/%user%/web/%domain%/stats/
Alias /error/ %home%/%user%/web/%domain%/document_errors/
#SuexecUserGroup %user% %group%
CustomLog /var/log/%web_system%/domains/%domain%.bytes bytes
CustomLog /var/log/%web_system%/domains/%domain%.log combined
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
<Directory %docroot%>
AllowOverride All
Options +Includes -Indexes +ExecCGI
php_admin_value engine off
php_admin_value open_basedir %docroot%:%home%/%user%/tmp
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value session.save_path %home%/%user%/tmp
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain%"
</Directory>
<Directory %home%/%user%/web/%domain%/stats>
AllowOverride All
</Directory>
<IfModule mod_ruid2.c>
RMode config
RUidGid %user% %group%
RGroups www-data
</IfModule>
<IfModule itk.c>
AssignUserID %user% %group%
</IfModule>
Include %home%/%user%/conf/web/%web_system%.%domain%.conf*
</VirtualHost>
Code: Select all
nano /usr/local/vesta/data/templates/web/apache2/nophp.stpl
Code: Select all
<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/%web_system%/domains/%domain%.bytes bytes
CustomLog /var/log/%web_system%/domains/%domain%.log combined
ErrorLog /var/log/%web_system%/domains/%domain%.error.log
<Directory %sdocroot%>
AllowOverride All
SSLRequireSSL
Options +Includes -Indexes +ExecCGI
php_admin_value engine off
php_admin_value open_basedir %docroot%:%home%/%user%/tmp
php_admin_value upload_tmp_dir %home%/%user%/tmp
php_admin_value session.save_path %home%/%user%/tmp
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f info@%domain%"
</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 www-data
</IfModule>
<IfModule itk.c>
AssignUserID %user% %group%
</IfModule>
Include %home%/%user%/conf/web/s%web_system%.%domain%.conf*
</VirtualHost>
Code: Select all
service vesta restart
Re: Ограничение на использование скриптов PHP
Сам не тестировал, но если не получится,
давайте спишимся в ПМ - попробуем покрутить шаблон и обкатать.
давайте спишимся в ПМ - попробуем покрутить шаблон и обкатать.
Re: Ограничение на использование скриптов PHP
Добавь:
В своем шаблоне apache между тегами <VirtualHost></VirtualHost>.
Code: Select all
php_admin_value engine off
Re: Ограничение на использование скриптов PHP
Имхо проще создать отдельный шаблон: это визуально понятнее, это какая-то организованность и клево в конце-концов; к тому же он скорее все не будет затерт при обновлении :)ykpon wrote: В своем шаблоне apache между тегами <VirtualHost></VirtualHost>.
Re: Ограничение на использование скриптов PHP
Я против ничего не имею. По сути, подразумевалось, что достаточно скопировать стандартный темплейт и выполнить действия из совета. :)skurudo wrote:Имхо проще создать отдельный шаблон: это визуально понятнее, это какая-то организованность и клево в конце-концов; к тому же он скорее все не будет затерт при обновлении :)ykpon wrote: В своем шаблоне apache между тегами <VirtualHost></VirtualHost>.
Re: Ограничение на использование скриптов PHP
skurudo, сделал все по вашей инструкции, сайты с php скриптами (на движке DLE и самописные) все равно продолжают работать.
Re: Ограничение на использование скриптов PHP
Так понимаю, вы внесли изменения, перезапустили весту, далее сменили шаблон для нужного вам сайта и сделали rebuild web, правильно? Если все так и сделали, но не работает - пишите в ПМ с реквизитами сервера - поглядим по месту.ClouD wrote:skurudo, сделал все по вашей инструкции, сайты с php скриптами (на движке DLE и самописные) все равно продолжают работать.
Re: Ограничение на использование скриптов PHP
ВНИМАНИЕ, для тех у кого Apache 2.4+
В шаблоне вместо include нужно использовать IncludeOptional
Иначе канителька не заведется и будет ругаться при рестарте на вот такое:
В шаблоне вместо include нужно использовать IncludeOptional
Иначе канителька не заведется и будет ругаться при рестарте на вот такое:
Code: Select all
apache2: Syntax error on line 83 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/conf.d/vesta.conf: Syntax error on line 103 of /home/user/conf/web/apache2.conf: No matches for the wildcard 'apache2.img.user.ru.conf*' in '/home/user/conf/web', failing (use IncludeOptional if required)