Собственный хостинг репозиториев с помощью GitLab

Любая команда разработчиков рано или поздно сталкивается с необходимостью использования системы контроля версий. Иначе отслеживать изменения в коде проектов становится сложно. Причем чем крупнее проекты и команды — тем сложнее. Сегодня систем контроля версий существует великое множество, одна лучше другой. Так что же выбрать? Наша команда остановилась на GitLab. GitLab — это веб-приложение для хостинга исходного кода проектов, основанное на системе контроля версий Git. Своим функционалом GitLab очень напоминает GitHub, однако заточен под командную работу, в то время как GitHub отдает предпочтение индивидуальной работе. Техническая справка Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux. Git используют такие проекты, как Chromium, jQuery, PHP, MediaWiki и прочие. Программа является свободной и выпущена под лицензией GNU GPL версии 2. — Статья о Git на Википедии GitLab существует как в виде SAAS — веб-сайта с открытой регистрацией, так и в качестве индивидуального решения — GitLab Community Edition, которое можно установить на свой сервер и настроить под собственные нужды. Процесс установки достаточно долгий и требует root-доступа к серверу. Для стабильной работы GitLab требует от сервера как минимум двухъядерный процессор и 2 Гб ОЗУ. Такая конфигурация обеспечит быструю работу приложения и поддержку до 500 пользователей. GitLab поддерживает множество различных дистрибутивов Linux, но инструкция по установке расчитана на Debian/Ubuntu. Установка Установку можно разбить на несколько этапов: установка необходимых системных утилит установка Ruby создание пользователя для SSH-подключений к GitLab установка и настройка GitLab Shell установка и настройка базы данных установка и настройка самого GitLab установка и настройка Nginx Список […]

Read more

Управление торговлей, Бухгалтерия

Диалог позволяет осуществлять групповое проведение документов и восстановление последовательностей проведения документов. Открываем “1С:Підприємство” (в режиме предприятия)  – Операции – Проведение документов. Проведение документов На закладке “Проведение документов” осуществляется проведение выбранных документов в указанном интервале. Если Вы хотите чтобы какой – либо документ участвовал в проведение необходимо правой клавишей мыши поставить пометку слева от наименований таких документов. В нижней части закладки “Проведение документов”  задается интервал дат, в котором будут проводиться выбранные Нами документы. Для установки интервала следует ввести начальную и конечную дату, см. рис. представленный ниже: При необходимости проведения документов без ограничения по дате, необходимо установить флажок “Не ограничивать“ Также необходимо выбрать какие именно документы будут участвовать в проведении: ·        Проведенные ·        Непроведенные ·        Проведенные и непроведенные После установки всех необходимых параметров для выполнения проведения документов следует нажать кнопку “Выполнить”. Если проведение прошло успешно, будет выдано сообщение “Проведение документов завершено!”. Если Вы хотите выйти из режима проведения документов необходимо нажать на кнопку “Закрыть”. Восстановление последовательности На закладке “Восстановление последовательности” осуществляется восстановление последовательности проведения документов. В списке “Восстанавливать последовательности” выводится список всех существующих в конфигурации последовательностей. Те последовательности, которые должны быть восстановлены: слева от наименований таких последовательностей необходимо клавишами или мышью проставить отметку . В графе “Актуальна” для каждой последовательности выводится текущая позиция границы последовательности. Далее необходимо указать дату, до которой будет выполняться перепроведение документов. Также можно установить флажок  “Не ограничивать“, если требуется перепровести все документы. Для выполнения восстановления последовательностей необходимо нажать кнопку “Выполнить“. При этом система будет перепроводить все документы, относящиеся к выбранным последовательностям, начиная с позиции наиболее ранней границы из […]

Read more

Решение проблемы “Too many open files” в MySQL

При росте количества таблиц и баз данных в MySQL рано или поздно Вы получите ошибку: Too many open files. Данная ошибка связана с не достаточным количеством выделенных дескрипторов файлов, на уровне операционной системы или MySQL. Анализ дескрипторов Вы можете произвести командой:

В результате увидите нечто подобное:

Как видите, в данном случае выдалось 1024 открытых файлов. Это не большое количество и может Вас не устроить. Вы можете увидеть, сколько выделено дескрипторов:

Так же, еще вариант просмотра:

Количество выделенных дескрипторов пользователю mySQL:

Для Debian и Linux Ubuntu:

Увеличиваем количество дескипторов

Заполняем таким содержимым:

Установка параметров, специфичных для MySQL:

Отредактируем файл /etc/security/limits.d/90-nproc.conf:

Заполним файл:

Установите под root:

Теперь, перезагрузите сервер и поменяйте параметры в конфиге MySQL:

Запишите после [mysqld]:

Запишите после [mysqld_safe]:

Теперь перезагрузите сервер:

Для проверки настроек в MySQL войдите:

Выполните команду:

В результате, должны увидеть:

Перезагрузите сервер и проверьте, сохранились ли настройки:

Если после загрузки Вы увидите значение 1024, то не сохранились настройки. В таком случае, читайте решение проблем. Решение проблем Проверьте файл /etc/security/limits.conf он должен содержать:

Или установите лимит таким образом:

Перезагрузите MySQL:

Можно внести изменения в:

Добавьте следующее:

В настройках /etc/my.cnf укажите:

или

Проблемы в Linux Ubuntu 15.04 Все перечисленные вещи не помогли в Linux Ubuntu 15.04. Немного погуглив, я нашел решение для Linux Ubuntu 15.04. Нужно внести изменения в файл: /lib/systemd/system/mysql.service К содержимому данного файла:

Добавьте:

 

Read more

Проблема доступности для продажи товара в Shop-Script

Столкнулся с проблемой заказа товаров, которые импортировал через Яндекс xml в интернет-магазин Shop Script. Как видно из скриншота, выдается сообщение, что товар временно нельзя купить. Не помогает ни изменение количества товара, ни привязка к товару. В результате, нашел причину, что такое пишется, когда sku.avable не равен нулю. Поэтому, зашел в базу и SQL-запросом поправил данную ситуацию:

   

Read more

Как вывести блог на отдельной странице WordPress. 2 способа

Я видел много сайтов на WordPress, у которых на главной странице отображается какая-нибудь статичная страница, а страница блога находится отдельно, например yourwebsite.com/blog. Как же это реализовать на своём собственной сайте? На самом деле существует два способа – один простой и один не очень, рассмотрим их оба. Способ 1. Использование index.php в качестве шаблона блога. Это стандартный способ, предусмотренный в WordPress. Скорее всего на тех сайтах, про которые я говорил в самом начале поста, используется именно он. Рассмотрим пошагово. Кстати, так как в разных темах содержимое файла index.php разное – оно может быть совсем не предназначено для блога, в таких случаях либо меняем сами свой index.php либо воспользуемся вторым способом, который я описал чуть ниже. Шаг 1. Создание страницы блога. Ну, что тут сказать, переходим в Страницы > Добавить новую, указываем какой-нибудь заголовок, например Блог и какой-нибудь URL, например blog, после этого сохраняем. Всё, с шагом 1 покончено. Шаг 2. Настраиваем отображение страниц в настройках. Переходим в Параметры > Чтение, настраиваем отображение нужной страницы на главной, а для страницы записей устанавливаем созданную в предыдущем шаге. Шаг 3. Последний шаг. Добавляем страницу в меню. Уже после завершения второго шага при переходе по адресу блога (у нас это yourwebsite.com/blog), у вас будет отображаться страница с записями, использующая шаблон файла index.php. Тем не менее можно также добавить эту страницу в меню сайта (если поддерживается темой разумеется). Для этого переходим в Внешний вид > Меню, слева в колонке выбираем нашу страницу блога и нажимаем кнопку «Добавить в меню» Способ 2. Использование собственного шаблона блога. Создание […]

Read more

Список всех используемых хуков в WordPress

Чем быстрее грузится сайт, тем лучше! Это всем известный факт. Когда сайт функционирует долгое время, то список подключенных плагинов становится неизменным и тогда стоит задуматься о том, сколько же файлов стилей и сколько скриптов подключено у вас на страницах сайта. И встал вопрос: как узнать список активных хуков для их отключения. Решение оказалось очень простым: В файл functions.php  вставляем следующий код:

Для вывода списка вставляем ниже приведенный код в том файле, в котором хотим увидеть результат, я вставлял в head.php

Джерело: http://site-style.by/spisok-vsex-ispolzuemyx-xukov-v-wordpress/

Read more

nginx + php-fpm + PHP APC + WordPress multisite (subdirectory) + WP Super

У меня на хостинге использовался Nginx+Apache. Однако, в один прекрасный момент я столкнулся с тем, что интернет-магазины на WordPress не закидывали в корзину товары. Вначале я думал, что это проблема в CMS, потом, что проблема PHP. Но, в результате, после длительной борьбы с проблемой я увидел, что проблема в Nginx. Просто при ЧПУ нужно исправить настройки. В результате, получилось решение Nginx + PHP-FPM. Вот настройки /etc/nginx/nginx.conf:

Настройка виртуального хостинга:

Для WP Super Cache:

Источник: https://wordpress.org/support/topic/nginx-php-fpm-php-apc-wordpress-multisite-subdirectory-wp-super-cache

Read more

Сессии. Подробное описание работы и объяснение механизма

Введение Как устроены, и как работают сессии? Область применения. Возможные проблемы и их устранение. Безопасность Дополнительная информация: Пример авторизации с помощью сессий ОПС! Очень Полезные Ссылки: Comments Введение Сессии – это на самом деле очень просто. Надо только понимать, для чего они нужны и как устроены. Ответим сначала на первый вопрос. Как показано в соответствующем разделе этого FAQ, веб-сервер не поддерживает постоянного соединения с клиентом, и каждый запрос обрабатывается, как новый, безо всякой связи с предыдущими. То есть, нельзя ни отследить запросы от одного и того же посетителя, ни сохранить для него переменные между просмотрами отдельных страниц. Вот для решения этих двух задач и были изобретены сессии. Собственно, сессии, если в двух словах – это механизм, позволяющий однозначно идентифицировать браузер и создающий для этого браузера файл на сервере, в котором хранятся переменные сеанса. Подробно расписывать нужду в таком механизме я не буду. Это такие хрестоматийнык случаи, как корзина покупок в е-магазине, авторизация, а так же, и не совсем тривиальные проблемы, такие, например, как защита интерактивных частей сайта от спама. В принципе, довольно несложно сделать собственный аналог сессий, не такой функциональный, как встроенный в PHP, но похожий по сути. На куках и базе данных. При запросе скрипта смотрим, пришла ли кука с определенным именем. Если куки нет, то ставим ее и записываем в базу новую строку с данными пользователя. Если кука есть, то читаем из базы данные. Еще одним запросом удаляем из базы старые записи и вот у нас готов механизм сессий. Совсем несложно. Но есть некоторые нюансы, которые делают предпочтительным […]

Read more

Ubuntu: установка и настройка связки nginx + apache + php + mysql

В это статье я расскажу как быстро развернуть LAMP сервер на Ubuntu с кеширующим nginx Для всех команд необходим sudo, потому сразу войдем для удобства в этот режим:

Далее, обновляем данные из репозитариев:

Установка MySQL сервер:

Во время установки нас попросят ввести пароль root для сервера MySQL, вводим 2 раза. Дожидаемся окончания установки. Установка Apache, nginx, php:

Дожидаемся окончания установки. Включаем модули rewrite и include в apache2 при помощи утилиты — a2enmod:

Меняем порт в apache2 со стандартного 80 на 8080 (2 строчки):

Создаем новый веб сервер (VirtualHost), создаем файл конфигурации:

И вставляем в него следующий текст:

Далее, создаем папку сайта и запускаем сайт:

Проверяем в браузере — http://domain.com:8080 Конфигурируем nginx:

Приводим конфиг к такому виду:

Далее создаем и правим конфиг нашего сайта:

Вносим в него следующие записи:

Перезапускаем сервисы и проверяем работу:

Источник: http://evolan.org/linux/ubuntu-ustanovka-i-nastrojka-svyazki-nginx-apache-php-mysql/ Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

Сброс пароля локального администратора Windows Server 2008R2 / 2008

Случился такой казус. Как то месяцев восемь назад установил сервер клиенту под управлением Windows Server 2008R2 Foundation. Поставил пароль, записал на всякий случай. И вот недавно потребовалось поднять на этом сервере, сервер терминалов для работы пользователей в “1С:Підприємство”. Система все это время отлично шуршала, делался backup баз, ИБП не подводил, и все работало 24\7 как положено. Соответственно сервер залочился и ждал ввода пароля для входа в систему. На ввод моего записанного пароля получил ответ «Неверно указан пользователь или пароль». Соответственно согрешив на раскладку, сменил и ввел пароль на русской раскладке. Эффект такой же. Покопавшись часик, перепробовав все мыслимые и не мыслимые пароли пришел к выводу что пароль и правда, кто то сменил. Войти в систему нужно, а пароля нет. Учетка только «Гость» и из под нее ничего не сделаешь. Попробовал загрузиться со старенького LiveCD который все время с собой таскаю, получил ошибку про не найденный драйвер к RAID контроллеру. Но выход нашелся. Итак, сегодня мы сбросим пароль локального Администратора на Windows Server 2008R2. (Пробовал так же на Windows Server 2008, сбрасывает отлично.) Способ так же подходит для Windows Seven, Vista, и возможно XP. НО! Это не способ сброса пароля Администратора Active Directory. Для тех кто не понял. Пароль администратора домена этим способом не сбросить. Про сброс паролей AD я напишу позднее. Перед тем как пробовать выполнить рекомендации данной статьи, советую посмотреть другую мою статью про Сброс пароля локального администратора на Windows Server 2008R2, возможно предложенное в ней решение, будет более простым для Вас. Кроме того, описанный на этой странице способ, […]

Read more
1 2