В предыдущей статье мы рассмотрели установку OpenResty на CentOS 7:
Сейчас мы узнаем, как установить Lapis и MoonScript.
MoonScript - это динамический скриптовый язык, который компилируется в Lua. Он упрощает написание кода, реализует классы с наследованием. Он также обеспечивает чистый синтаксис, используя отступы, что позволяет избежать do, then, end и т.д., которые имеются в скрипте Lua. То есть MoonScript чувствителен пробелам и переносам строк.
Если вы новичок в Lua, то сначала можно потренироваться без MoonScript, чтобы поближе познакомиться с Lua.
Lapis - это веб-фреймворк, написанный для Lua и MoonScript, который построен на основе дистрибутива OpenResty. Помимо веб-фреймворка, Lapis также предоставляет инструменты для управления OpenResty в различных конфигурационных средах. Даже если вы не хотите использовать веб-фреймворк, он может оказаться полезным, если вы работаете с OpenResty.
Lapis включает в себя URL-маршрутизатор, HTML-шаблоны, защиту от CSRF-атак и поддержку сеансов, систему активной записи PostgreSQL или MySQL для работы с моделями и несколько других полезных функций, необходимых для разработки веб-сайтов.
Для установки Lapis и MoonScript нам потребуется сначала установить LuaRocks - это менеджер пакетов для Lua (перед установкой проверьте последнюю версию http://luarocks.org/releases/):
Теперь установим Lapis:
Установим MoonScript:
Примечание: если вы внесли правку в PATH (как в описании по установке OpenResty), то можно запустить команду так:
Все готово, теперь создадим костяк нашего сайта на MoonScript в папке example:
Примечание: если вы хотите создать стартовый проект на Lua, то нужно использовать такую команду:
Создадим в каталоге /usr/local/openresty/site/example файл конфигурации config.lua, который будет автоматически подхватывать Lapis:
Почитать больше о конфигурациях Lapis можно здесь:
После этого в каталоге example появится новый проект с файлами .moon (или .lua), config.lua и nginx.conf. Откройте и посмотрите файлы, которые были сгенерированы. Обратите внимание, на nginx.conf:
Здесь имеются макросы типа ${{VARIABLE}}, которые при запуске сервера заменятся на соответствующие опции из файла config.lua. Также конфиг сконфигурирован таким образом, что позволяет видеть в консоли текущий лог. За это отвечают следующие директивы:
Директива
Эти опции используются исключительно для отладки и их следует отключить в рабочем проекте.
Далее, чтобы выполнить код из файла .moon, его нужно сначала перевести в lua-код. Это можно сделать такой командой:
Можно также автоматически переводить из .moon в .lua такой командой:
Таким образом moonc будет постоянно проверять файлы .moon на изменения и переводить их в .lua "на лету".
Пришло время запустить OpenResty с помощью Lapis. Сделать это можно так:
Остановить сервер можно нажав клавиши
Перейдите на адрес http://ваш_ip:8080/ - там вы должны увидеть "Welcome to Lapis", с чем я Вас и поздравляю!
[OpenResty] Установка OpenResty на CentOS 7 | Nginx / Tengine / OpenResty
OpenResty® - это веб-сервер, являющийся некой версией Nginx с расширенным функционалом. Кроме различных плюшек, он славится тем, что идет со встроенным LuaJIT - это самая быстрая реализация скриптового языка программирования Lua. Иными словами, после установки Вы сможете программировать на языке...
stackobject.com
MoonScript - это динамический скриптовый язык, который компилируется в Lua. Он упрощает написание кода, реализует классы с наследованием. Он также обеспечивает чистый синтаксис, используя отступы, что позволяет избежать do, then, end и т.д., которые имеются в скрипте Lua. То есть MoonScript чувствителен пробелам и переносам строк.
Если вы новичок в Lua, то сначала можно потренироваться без MoonScript, чтобы поближе познакомиться с Lua.
Lapis - это веб-фреймворк, написанный для Lua и MoonScript, который построен на основе дистрибутива OpenResty. Помимо веб-фреймворка, Lapis также предоставляет инструменты для управления OpenResty в различных конфигурационных средах. Даже если вы не хотите использовать веб-фреймворк, он может оказаться полезным, если вы работаете с OpenResty.
Lapis включает в себя URL-маршрутизатор, HTML-шаблоны, защиту от CSRF-атак и поддержку сеансов, систему активной записи PostgreSQL или MySQL для работы с моделями и несколько других полезных функций, необходимых для разработки веб-сайтов.
Для установки Lapis и MoonScript нам потребуется сначала установить LuaRocks - это менеджер пакетов для Lua (перед установкой проверьте последнюю версию http://luarocks.org/releases/):
Установка LuaRocks:
wget http://luarocks.org/releases/luarocks-3.5.0.tar.gz
tar -xzvf luarocks-3.5.0.tar.gz
cd luarocks-3.5.0/
./configure --prefix=/usr/local/openresty/luajit \
--with-lua=/usr/local/openresty/luajit/ \
--lua-suffix=jit \
--with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1
make && sudo make install
Установка Lapis:
cd ~
yum install git -y
/usr/local/openresty/luajit/bin/luarocks install lapis
Установка MoonScript:
/usr/local/openresty/luajit/bin/luarocks install moonscript
luarocks install [package]
В дальнейшем будут использоваться команды без указания путей.Все готово, теперь создадим костяк нашего сайта на MoonScript в папке example:
Bash:
mkdir /usr/local/openresty/site/example && cd "$_"
lapis new
lapis new --lua
Создадим в каталоге /usr/local/openresty/site/example файл конфигурации config.lua, который будет автоматически подхватывать Lapis:
Bash:
printf "local config = require(\"lapis.config\")
config(\"development\", {
port = 8080
})
config(\"production\", {
port = 80,
num_workers = 4,
code_cache = \"on\"
})
" > /usr/local/openresty/site/example/config.lua
После этого в каталоге example появится новый проект с файлами .moon (или .lua), config.lua и nginx.conf. Откройте и посмотрите файлы, которые были сгенерированы. Обратите внимание, на nginx.conf:
nginx.conf:
worker_processes ${{NUM_WORKERS}};
error_log stderr notice;
daemon off;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
server {
listen ${{PORT}};
lua_code_cache ${{CODE_CACHE}};
location / {
default_type text/html;
content_by_lua '
require("lapis").serve("app")
';
}
location /static/ {
alias static/;
}
location /favicon.ico {
alias static/favicon.ico;
}
}
}
NGINX:
error_log stderr notice;
daemon off;
lua_code_cache
будет сгенерирована так: lua_code_cache "off"
- то есть, код lua не будет кешироваться и любые изменения в файлах .lua тут же будут отображаться в браузере.Эти опции используются исключительно для отладки и их следует отключить в рабочем проекте.
Далее, чтобы выполнить код из файла .moon, его нужно сначала перевести в lua-код. Это можно сделать такой командой:
moonc app.moon
, после чего в текущем каталоге появится файл app.lua, который, в итоге, и будет выполняться. Т.е. на MoonScript мы пишем код, затем переводим его в lua и выполняем.Можно также автоматически переводить из .moon в .lua такой командой:
moonc -w /usr/local/openresty/site/example
Таким образом moonc будет постоянно проверять файлы .moon на изменения и переводить их в .lua "на лету".
Пришло время запустить OpenResty с помощью Lapis. Сделать это можно так:
lapis server
- lapis найдет путь установки OpenResty и запустит его, а в качестве конфига будет использован файл nginx.conf из текущего каталога в котором мы запускаем данную команду (при этом, app.lua должен быть предварительно сгенерирован командой moonc app.moon
).Остановить сервер можно нажав клавиши
CTRL+C
.Перейдите на адрес http://ваш_ip:8080/ - там вы должны увидеть "Welcome to Lapis", с чем я Вас и поздравляю!