Skocz do zawartości
  • Cześć!

    Witaj na forum RootNode - aby pisać u nas musisz się zarejestrować, a następnie zalogować. Posty pisane z kont niezarejestrowanych nie są widoczne publicznie.

[Kupię] Plugin do directadmina


Rekomendowane odpowiedzi

Pamiętaj, że możesz też wersję zmienić ręcznie, za pomocą odpowiedniego wpisu w .htaccess w danej domenie/katalogu.

Na podstawie tego, myślę że nie byłoby trudne stworzenie takiego pluginu, jeżeli koniecznie miałoby być zarządzanie tym z poziomu panelu DirectAdmin,

 

Ogólnie, aby to działało (ustawianie wersji PHP w .htaccess) trzeba dodać konkretne wersje, jakie mają być obsługiwane w .htaccess. Robi się to w pliku: /etc/container/php.handler, np.:

application/x-lsphp54 /opt/alt/php54/usr/bin/lsphp
application/x-lsphp56 /opt/alt/php56/usr/bin/lsphp
application/x-lsphp70 /opt/alt/php70/usr/bin/lsphp

W moim przypadku dla PHP działającego na: mod_lsapi

 

W .htaccess danej domeny/katalogu dodajesz potem (dla PHP 5.6):

AddType application/x-lsphp56 .php

 

Więcej szczegółów na ten temat: https://www.cloudlinux.com/cloudlinux-os-blog/entry/different-php-versions-per-directories-using-mod-lsapi

Edytowane przez Desavil
  • Lubię 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • 3 tygodnie później...
2 godziny temu, Halborwan napisał:

Taka wtyczka jest do napisania w ciągu maks. 2 godzin.

 

phpver.png

To w imieniu społeczności zachęcam do publikacji kodu źródłowego, przecież to są tylko 2h pracy, więc nakład pracy znikomy, a społeczności się pewnie przyda :P

Odnośnik do odpowiedzi
Udostępnij na innych stronach

W imieniu własnym zachęcam do rozwijania własnych zdolności oskryptowania DA i kwotę przeznaczoną na

zakup wtyczki przeznaczyć na własne doszkalanie, zakup literatury itp.

 

Podpowiedź:

virtual_host2*.conf pozbyłem się sekcji

|?OBDP1=|
|*if PHP1_RELEASE!="0.000000"|
|?OBDP1=:/usr/local/php`PHP1_RELEASE`/lib/php/|
|*endif|
|?OBDP2=|
|*if PHP2_RELEASE!="0.000000"|
|?OBDP2=:/usr/local/php`PHP2_RELEASE`/lib/php/|
|*endif|

i

|*if HAVE_PHP1_FPM="1"|
        <FilesMatch "\.(inc|php|phtml|phps|php|PHP1_RELEASE|)$">
                AddHandler "proxy:unix:/usr/local/php|PHP1_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .inc .php .phtml .php|PHP1_RELEASE|
        </FilesMatch>
|*endif|

|*if HAVE_PHP2_FPM="1"|
        <FilesMatch "\.(inc|php|phtml|phps|php|PHP2_RELEASE|)$">
                AddHandler "proxy:unix:/usr/local/php|PHP2_RELEASE|/sockets/|USER|.sock|fcgi://localhost" .php|PHP2_RELEASE|
        </FilesMatch>
|*endif|

|*if HAVE_PHP1_FPM_OLD="1"|
        #Make sure you're running Apache 2.4.10 or newer.
|*endif|

|*if HAVE_PHP2_FPM_OLD="1"|
        #Make sure you're running Apache 2.4.10 or newer.
|*endif|
|CUSTOM2|
        <Directory |DOCROOT|>
|CUSTOM3|
|*if CGI=""|
                |ALLOW_OVERRIDE|
                Options -ExecCGI
|*endif|
|*if HAVE_PHP1_FCGI="1"|
                <IfModule mod_fcgid.c>
                        FCGIWrapper '/usr/local/safe-bin/fcgid|PHP1_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php
                        <FilesMatch "\.php$">
                                SetHandler fcgid-script
                                Options +ExecCGI
                        </FilesMatch>
                </IfModule>
|*endif|
|*if HAVE_PHP2_FCGI="1"|
                <IfModule mod_fcgid.c>
                        FCGIWrapper '/usr/local/safe-bin/fcgid|PHP2_RELEASE|.sh /usr/local/directadmin/data/users/|USER|/php/|DOMAIN|.ini |FASTCGI_SENDMAIL_FROM| |FASTCGI_OPENBASEDIR| |PHP_MAIL_LOG|' .php|PHP2_RELEASE|
                        <FilesMatch "\.php|PHP2_RELEASE|$">
                                SetHandler fcgid-script
                                Options +ExecCGI
                        </FilesMatch>
                </IfModule>
|*endif|
|*if HAVE_SAFE_MODE="1"|
                php_admin_flag safe_mode |SAFE_MODE|
|*endif|
|*if CLI="1"|
                php_admin_flag engine |PHP|
                php_admin_value sendmail_path '/usr/sbin/sendmail -t -i -f |PHP_EMAIL|'
                |CLI_PHP_MAIL_LOG|
|*endif|
|*if OPEN_BASEDIR="ON"|
                php_admin_value open_basedir |OPEN_BASEDIR_PATH|
|*endif|
|*if HAVE_PHP1_CLI="1"|
                <FilesMatch "\.php$">
                        AddHandler application/x-httpd-php|LSPHP1_RELEASE| .php
                </FilesMatch>
|*endif|
|*if HAVE_PHP2_CLI="1"|
                <FilesMatch "\.php|PHP2_RELEASE|$">
                        AddHandler application/x-httpd-php|LSPHP2_RELEASE| .php|PHP2_RELEASE|
                </FilesMatch>
|*endif|
|*if SUPHP="1"|
                suPHP_Engine |PHP|
                suPHP_UserGroup |USER| |GROUP|
|*endif|
|*if HAVE_PHP1_SUPHP="1"|
                <FilesMatch "\.php$">
                        AddHandler x-httpd-php|PHP1_RELEASE| .php
                </FilesMatch>
|*endif|
|*if HAVE_PHP2_SUPHP="1"|
                <FilesMatch \.php|PHP2_RELEASE|$>
                        AddHandler x-httpd-php|PHP2_RELEASE| .php|PHP2_RELEASE|
                </FilesMatch>
|*endif|
        </Directory>

 

następnie użyłem ucieczki do zewn. skryptu - w moim przypadku w php:

|$/usr/local/php/bin/php
<?php
$domain='|DOMAIN|';
$user='|USER|';
$sub='|SUB|';
$docroot='|DOCROOT|';
echo "\n";

include('/usr/local/directadmin/data/templates/custom/genvh.php');
?>

który generuje odpowiednią sekcję konfiguracji dla wybranej wersji PHP.

 

Do kompletu jest również frontend w DA dzięki któremu użytkownik może wybrać wersję php dla konkretnej domeny.

Frontend przekazuje wersję i powyższe zmienne do powyższej sekcji.

Dodatkowo genvh.php ma również określoną domyślną wersję php, której konfiguracja jest generowana gdy użytkownik doda nową domenę.

 

 

  • Lubię 1
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie, chcę Cię zachęcić abyś sam spróbował napisać taką wtyczkę bo nie jest to specjalnie trudne.

DA ma bogate możliwości dzięki własnemu oskryptowaniu, oprócz wyboru wersji php dla konkretnej domeny

można dorobić wybór wersji MySQL, limit czasu CPU per domena zużywane przez php (jeśli jest taka funkcjonalność

w os).

 

Chętnie służę pomocą i podpowiedzią.

 

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.