We are happy to announce that Vesta is back under active development as of 25 February 2024. We are working on v1 candidate and expect to engage more with the community over the coming months. We are committed to open source, and we encourage contributors to help us build the future of Vesta.
Ограничение на использование скриптов 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)