PHP с поддержкой LiteSpeed API
Установка и настройка PHP с поддержкой LS API (LiteSpeed)
Примечание
Альфа-версия.
LiteSpeed — протокол обмена информацией, а также модель работы PHP-интерпретатора.
Данная модель в чём-то схожа с работой PHP в режиме FastCGID и позволяет PHP работать в режиме сервиса,
который порождает процессы-потомки для обработки запросов.
Данный режим реализован для работы с сервером LiteSpeed — это коммерческая версия.
Также существует версия с открытым исходным кодом — OpenLiteSpeed.
Открытым также является и протокол LSSAPI.
При сборке PHP можно собрать PHP-интерпретатор с поддержкой протокола LSSAPI и на выходе получить двоичный файл lsphp
.
Но для его использования нужен или OpenLiteSpeed или коммерческий LiteSpeed.
Расширение mod_lsphp
позволяет использовать lsphp
с классическим веб-сервером Apache.
Предупреждение
Модуль находится на стадии альфа-тестирования, при использовании его на рабочих серверах следует проявлять осторожность.
Установка mod_lsphp и первичная настройка
Установка mod_lsphp
достаточно проста. Подключите репозиторий Hosting
от ОС МСВСфера 9 и выполните команду:
$ sudo dnf install mod_lsphp
После установки модуля в каталогах настройки Apache появятся несколько файлов:
/etc/httpd/conf.d/mod_lsphp.conf
/etc/httpd/conf.modules.d/11-mod_lsphp.conf
Для начала работы модуля в файле /etc/httpd/conf.modules.d/11-mod_lsphp.conf
раскомментируйте строку:
#LoadModule lsphp_module modules/mod_lsphp.so
Т.е. приведите её к виду:
LoadModule lsphp_module modules/mod_lsphp.so
Перезапустите Apache:
$ sudo systemctl restart httpd
Если при перезапуске Apache не запустился и в логе ошибок сервера появилась строка:
# cat /var/log/httpd/error_log | grep mod_lsphp | grep failed
... MODLSPHP: mod_lsphp system check failed. Disable mod_lsphp for server work. Use mod_fcgid or etc or use correct MSVSphere installation
То нужно сначала зарегистрировать систему и запустить сервис лимитирования (см. «МСВСфера 9 Сервер редакция для хостинг-провайдеров, интеграция с другим программным обеспечением»).
Если система зарегистрирована и корректно настроена, то Apache перезапустится и будет выведено сообщение:
# cat /var/log/httpd/error_log | grep MODLSPHP
... [pid 21393:tid 21393] MODLSPHP: (version: 0.0.1) loaded ok
... [pid 21396:tid 21396] MODLSPHP: queen process is started with pd = 21396
Данные строки говорят о том, что модуль успешно запустился и готов принимать запросы для обработки LSPHP-интерпретатором.
Обработчики
Важным моментом дальнейшей настройки является настройка обработчиков для привязки к обработчикам PHP.
Модуль по умолчанию предполагает, что в системе есть lsphp
и находится он по пути:
/usr/local/bin/lsphp
Имя данного хендлера application/x-httpd-lsphp
. Если данный файл присутствует в системе, то в VirtualHost
можно добавить следующую строку:
<IfModule lsphp_module>
lsphp_user_group user1 user1
AddHandler application/x-httpd-lsphp .php
php_admin_flag engine on
</IfModule>
И вызвать PHP-скрипт сайта. Он запустится и будет обрабатываться с помощью LSPHP от пользователя user1
.
Проверить наличие lsphp
можно командой:
$ sudo ps aux | grep lsphp
user1 21449 0.0 0.7 217304 29536 ? S 23:48 0:00 lsphp
user1 21450 0.0 0.5 217304 19640 ? Ss 23:48 0:00 lsphp
или
$ sudo lsps -p
ID PNO COM PID CPU MEM VMEM
user1 2 --- --- 0 11 0
--- lsphp 21464 0 7 0
--- lsphp 21465 0 7 0
Утилита lsps
видит данные процессы так как они сразу попадают в лимитированное и изолированное окружение LS и LFS.
Также модуль позволяет добавить пользовательские обработчики для различных версий LSPHP.
Например, контрольная панель ispmanager имеет в составе пакеты вида isp-php**-lsapi
, которые приносят в систему бинарный файл lsphp
:
# ls -1 /opt/php*/bin/lsphp
/opt/php53/bin/lsphp
/opt/php54/bin/lsphp
/opt/php55/bin/lsphp
/opt/php56/bin/lsphp
/opt/php70/bin/lsphp
/opt/php71/bin/lsphp
/opt/php72/bin/lsphp
/opt/php73/bin/lsphp
/opt/php74/bin/lsphp
/opt/php80/bin/lsphp
/opt/php81/bin/lsphp
/opt/php82/bin/lsphp
/opt/php83/bin/lsphp
/opt/php84/bin/lsphp
Для каждого файла можно создать свой обработчик, т.е привязать к псевдониму путь к бинарному файлу, чтобы можно было его использовать для виртуального хоста.
Пример. Создадим файл /etc/httpd/conf.d/lsphp_handlers.conf
со следующим содержимым:
<IfModule lsphp_module>
lsphp_custom_handler x-lsphp53 /opt/php53/bin/lsphp
lsphp_custom_handler x-lsphp54 /opt/php54/bin/lsphp
lsphp_custom_handler x-lsphp55 /opt/php55/bin/lsphp
lsphp_custom_handler x-lsphp56 /opt/php56/bin/lsphp
lsphp_custom_handler x-lsphp70 /opt/php70/bin/lsphp
lsphp_custom_handler x-lsphp71 /opt/php71/bin/lsphp
lsphp_custom_handler x-lsphp72 /opt/php72/bin/lsphp
lsphp_custom_handler x-lsphp73 /opt/php73/bin/lsphp
lsphp_custom_handler x-lsphp74 /opt/php74/bin/lsphp
lsphp_custom_handler x-lsphp80 /opt/php80/bin/lsphp
lsphp_custom_handler x-lsphp81 /opt/php81/bin/lsphp
lsphp_custom_handler x-lsphp82 /opt/php82/bin/lsphp
lsphp_custom_handler x-lsphp83 /opt/php83/bin/lsphp
lsphp_custom_handler x-lsphp84 /opt/php84/bin/lsphp
</IfModule>
И настроим виртуальный хост сайта на использование lsphp
версии 55.
Предупреждение
После изменения настроек в конфигурационных файлах необходимо перезапустить Apache.
Проверяем вывод phpinfo()
:
$ sudo curl http://user1.t/i.php 2>/dev/null | grep "PHP Version </td>"
<tr><td class="e">PHP Version </td><td class="v">5.5.38 </td></tr>
Или перенастроим на обработчик x-lsphp83
:
$ sudo curl http://user1.t/i.php 2>/dev/null | grep "PHP Version </td>"
<tr><td class="e">PHP Version </td><td class="v">8.3.16 </td></tr>
Типовая настройка виртуального хоста
Для работы сайта с lsphp
необходимо добавить некоторые специфичные директивы в настройки виртуального хоста.
Например, вот как может выглядеть конфигурационный файл /etc/httpd/conf.d/user1.t.conf
:
<VirtualHost *:80>
ServerAdmin webmaster@user1.t
DocumentRoot /var/www/user1/site/user1.t
ServerName user1.t
ServerAlias www.user1.t
ErrorLog /var/www/user1/logs/user1.t.error.log
CustomLog /var/www/user1/logs/user1.t.access.log common
DirectoryIndex index.php
...
<IfModule lsphp_module>
lsphp_user_group user1 user1
AddHandler x-lsphp83 .php
php_admin_flag engine on
</IfModule>
</VirtualHost>
За определение пользователя — владельца процесса lsphp
отвечает директива lsphp_user_group user1 user1
,
можно также указать другую директиву SuexecUserGroup user1 user1
.
Если же не указать ни одну из данных директив, то сайт вернёт ошибку.
Ошибки можно избежать, если в файл /etc/httpd/conf.d/mod_lsphp.conf
добавить директиву lsphp_apache_uid On
.
Пример:
<IfModule lsphp_module>
lsphp_apache_uid On
</IfModule>
В этом случае lsphp
запустится от пользователя Apache:
$ sudo ps aux | grep lsphp
apache 24030 0.5 0.8 242588 32068 ? S 15:02 0:00 lsphp
apache 24031 0.0 0.6 242588 22584 ? Ss 15:02 0:00 lsphp
Данная директива позволяет не производить настройку отдельно для каждого сайта.
В любом случае для сайта будет запущен процесс lsphp
, но все процессы будут запущены от пользователя apache
.
Параметры настройки LSPHP
lsphp_custom_handler
Описание
Добавить собственный обработчик запроса. Данная опция связывает виртуальное имя (обработчик) и путь к бинарному файлу, который будет принимать запросы.
Пример
lsphp_custom_handler x-lsphp53 /opt/php53/bin/lsphp
Вы можете добавить несколько собственных обработчиков — в результате сохранится их список. Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_user_group
Описание
Задать пользователя (и группу), от которого запустится lsphp
.
Пример
lsphp_user_group user1 user1
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_uid_gid
Описание
Задать пользователя (и группу), от которого запустится lsphp
(в виде идентификатора, а не имени).
Пример
lsphp_uid_gid 1000 1000
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_apache_uid
Описание
Запускать lsphp
для сайта от имени пользователя apache
, если не определены ни lsphp_user_group
, ни SuexecUserGroup
.
Может принимать значения On
и Off
.
Значение по умолчанию: On
.
Пример
lsphp_apache_uid Off
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_waiting_timeout
Описание
Задать время ожидания соединения при запросе запуска lsphp
для виртуального хоста.
Чем меньше значение, тем быстрее Apache сможет идентифицировать, что lsphp
запустился,
но больше вероятность того, что при задержке запуска сайт вернёт ошибку 503.
Время задаётся в микросекундах.
Значение по умолчанию: 500000 микросекунд
, т.е. 0.5 секунды
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_reconnects
Описание
Задать число попыток соединения при запросе запуска lsphp
для виртуального хоста.
Чем меньше значение, тем быстрее Apache сможет идентифицировать, что lsphp
запустился, но больше вероятность того,
что при задержке запуска сайт вернёт ошибку 503.
Значение по умолчанию:: 20
микросекунд
Задаётся в конфигурационном файле или в VirtualHost
.
Суммарное время ожидания запуска lsphp
для виртуального хоста рассчитывается как lsphp_reconnects * lsphp_waiting_timeout
и по умолчанию составляет 10 секунд.
lsphp_childs
Описание
Устанавливает значение параметра LSAPI_CHILDREN. Максимальное число обработчиков для пользователя.
Значение по умолчанию: 80
Пример
lsphp_childs 70
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_max_idle
Описание
Устанавливает значение параметра LSAP_IMAX_IDLE.
Число секунд до того, как бездействующий процесс lsphp
погаснет.
Значение по умолчанию: 300
Пример
lsphp_max_idle 400
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_pgrp_max_idle
Описание
Устанавливает значение параметра LSAPI_PGRP_MAX_IDLE.
Число секунд до того, как главный процесс lsphp
погаснет при отсутствии дочерних процессов.
Значение по умолчанию: 30
Пример
lsphp_max_idle 40
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_process_life
Описание
Устанавливает значение параметра LSAPI_MAX_PROCESS_TIME. Максимальное число секунд, в течении которых будет обрабатываться запрос, потом процесс-обработчик гаснет.
Значение по умолчанию: 300
Пример
lsphp_process_life 400
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_spath
Описание
Путь, где будут располагаться сокеты, соединяющие Apache с запущенными процессами lsphp
.
Значение по умолчанию: /tmp/lsphp_httpd/
, а для HTTPD-ITK: /tmp/lsphp_httpd_itk/
.
Можно задать произвольный путь.
Пример
lsphp_spath /opt/sockets/
Также с модулем поставляется файл для настройки каталогов в очищаемых директориях — /usr/lib/tmpfiles.d/mod_lsphp.conf
.
d /tmp/lsphp_httpd/ 750 apache apache
d /tmp/lsphp_httpd_itk/ 755 apache apache
Соответственно, задавая свой каталог, учитывайте, чтобы данные в нём были доступны от пользователя apache
,
на чтение и запись или в режиме itk для всех пользователей на чтение и исполнение.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_phprc
Описание
Путь к файлу PHP Runtime coniguration.
Значение по умолчанию: не задан, конфигурация берётся из стандартного php.ini
.
Пример
lsphp_phprc /var/www/user1/conf/.user.ini
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_force_restart
Описание
Включить или выключить принудительный останов процессов lsphp
при перезапуске Apache.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_secure_scripts
Описание
Проверить, что владельцем исполняемого файла PHP является тот же пользователь, от которого запущен процесс lsphp
.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
Взаимодействие с mod_php
mod_lsphp
так же как и mod_php
читает параметры php_value
, php_admin_value
, php_flag
, php_admin_flag
.
Он может читать их как из глобальной конфигурации сервера, так и из виртуального хоста, а также из файла .httaccess
(если его поддержка включена),
поэтому параметр php_admin_flag engine off
, установленный для mod_php
, успешно прочитает и mod_lsphp
, и PHP отрабатывать не будет.
Поэтому возможны конфликты между mod_php
и mod_lsphp
.
Проверка конфигурации виртуального хоста
Если в конфигурационный файл /etc/httpd/conf.d/mod_lsphp.conf
добавить следующую директиву:
<Location "/info">
SetHandler lsphp-debug-handler
</Location>
То данный обработчик выведет настройки для виртуального хоста, где была запрошена страница /info
.
Будет выдана страница вида:
# lynx --dump http://user1.t/info
Server config
Path to socket not set
PHPRC not set
Connection timeout -2
Reconnect tries -2
Max children -2
Max idle -2
Max process time -2
Poll timeout -2
Stop backend 1
Check permissions 1
Use apache user 1
Coredump 0
Directory config
LSPHP uid 1000
LSPHP gid 1000
PHP params engine 1 adm:1 htaccess:0
Handlers list
application/x-httpd-lsphp /usr/local/bin/lsphp
x-lsphp70 /opt/php70/bin/lsphp
x-lsphp53 /opt/php53/bin/lsphp
x-lsphp71 /opt/php71/bin/lsphp
x-lsphp80 /opt/php80/bin/lsphp
x-lsphp54 /opt/php54/bin/lsphp
x-lsphp72 /opt/php72/bin/lsphp
x-lsphp81 /opt/php81/bin/lsphp
x-lsphp55 /opt/php55/bin/lsphp
x-lsphp73 /opt/php73/bin/lsphp
x-lsphp82 /opt/php82/bin/lsphp
x-lsphp56 /opt/php56/bin/lsphp
x-lsphp74 /opt/php74/bin/lsphp
x-lsphp83 /opt/php83/bin/lsphp
x-lsphp84 /opt/php84/bin/lsphp
Starter security info
-D LSPHPS_ALLOWED_CMD= lsphp
-D LSPHPS_ALLOWED_DIR= /usr/local/bin
-D LSPHPS_DOC_ROOT= /var/www
-D LSPHPS_GID_MIN= 1000
-D LSPHPS_HTTPD_USER= apache
-D LSPHPS_LOG_EXEC= /var/log/httpd/lsphp_mod.log
-D LSPHPS_SAFE_DIR= /opt
-D LSPHPS_UID_MIN= 1000
-D LSPHPS_SAFE_PATH= /usr/local/bin:/usr/bin:/bin
-D LSPHPS_USERDIR_SUFFIX= public_html
Где можно получить все настройки для виртуального хоста. Здесь -2
— значение по умолчанию.
Параметры тонкой настройки
Данные параметры рекомендуетя использовать со значениями по умолчанию.
lsphp_ptime
Описание
Значение в миллисекундах, в течении которого poll-вызов будет ожидать событие в наборе дескрипторов.
Значение по умолчанию: 0.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_allow_coredump
Описание
Устанавливает параметр LSAPI_ALLOW_CORE_DUMP=1
, который позволяет lsphp
создавать отладочную информацию при сбое в работе.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_connection_details
Описание
Параметр включает и отключает вывод дополнительной информации при соединении.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_custom_env_variable
Описание
Параметр задаёт собственную переменную окружения для lsphp
.
lsphp_custom_env_variable TEST test_value
Поддерживает ссылку на значение существующей переменной в формате $ORIG_ENV
или ${ORIG_ENV}
.
Например, если существует переменная окружения SHL=bash
, то можно задать собственную переменную:
lsphp_custom_env_variable MY_OWN_SH $SHL
И для lsphp
будет установлена переменная MY_OWN_SH=bash
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_user_init (экспериментальный параметр)
Описание
Добавляет флаг LSPHP_ENABLE_USER_INI=on
при запуске lsphp
.
Документация LiteSpeed.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_user_init_homedir (экспериментальный параметр)
Описание
Добавляет флаг LSAPI_USERINI_HOMEDIR=1
при запуске lsphp
.
Документация LiteSpeed.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_notify (экспериментальный параметр)
Описание
Параметр включает и отключает режим работы lsphp
— LSAPI_ACCEPT_NOTIFY = 1
.
Документация LiteSpeed.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
lsphp_debug
Описание
Параметр включает и отключает вывод дополнительной информации при обработке запроса. Создаёт обширный вывод в лог, не рекомендуется для действующих серверов, возможно, разве что, кратковременное включение.
Значение по умолчанию: Off
.
Задаётся в конфигурационном файле или в VirtualHost
.
Установка для ispmanager вручную
Для работы модуля необходимо наличие пакетов isp-php*-lsapi
.
Например, если нужен работающий PHP 8.1 в режиме LiteSpeed, для этого на машине с ispmanager необходимо установить пакет:
$ sudo yum install isp-php81-lsapi
И создать файл /etc/httpd/conf.d/lsphp_handlers.conf
со следующим содержимым:
<IfModule lsphp_module>
lsphp_custom_handler x-lsphp81 /opt/php81/bin/lsphp
</IfModule>
Шаблон для виртуального хоста для сайта с обработкой LSPHP должен выглядеть следующим образом:
<VirtualHost 127.0.0.1:8080>
ServerName user1.my.brp
DocumentRoot /var/www/user1/data/www/user1.my.brp
ServerAdmin webmaster@user1.my.brp
AddDefaultCharset off
SuexecUserGroup user1 user1
CustomLog /var/www/httpd-logs/user1.my.brp.access.log combined
ErrorLog /var/www/httpd-logs/user1.my.brp.error.log
ScriptAlias /cgi-bin/ /var/www/user1/data/www/user1.my.brp/cgi-bin/
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler x-lsphp81
</FilesMatch>
SetEnvIf X-Forwarded-Proto https HTTPS=on
ServerAlias www.user1.my.brp
DirectoryIndex index.php index.html
Include /etc/httpd/conf/users-resources/user1/vhost.conf
IncludeOptional /etc/httpd/conf/vhosts-resources/user1.my.brp/*.conf
<IfModule lsphp_module>
Include /etc/httpd/users-php/user1.conf
Include /etc/httpd/vhosts-php/user1.my.brp.conf
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f webmaster@user1.my.brp"
php_admin_value upload_tmp_dir "/var/www/user1/data/mod-tmp"
php_admin_value session.save_path "/var/www/user1/data/mod-tmp"
php_admin_value open_basedir "/var/www/user1/data:."
</IfModule>
</VirtualHost>
<Directory /var/www/user1/data/www/user1.my.brp>
Options +Includes +ExecCGI
<IfModule lsphp_module>
php_admin_flag engine on
</IfModule>
</Directory>
Затем необходимо перезапустить Apache.
Интеграция с веб-интерфейсом ispmanager
Для интеграции с веб-интерфейсом ispmanager необходимо установить пакет ls-isp-plugin
версии не ниже 0.6.1
.
А также пакет mod_lsphp
(должны быть установлены и активированы сопутствующие сервисы ОС МСВСфера 9 Хостинговая редакция: klsd
, lsctl
, limited-fs
и пр.).
Примечание
Модуль mod_lsphp
успешно протестирован и поддерживается для работы с конфигурацией Apache Prefork.
Рекомендуем использовать именно такую конфигурацию Apache.
Установка необходимых пакетов:
$ sudo dnf install mod_lsphp ls-isp-plugin
Предупреждение
ls-isp-plugin
при установке перезапишет файлы /usr/local/mgr5/etc/templates/apache2-vhosts.template
и
/usr/local/mgr5/etc/templates/apache2-directory.template
, поэтому если в данных файлах были изменения, то они пропадут,
и необходимо будет внести их в новый файл.
Также необходимо установить пакеты isp-php*-lsapi
, которые принесут в систему lsphp
бинарные файлы.
Пример установки некоторых версий lsphp
:
$ sudo dnf install isp-php80-lsapi isp-php81-lsapi
Далее в файле /etc/httpd/conf.modules.d/11-mod_lsphp.conf
необходимо раскомментировать загрузку модуля и перезапустить Apache:
LoadModule lsphp_module modules/mod_lsphp.so
Или зайдите в пункт “Настройки системы” и включите флажок “Включить/выключить модуль lsphp”:

Если установка прошла без ошибок, то в шаблонах ispmanager должен появиться новый шаблон lsphp
.

Теперь можно перейти к пользователю, для которого необходимо включить mod_lsphp
, и перейти в меню редактирования пользователя.

Здесь выберите в качестве шаблона lsphp
.

И сохраните.
Далее перейдите в настройки сайта пользователя и в разделе “Обработчик PHP” выберите необходимую версию LSPHP для сайта.

Сохраните изменения.
Для сайта пользователя должен быть сгенерирован конфигурационный файл вида:
<VirtualHost 127.0.0.1:8080>
ServerName user1.my.brp
...
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler x-lsphp80
</FilesMatch>
<IfModule lsphp_module>
lsphp_user_group user1 user1
</IfModule>
...
</VirtualHost>
<Directory /var/www/user1/data/www/user1.my.brp>
Options +Includes +ExecCGI
<IfModule lsphp_module>
php_admin_flag engine on
</IfModule>
</Directory>
С этого момента сайт должен обрабатываться LSPHP.
Переход от Apache ITK к Apache Prefork в ispmanager
Для перехода от Apache ITK
в Apache Prefork
(если ранее уже был установлен mod_lsphp
) необходимо выполнить следующие действия.
Перейдите в настройку “Конфигурация ПО” и выберите “Веб-сервер (WWW)”, затем “Настройка работы ПО”.
В открывшемся окне в графе
Apache
выберите “Не использовать”, т.к. прямой переход отITK
кPrefork
совершить нельзя. После того, как переконфигурация ПО завершится, выберите “Apache MPM-Prefork”, а также поставьте галочки напротив пунктов “Модуль PHP” и “PHP-FPM FastCGI”.Нажмите “Сохранить”.
После переконфигурации в командной строке запустите скрипт с параметром:
$ sudo msvsphere_hosting_convert lsisp
Он восстановит все удалённые хостинговые пакеты (которые удалились при переходе в тот момент, когда система была без Apache).
После этого в “Настройках системы” снова включите модуль mod_lsphp.

Сохраните изменения.
Всех пользователей, у каторых был установлен шаблон lsphp
, нужно вернуть к стандартному шаблону или “без шаблона”.
И поменять обработчик PHP на “Модуль PHP” или любой другой, характерный для Apache.
После этого можно включать шаблон lsphp
и устанавливать обработчики для LSPHP.