Блог Леонида Лукина

  • php
    Запуск сайта на Wordpress локально

    Если ваш сайт или сайты ваших клиентов работают на Wordpress и вы хотите вести разработку/доработку сайта на локальном компьютере - присмотритесь к пакету Local, который предлагает, на мой взгляд, лучшее на сегодня бесплатное решение по запуску и управлению локальными версиями сайтов на Wordpress.

    Особенности Local

    Контейнеризация

    Сайты изолированы друг от друга, используя технологии Docker.

    Управление Wordpress-сайтами

    Возможность переключения между локальными NGINX и Apache 2.4. Переключение между локальным версиями PHP (включая уже 7-е версии). Управление локальными URL для сайтов (в один клик изменения вносятся в локальный файл hosts).

    Клонирование сайтов на Wordpress

    Возможность с легкостью клонировать все файлы сайтов, их базы данных, конфигурацию и локальные настройки.

    Поддержка PHP

    Текущие версии, которые вы можете использовать для своего сайта: 5.2.4, 5.2.17, 5.3.29, 5.6.20, 7.0.3 и все последующие. Поддержка Xdebug, интеграция в один клик Xdebug с PHPStorm. Opcache включен в возможности пакета Local.

    HTTP/HTTPS доступ к локальному сайту "снаружи"

    Возможно "создать" ссылку на локальный сайт с тем, чтобы показать его своим коллегам или клиентам, просто переслав им специальную ссылку.

    Wordpress Multisite

    Поддержка субдоменов и установка сайтов в поддиректории.

    Шаблоны сайтов

    Возможность сохранить любой сайт для того, чтобы быстро создавать новые сайты на его основе.

    Импорт/экспорт сайтов

    Экспорт включает файлы сайтов, базы данных, конфигурационные файлы, логи и локальные установки. При импортировано сайт восстанавливается полностью и сразу же готов к работе. При желании можно указывать какие именно файлы и директории не должны быть импортированы.

    Файлы конфигурации

    Доступ к собственным файлам конфигурации PHP, NGINX, Apache, и MySQL, которые доступны для редактирования.

    Поддержка TLS/HTTPS

    Собственный сертификат автоматически создается для каждого нового сайта.

    Доступ к логам

    Индивидуальные лог файлы для PHP, NGINX, Apache и MySQL.

    Локальное тестирование исходящей почты

    Mailcatcher позволяет "перехватывать" всю исходящую почту для просмотра и отладки.

    SSH + WP-CLI

    Простой root-овый доступ по SSH для всех локальных сайтов. Поддержка WP-CLI.

    И главное - все бесплатно! А вот и ссылка - где можно скачать Local.

    Опубликовано: 11.01.2017Категория: phpКомментарии: 0
  • Ruby on Rails
    Какая версия Ruby быстрее?

    Один из самых простых способов ускорить работу Ruby on Rails сайта - это перейти на новую, самую свежую версию Ruby.

    А вот насколько быстро работают каждые из версий, можно всегда посмотреть на сайте isrubyfastyet.com. А на момент написания сообщения, данные по скорости распределились так:

    Скорость различных версий Ruby

    Опубликовано: 12.02.2016Категория: Ruby on RailsКомментарии: 0
  • Музыка
    Новый альбом Electric Light Orchestra (ELO)

    Джефф Линн выпустил новый альбом под маркой Electric Light Orchestra (ELO) впервые почти за 15 лет с момента выхода его альбома Zoom в 2001. Альбом Alone in the Universe - это 14-й студийный альбом в копилке ELO, записанный Линном "в одиночку" в своей домашней студии.

    Композиции с альбома Alone in the Universe:

    • When I Was a Boy
    • Love and Rain
    • Dirty to the Bone
    • When the Night Comes
    • The Sun Will Shine on You
    • Ain't It a Drag
    • All My Life
    • I'm Leaving You
    • One Step at a Time
    • Alone in the Universe

    Опубликовано: 06.02.2016Категория: МузыкаКомментарии: 0
  • Ruby on Rails
    Создание нового Rails проекта с использование Docker

    Начинается все не с создание Rails проекта, как можно было бы ожидать, а с создания контейнера для него при помощи Docker и Docker Composer.

    Установка Docker

    Устанавливаем Docker (если он не был установлен ранее). Ниже представлен вариант установки для Linux, к остальным вариантам отправляю на сайт Docker.

    $ wget -qO- https://get.docker.com/ | sh

    Проверяем успешность установки:

    $ docker -v

    Добавляем себя в группу docker:

    $ sudo usermod -aG docker <имя_пользователя>

    Установка Docker Compose

    Для упрощения рутинных операций мы будем использовать Docker Compose (на данный момент нельзя использовать под Windows). Устанавливаем его самый простым способом и проверяем успешность установки:

    $ sudo apt-get -y install python-pip
    $ sudo pip install docker-compose
    $ docker-compose --version

    Создание Rails приложения

    Создать папку приложения. В ней создать Gemfile (2 строки) и пустой Gemfile.lock. Содержимое Gemfile только указывает версию Rails, которую мы собираемся использовать (к примеру новую версию Rails 5):

    source 'https://rubygems.org'
    gem 'rails', '>= 5.0.0.beta1', '< 5.1'

    Создать Dockerfile

    Прежде всего указываем, какой образ будем использовать в качестве базового (c Docker Hub). В случае с Rails 5 нужно использовать образ, который поддерживает минимально Ruby версии 2.3. Далее по коду:

    FROM ruby:2.3
            
    # Задаем имя проекта
    ENV APP_NAME <имя проекта>
    
    # Устанавливаем базовые пакеты
    RUN apt-get update -qq && apt-get install -y build-essential
    
    # Для работы с Postgres
    RUN apt-get install -y libpq-dev
    
    # Для использования Nokogiri
    RUN apt-get install -y libxml2-dev libxslt1-dev
    
    # Для Capybara-webkit
    RUN apt-get install -y libqt4-webkit libqt4-dev xvfb
    
    # Для JS runtime
    RUN apt-get install -y nodejs
    
    # Создаем папку проекта и устанавливаем ее в качестве рабочей
    RUN mkdir /$APP_NAME
    WORKDIR /$APP_NAME
    
    # Копируем в созданную папку Gemfile'ы и запускаем bundle
    ADD Gemfile /$APP_NAME/Gemfile
    ADD Gemfile.lock /$APP_NAME/Gemfile.lock
    RUN bundle install
    ADD . /$APP_NAME

    После отрабатывания этого файла будут установлены все необходимые пакеты, будет создана папка проекта и установлена Rails.

    Создать docker-compose.yml

    С помощью Docker Compose мы будем создавать контейнеры (отдельно для Postgres и Rails приложения), создавать Rails проект и сразу же запускать rails-сервер. Содержимое файла docker-compose.yml:

    db:
      image: postgres
    web:
      build: .
      command: bundle exec rails s -p 3000 -b '0.0.0.0'
      volumes:
        - .:/demodexcomplexru
      ports:
        - "3000:3000"
      links:
        - db

    Запуск создания контейнера и приложения

    Создаем контейнер, запускаем команду на создание нового Rails приложения (пропуская установку всех гемов):

    $ docker-compose run web rails new . 
      -T --force --database=postgresql 
      --skip-bundle

    Поскольку Docker работает от root, то и приложение создается от имени пользователя root. Меняем владельца:

    $ sudo chown -R $USER:$USER .

    Запускаем заново сборку контейнера, который и запускает bundler и устанавливает все необходимые гемы:

    $ docker-compose build

    Для подключения к базе в другом контейнере правим config/database.yml:

    development: &default
      adapter: postgresql
      encoding: unicode
      database: postgres
      pool: 5
      username: postgres
      password:
      host: db
    
    test:
      <<: *default
      database: demodexcomplexru_test

    Запускаем приложение (контейнер приложения)

    $ docker-compose up

    Создаем базу данных (в другом терминале)

    $ docker-compose run web rake db:create

    Проверяем работу приложения в браузере - http://0.0.0.0:3000.

    Опубликовано: 22.01.2016Категория: Ruby on RailsКомментарии: 0
  • Поисковая оптимизация (SEO)
    CTR сайта в результатах поиска

    И снова о CTR сниппета сайта в результатах поиска в зависимости от занимаемой позиции. Последние самые свежие данные, которые мне удалось найти представлены ниже. Исследование проводил портал AdvancedWebRanking.com. Данные снимались по Google и являются усредненными по всем запросам.

    CTR сайта в зависимости от позиции

    Итак, первая позиция "забирает" порядка 31%, далее идет падение почти в 2 раза (первая позиция по сравнению со второй приносит почти в 2 раза больше трафика), после чего падению уже более плавное. Последние позиции в топ 10 имеют уже ниже 4% кликабельности, на вторую же страницу поиска переходят также менее 4% всех пользователей.

    Естественно, что картина серьезно меняется, если речь идет о брендовом запросе (пользователь ищет конкретную компанию или определенный сайт). В этом случае CTR "взлетает" почти в 2 раза!

    CTR сайта в зависимости от позиции по брендовому запросу

    С другими данными исследования и методикой его проведения можно ознакомиться в официальном отчете.

    Опубликовано: 11.11.2015Категория: Поисковая оптимизация (SEO)Комментарии: 0