У меня есть несколько проектов PHP, который содержит несколько версий PHP, таких как PHP 5,6, PHP 7,0 и т. Д.
Недавно я установил сервер lighttpd в качестве локального сервера. Вот мой lighttpd.conf
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_fastcgi",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/home/andrew/www/"server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"server.pid-file = "/var/run/lighttpd.pid"server.username = "www-data"server.groupname = "www-data"server.port = 80index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
compress.cache-dir = "/var/cache/lighttpd/compress/"compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
dir-listing.activate = "enable"
include "localhost.81.conf"
А также localhost.81.conf
является :
$SERVER["socket"] == ":81" {
server.document-root = "/home/andrew/www7"
}
Я установил php5.6-cgi и php7.0-cgi, и когда fastcgi-php5.6 включен, то php 5.6 работает, а когда fastcgi-php7.0 включен, то php 7.0 работает.
моды fastcgi-php5.6:
## Start an FastCGI server for php (needs the php5-cgi package)
fastcgi.server += ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi5.6",
"socket" => "/var/run/lighttpd/php.socket",
"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"),
"broken-scriptfilename" => "enable"))
и мод fastcgi-php7.0:
## Start an FastCGI server for php (needs the php7-cgi package)
fastcgi.server += ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi7.0",
"socket" => "/var/run/lighttpd/php.socket",
"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"),
"broken-scriptfilename" => "enable"))
Я не могу включить два fastcgi-php одновременно.
Но я хочу, чтобы порт 80 работал с php 5.6, а порт 81 — с php7.0.
Возможно ли это на сервере lighttpd?
Какова конфигурация запуска нескольких версий php на lighttpd?
Вы можете обновить на своем fastcgi-php из папки conf-available.
$ cd /etc/lighttpd/conf-available/
Сделайте резервную копию файла:
$ sudo cp 15-fastcgi-php.conf 15-fastcgi-php.conf.save
Теперь откройте 15-fastcgi-php.conf
и обновите как:
$ sudo vi 15-fastcgi-php.conf
и вставьте приведенный ниже фрагмент кода:
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi5.6",
"socket" => "/var/run/lighttpd/php.socket",
"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"),
"broken-scriptfilename" => "enable"))
)
$SERVER["socket"] == ":81" {
fastcgi.server = ( ".php" =>
((
"bin-path" => "/usr/bin/php-cgi7.0",
"socket" => "/var/run/lighttpd/php81.socket",
"max-procs" => 1,
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "4",
"PHP_FCGI_MAX_REQUESTS" => "10000"),
"bin-copy-environment" => (
"PATH", "SHELL", "USER"),
"broken-scriptfilename" => "enable"))
)
}
Теперь сохраните и закройте и включите мод.
$ sudo lighty-enable-mod fastcgi-php
Перезагрузите и перезапустите сервер:
$ sudo systemctl force-reload lighttpd
$ sudo systemctl restart lighttpd
Я надеюсь, что это сработает.
Других решений пока нет …