Pull to refresh

Удобный веб сервер на Virtualbox

Configuring Linux *
Sandbox
nginx
Когда делаешь простые сайты на WordPress, то с вебсервером все просто, поставил себе Xampp и спокойно работаешь.

Но приходит момент когда начинаешь заниматься серьезными проектами, а там уже конфигурация на сервере не совсем обычная и пользоваться Xampp не совсем удобно, к тому же у меня аллергия на Apache.

Захотелось хороший, живой вебсервер по типу выделеного сервера, но на своем компе, при этом чтобы пользоваться было удобно, локально.

Что именно хочется:
  • Поддержку нормальных url типа sitename.ru
  • Не редактировать /etc/hosts
  • Не редактировать конфиги nginx
  • Работать в локальной папке
  • Удобное администрирование конфигурации сервера
  • Изолированое окружение
  • Поставить и забыть


Есть еще вариант — просто у себя поднять все, но есть загвоздка, если что нибудь сломается, упадет жесткий диск, или еще что нибудь, то потом опять все собирать будет лень, а так просто можно сделать бэкап файла виртуальной машины, так же получаем независимое окружение.

Поэтому я поднял дебиан на виртуальной машине (virtualbox) и настроил nginx+phpfpm за пару часов, но это не очередное хау ту по связке nginx+phpfpm, мы делаем готовое решение по типу xampp.
Хочу себе такой
Total votes 34: ↑18 and ↓16 +2
Views 63K
Comments 15

Установка FAMP на pfsense

1С-Bitrix *
Sandbox
В стандартных пакетах pfsense нет ни MySQL, ни полноценного Apache. PHP присутствует в системе по умолчанию, являясь основным языком сценариев, но отсутствуют нужные модули mysql.so и присутствуют свои pfsense.so, ssh2.so и т.д.

В отличие от FreeBSD, убраны многие стартовые скрипты и файлы конфигурации (rc.conf, rc.local), вместо них используются свои механизмы, написанные на PHP.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Views 7.3K
Comments 7

Собираем Docker контейнер с http сервером при помощи Gradle

Programming *Java *Development for Linux *Build automation *Gradle *
Tutorial
imageПривет Хабр!

Возникла такая задача: Сделать простой web — сервер с минимальным числом зависимостей. При этом деплоиться он будет в виде docker контейнера. Для реализации самого сервера буду использовать GrizzlyWebServer. Для сборки Gradle c плагином для docker от Benjamin Muschko (bmuschko).

Такой выбор инструментов не случаен, я занимаюсь разработкой для android и мне ближе Java и Gradle чем что то другое. В этой статье хочу детально описать процесс от написания приложения до запуска в docker, возможные проблемы и их решение.

И так, начнем: сервер.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views 17K
Comments 5

Знакомство с Go и Mggo Framework

Go *
Sandbox
Всем привет! Хочу поделиться первым опытом программирования на языке Go.

Cвою дорогу в программирование я начал как frontend разработчик. Далее перешёл на backend на Python и, немного для себя, на C# Asp.Net MVC. Но вот недавно, пару месяцев назад, я познакомился с этим прекрасным языком Go.

Почему Go?


1 — компилируемый язык.
2 — очень необычный язык.

Структуры, интерфейсы… пришлось ломать свой мозг, переучиваться. И первые проблемы, кончено, это именно переучиваться. Где классы? Где ООП? Где любимые паттерны?

Но немного поломав голову, язык Go мне раскрылся и я его полюбил. Ну и, конечно, первым делом решил написать свой первый «велосипед», а именно web framework под названием MGGO.

Что я хотел и к чему стремился


Конечно сразу хотелось сделать MVC framework наподобие Asp.Net. Но это оказалось не так просто, потому что язык Go своеобразный. Но вот что получилось:

Контроллеры (controller)


Контроллер это структура, в котором методы могут быть как внешние(api) так и только внутренние, а также, которые отвечают за представление(view).

Сразу на примере рассмотрим контроллер новостей.

import mggo

type News struct{
   ID int
   Title string
   Text string 
}
func NewNews() *NewNews{
   return &NewNews{}
}
func init() {
    // регистрируем контроллер
   mggo.RegisterController("news", NewNews)
}

func(n *News) Read(ctx *mggo.BaseContext) News{
   return News{1, "First News", "Text first News"}
}

func(n *News) IndexView(ctx *mggo.BaseContext, data *mggo.ViewData, path []string){
   data.View = "news/news.html"
   data.Data["News"]
   data.Data["News"] = n.Read()
}

Читать дальше →
Total votes 21: ↑12 and ↓9 +3
Views 8K
Comments 7

SRE: Анализ производительности. Способ настройки с использованием простого вебсервера на Go

Southbridge corporate blog System administration *Server Administration *
Translation
Tutorial

Анализ производительности и настройка — мощный инструмент проверки соответствия производительности для клиентов.


Анализ производительности можно применять для проверки узких мест в программе, применяя научный подход при проверке экспериментов по настройке. Эта статья определяет общий подход к анализу производительности и настройке с использованием в качестве примера вебсервера на Go.


Go тут особенно хорошо подходит, поскольку у него есть инструменты профилирования pprof в стандартной библиотеке.


Читать дальше →
Total votes 23: ↑22 and ↓1 +21
Views 4.8K
Comments 0

Dart на сервере

API *Dart *
Tutorial

Недавно столкнулся с необходимостью написать REST API сервер на Dart. Оставим за рамками этой статьи почему и зачем это было надо, но первое с чем я столкнулся - выбор библиотек. Так уж сложилось, что я привык писать на NodeJS используя KoaJS в качестве веб сервера. Простая и удобная библиотека с кучей расширений для любой необходимости. А вот Dart в этом плане несколько подкачал. На момент поисков из "живых" пакетов на pub.dev был только shelf. Что-то отдаленно похожее, но по факту жутко неудобное. Неделю промучившись с оным, понял, надо писать свое, с блэкджеком... что-нибудь в стиле того же KoaJS.

Читать далее
Total votes 9: ↑8 and ↓1 +7
Views 6K
Comments 16

Docker: собираем веб сервер

Website development *Virtualization *
Tutorial

Так сложилось, что мне приходится работать над большим количеством сайтов, задачи решать так же разные - от настроек сервера до "сверстать форму". И вот на одном из проектов возникла задача - обновиться до актуальной версии php (8.1 на момент написания), обновить до актуальной версии CMS (1C Bitrix), ну и в целом, "довести до ума".

Поскольку проект оброс значительным количеством функционала, не связанного с сайтом напрямую (инкрементальные и полные бэкапы по расписанию с выгрузкой в облако, составление словарей, синхронизации с разными поставщиками), а работы ведутся в 3 окружениях (локально, тестовая площадка и продакшн сайт), то я решил, что это будет хорошей возможностью перенести всю инфраструктуру на контейнеры Docker.

Читать далее
Total votes 19: ↑9 and ↓10 -1
Views 24K
Comments 21