Запуск Rails и PHP на Lighttpd в Linux
Что ж, мне интересно, есть ли способ запустить как рельсы, так и PHP на Lighty, на Ubuntu. Я хочу запускать как мои проекты PHP, так и проекты Rails на одном сервере / домене.
У меня мало опыта работы с Linux, так что простите мою наивность.
Если есть способ сделать это, пожалуйста, дайте мне знать:)
3 ответа
Это действительно довольно просто запустить их обоих. Я делаю это все время (ROR для запуска Redmine и PHP для остальных).
У вас есть 2 реальных варианта ROR. Либо обслуживайте его из FastCGI (что я делаю), либо запускайте его с автономным сервером (например, Mongrel и т. Д.) И прокси-сервером к нему. Оба имеют свои преимущества. Преимущество FastCGI заключается в том, что он автономен (не требует запуска дополнительного сервера). Преимущество автономного приложения заключается в том, что его проще настраивать.
Если у вас есть конкретные вопросы, я могу помочь, но в Интернете есть инструкции о том, как это сделать.
Мой lighttpd.conf:
$HTTP["host"] =~ "my.ror.site" {
server.error-handler-404="/dispatch.fcgi"
fastcgi.server = (".fcgi" => ("ror_1" => (
"min-procs"=>8,
"max-procs" => 8,
"socket" => "/tmp/myrorlock.fastcgi",
"bin-path"=> "/path/to/ror/site/public/dispatch.fcgi",
"kill-signal" => 9,
"bin-environment" => ( "RAILS_ENV" => "production" )
)))
}
fastcgi.server = ( ".php" =>
(
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-cgi -c /etc/php.ini",
"min-procs" => 1,
"disable-time" => 1,
"max-procs" => 1,
"idle-timeout" => 20,
"broken-scriptfilename" => "enable",
"bin-copy-environment"=> (
"PATH", "SHELL", "USER"
),
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "40",
"PHP_FCGI_MAX_REQUEST" => "50000"
)
)
)
)
И это все. Обратите внимание kill-signal
вариант. это важно, иначе вы будете сталкиваться с зомби-процессами везде при каждом перезапуске сервера...
Проверять, выписываться fastcgi.conf
в conf.d
подкаталог каталога конфигурации Lighty (не уверен, где он находится в Ubuntu, но быстрый поиск предполагает /etc/lighttpd
). Есть закомментированные примеры для PHP и Rails; Объединив их, вы сможете получить нужную настройку (хотя я бы посоветовал сначала установить одну, а затем настроить другую).
FastCGI - это метод, с помощью которого Lighty может взаимодействовать с такими средами исполнения, как Ruby или PHP. Lighty также может использовать SCGI, хотя я никогда не использовал его сам и не уверен, насколько хорошо он работает (в последний раз я слышал, что он все еще экспериментальный).
Вы также можете найти страницу оптимизации FastCGI на вики-документации Lighty, хотя она довольно специфична для PHP/MySQL.
Я не использую Lighty. Rails лучше всего обслуживать Passenger и Apache, учитывая возможности дополнения Passenger для Apache. Я работал с Wordpress (PHP) в том же домене, что и мое Rails-приложение, указав его путь куда-то еще. Вот статья, чтобы следовать. НТН.