Project

General

Profile

Actions

Howto PHP

Lighttpd config

setup {
    module_load ( "mod_fastcgi" );
}

php = {
    if phys.path =$ ".php" {
        if physical.is_file {
            fastcgi "unix:/var/run/lighttpd/sockets/www-default-php.sock";
        }
    }
};

# ... some vhost/directory/whatever
# just use it in places where you want allow php.
# you need docroot before it (an alias / index if you need them)!

docroot "/var/www";
alias "/phpmyadmin" => "/usr/share/phpmyadmin";
index ( "index.php", "index.html" );

# if you want to use urls like http://example.com/index.php/some/path (using your php files like directories), you need this:
pathinfo;

php;

# ...

Spawning php

Simple ./run script to spawn php with spawn-fcgi and runit/daemontools:

#!/bin/sh

exec 2>&1

PHP_FCGI_CHILDREN=2 \
PHP_FCGI_MAX_REQUESTS=10000 \
LANG=C LC_ALL=C \
exec /usr/bin/spawn-fcgi -n -s /var/run/lighttpd/sockets/www-default-php.sock -u www-default -U www-data -- /usr/bin/php5-cgi

php-fpm

This directs physical files with extension .php and the special url "/fpm-status" to php.

-- php-fpm.lua

local function phpfpm(act)
    return action.when(physical.path:suffix(".php"),
        action.when(physical.is_file:is(), act),
        action.when(request.path:eq("/fpm-status"), act)
    )
end

actions = {
    ["phpfpm"] = phpfpm,
}
setup {
    module_load ( "mod_fastcgi", "mod_lua" );
    lua.plugin "/etc/lighttpd2/php-fpm.lua";
}

php = {
    phpfpm { fastcgi "unix:/var/run/lighttpd2-php-www-default.sock"; };
};

Or, without the lua helper (which is only run at startup, no runtime lua involved):

setup {
    module_load ( "mod_fastcgi" );
}

php = {
    if phys.path =$ ".php" {
        if physical.is_file {
            fastcgi "unix:/var/run/lighttpd/sockets/www-default-php.sock";
        }
    } else if request.path == "/fpm-status" {
        fastcgi "unix:/var/run/lighttpd2-php-www-default.sock";
    }
};

Updated by stbuehler about 12 years ago · 7 revisions