Ускорение работы с сессиями PHP и их удаления с помощью виртуального диска

При работе веб-сервера происходит генерация огромного количества мелких файлов для сессий. Количество таких файлов может достигать много миллионов в суток. Как результат, рано или поздно исчерпывается лимит на количество файлов и система дает сбой. Приходится пересоздавать каталог и удалять старые сессии. Удаление такого количества сессий может создавать очень высокую нагрузку на сервер, мешая комфортной работе пользователей, а так же процесс удаления может происходить много суток. Могу предположить, что такие мелкие записи не очень полезны для винчестеров. Как же мгновенно удалять файлы сессий так, чтоб этого не замечали пользователи ? Для этого, можно воспользоваться записью информации о сессиях на диск в памяти. Такой диск мгновенно очищается и работает до тех пор пока не выключится питание сервера или пока размаунтится диск. На серверах в последнее время много оперативной памяти, поэтому, работа с дисками в памяти – прекрасное решение проблемы. При этом, происходит ощутимо меньше нагрузка на дисковые накопители, дисковые накопители дольше служат и система в целом работает ощутимо быстрее. Поделюсь опытом, как реализовал построение дисков я у себя на серверах. Создание диска в памяти Создаю BASH-файл create_ramdisk для создания диска: #!/bin/bash mkdir /sessions chmod 777 /sessions mount -t tmpfs -o size=32G tmpfs /sessions   Удаление диска из памяти Создаю BASH-файл del_ramdisk для удаления диска из памяти: del_ramdisk   Пересоздание диска в памяти (с очисткой данных) Создаю BASH-файл recreate для пересоздания диска: #!/bin/bash umount /sessions   Автоматизация пересоздания диска в памяти через Cron В /etc/crontab добавляю строчку: 00 3 * * * root /fw/ramdisk/recreate   Замена каталога сессий Делаем симлинк с каталога /sessions […]

Read more

Установка Memcached в Linux Ubuntu 16.04 LTS

Система Memcached может ощутимо уменьшить нагрузку на веб-сервере. Рассмотрим, как установить данную систему в Linux Ubuntu 16.04 LTS. Перед установкой обновляем систему:

Устанавливаем Memcached:

При необходимости, конфигурируем Memcached по адресу: /etc/memcached.conf. Порт по умолчанию для Memcached: 11211. Перезагрузка memcached после переконфигурирования:

Установка в расширения для php:

После этого, нужно перезагрузить Apache или php-fpm.  

Read more

VDoc – веб-система коллективной работы над файловыми версиями документов с сохранением истории изменений, высоким уровнем защищенности информации и эффективным резервным копированием

Презентация системы VDoc в формате PowerPoint (скачать). Программный продукт VDoc предназначен для коллективной работы с документами в произвольных форматах (например, Word, Excel и т.п.) с сохранением истории изменений, централизованным хранением данных с возможностью удобного резервного копирования информации и разнесение данных по разным накопителям данных и серверам. Возможности системы VDoc: 1. Система VDoc представляет собой веб-интерфейс и работает по протоколам http или https (протокол с шифрацией трафика). 2. Программный продукт VDoc – кросс-платформенный. Серверная часть системы может работать в Windows, Linux, MacOS. Пользователи же могут работать практически в любой операционной системе (Windows, Linux, MacOS, Android, IOS, FreeBSD и т.п.) и на любом устройстве (ноутбук, персональный компьютер, мобильный телефон, планшет, телевизор и т.п.), где есть современные браузеры. 3. Система VDoc – система с открытым исходным кодом. Вы можете приобрести систему вместе с исходными кодами и при необходимости изучать исходные коды, модифицировать систему под свои потребности. 4. В качестве сервера базы данных используется наиболее популярные кросс-платформенные СУБД: MsSQL, Postgresql. 5. Объем данных, который может вестись в системе – не ограниченный. Вы не увидите большой разницы в работе между массива информации размером мегабайты и данными размером во много терабайт. 6. Вирусы и другие вредоносные программы не смогут уничтожить данные, т.к. не могут получить такого доступа… 7. Пользователи не могут уничтожить данные. Т.к. все изменения логируются и сохраняются, а файлы не могут пользователи удалять (могут только помечать на удаление). 8. VDoc прост в использовании. Не нужно устанавливать программу – просто заходите на сайт и работаете. Интерфейс – интуитивно-понятный с всплывающими подсказками. Для работы VDoc нет […]

Read more

Оптимизация, дефрагментация таблиц MySQL InnoDB

Со временем, таблицы InnoDB в MySQL начинают сильно фрагментироваться и как результат, “тормозить”. Поэтому, их время от времени нужно “дефрагментировать”. Вот такой простейший скрипт defrag.php решит проблему фрагментации:

Выполняется данный скрипт из консоли:

 

Read more

Настройка exim4 для отправки почты через yandex (google) аккаунт

Если вы не обзавелись официальным доменным именем и у вас динамический IP-адрес, но вы хотите отправлять почту в интернет напрямую, ваша почта не будет приниматься серверами, так как на них установлены средства борьбы со спамом. Будет выходить ошибка 550 Unroutable sender address. В этом случае надо настроить отправку почты через другую машину, называемую ‘smarthost’. Будем использовать в качестве ‘smarthost’ сервер yandex (google). Для этого надо перенастроить exim следующим образом:

Далее выбираем следующие настройки: Общий тип почтовой конфигурации: отправка почты через smarthost; прием по SMTP или через fetchmail. Почтовое имя системы: оставляем как есть Конфигурация почтового сервера: Если компьютер принимает только локальную почту, то устанавливаем — 127.0.0.1 Список доменов получателей: оставляем как есть Машины, для которых доступна релейная передача данных: оставляем пустой IP-адрес или имя хоста, являющегося исходящим smarthost: smtp.yandex.ru::587(smtp.gmail.com::587) Скрывать локальное почтовое имя в исходящей почте? Нет Сокращать количество DNS-запросов до минимума (дозвон по требованию)? Нет Метод доставки локальной почты: Выбираем как вам удобнее: mbox формат в /var/mail/ Разделить конфигурацию на маленькие файлы? Выбираем как вам удобнее: Нет После этого добавляем в файл авторизации (/etc/exim4/passwd.client) свой логин и пароль от используемого аккаунта: для yandex:

для google:

Затем перезагружаем exim:

и пробуем отправить почту. При возникновении проблем,  логи в файле /var/log/exim4/mainlog. Для проверки отправки письма можно вызывать скрипт на php:

  Источник: https://demirrovv.wordpress.com/2017/07/20/exim4yandex/

Read more

Ограничение размера POST запроса в PHP

Иногда проект вырастает в нечто большее. Первоначальные POST запросы вырастают в размере, а времени менять архитектуру нет. В первую очередь настройки php.ini. (если апач /etc/php5/apache2/php.ini или если fpm /etc/php5/fpm/php.ini) post_max_size равный или больше предполагаемому размеру post. upload_max_filesize — для загрузки файлов побольше. обычно равный post. max_execution_time и max_input_time побольше, чтобы скрипт не отвалился на долгой загрузке. Документация php.ini — http://www.php.net/manual/ru/ini.list.php Так же сразу отключить, если установлено расширение php — suhosin. Найти можно по suhosin.so, suhosin.ini. Его можно и не отключать, а настроить в suhosin.ini параметры: suhosin.post.max_value_length suhosin.request.max_value_length Документация suhosin — http://www.hardened-php.net/suhosin/configuration.html Если используется nginx, то в файле /etc/nginx/nginx.conf: client_max_body_size больше предполагаемого post. Так же send_timeout и fastcgi_read_timeout побольше, иначе будет 504 ошибка. Документация nginx — http://nginx.org/ru/ Если используется apache2, то в /etc/apache2/apache.conf: LimitRequestFieldsize — размер поля LimitRequestBody — размер всего запроса Документация apache2 директив — http://httpd.apache.org/docs/2.2/mod/core.html

Read more

VDoc документооборот (веб-приложение для файлового документооборота)

VDoc документообіг

Программный продукт VDoc предназначен для коллективной работы с документами в произвольных форматах (например, Word, Excel и т.п.) с сохранением истории изменений, централизованным хранением данных с возможностью удобного резервного копирования информации и разнесение данных по разным накопителям данных и серверам. Возможности системы VDoc: 1. Система VDoc представляет собой веб-интерфейс и работает по протоколам http или https (протокол с шифрацией трафика). 2. Программный продукт VDoc – кросс-платформенный. Серверная часть системы может работать в Windows, Linux, MacOS. Пользователи же могут работать практически в любой операционной системе (Windows, Linux, MacOS, Android, IOS, FreeBSD и т.п.) и на любом устройстве (ноутбук, персональный компьютер, мобильный телефон, планшет, телевизор и т.п.), где есть современные браузеры. 3. Система VDoc – система с открытым исходным кодом. Вы можете приобрести систему вместе с исходными кодами и при необходимости изучать исходные коды, модифицировать систему под свои потребности. 4. В качестве сервера базы данных используется наиболее популярные кросс-платформенные СУБД: MsSQL, Postgresql. 5. Объем данных, который может вестись в системе – не ограниченный. Вы не увидите большой разницы в работе между массива информации размером мегабайты и данными размером во много терабайт. 6. Вирусы и другие вредоносные программы не смогут уничтожить данные, т.к. не могут получить такого доступа… 7. Пользователи не могут уничтожить данные. Т.к. все изменения логируются и сохраняются, а файлы не могут пользователи удалять (могут только помечать на удаление). 8. VDoc прост в использовании. Не нужно устанавливать программу – просто заходите на сайт и работаете. Интерфейс – интуитивно-понятный с всплывающими подсказками. Для работы VDoc нет необходимости в установке плагинов или другого стороннего […]

Read more

Let’s Encrypt. Как бесплатно добавить SSL/TLS сертификат и HTTPS протокол на сайт, пошаговая инструкция

Let’s Encrypt – это некоммерческая организация, которая предоставляет бесплатный, полностью автоматизированный и открытый CA (certificate authority – центр сертификации) сертификат. Имея такой бесплатный SSL/TLS сертификат вы сможете легко настроить шифрованный HTTPS протокол на своем сайте, тем самым защитит передачу данных между клиентом и сервером, а также повысить ранжирование в поисковых системах (google) и многое другое. Не говоря о красивом зеленом замке в начале вашего любимого домена. Пошаговая инструкция по созданию бесплатного сертификата для HTTPS протокола от Let’s Encrypt Устанавливаем клиент Let’s Encrypt на сервер Подключаемся к серверу по SSH. И переходим, например, в домашнюю директорию:

В нее мы установим клиент Let’s Encrypt. Для этого нам понадобится git, если у вас на сервере уже установлен git, то просто выполните следующие команды:

Если у вас не установлен git, то либо установите его следующей командой:

Либо просто распакуйте zip архив из репозитория GitHub:

Проверяем:

В ответ вы увидите следующие: Все, клиент Let’s Encrypt установлен. Создаем SSL сертификат для HTTPS протокола на сайт Перейдем к созданию сертификата Let’s Encrypt. Для этого сначала необходимо остановить nginx:

и запустить команду создания SSL сертификата:

В случае успешного создания сертификата для HTTPS протокола вы увидите примерно следующие Не забудте поменять доменое имя devreadwrite.com на свое. В процессе создания сертификата, вам предложат ввести e-mail, для важных сообщений и для восстановления ключа при необходимости. Далее нужно будет согласиться с лицензионным соглашением. Созданный SSL сертификат сертификат и вся цепочка сохранится по следующему пути: /etc/letsencrypt/live/devreadwrite.com/ Файлы SSL сертификата В /etc/letsencrypt/live/devreadwrite.com/ будут следующие файлы: privkey.pem – […]

Read more

Добавление ротатора баннеров на сайт (WordPress)

Автор: Рудюк С . А. https://corp2.net E-Mail: rs@corp2.net Рано или поздно, имея сайт, Вы захотите зарабатывать на трафике. А для этого – подключить рекламные компании (контекстную рекламу, показы баннеров и т.п.). Видов рекламы много и площадок, которые Вы можете прокручивать – еще больше. Таким образом, Вам может захотеться не только показывать рекламу, но и время от времени прокручивать рекламу разных площадок. Большинство плагинов для баннеропоказов ограничены не большим количеством скриптов. Обычно, используется до 10. К тому же, если Вы их публикуете они – постоянно одинаковы. В данной статье мы рассмотрим, как сделать так, чтоб можно было использовать не ограниченное количество скриптов, которые будут меняться время от времени. Хранить скрипты мы будем в папке /inc/НазваниеМеста. Каждый скрипт записывается в отдельном файле. Наша функция будет получать список файлов в каталоге хранения скриптов и случайным образом проигрывать любой из этих скриптов. Добавляем функцию в наш шаблон в файл functions.php:

Далее, выводим содержимое скрипта в нужных местах сайта. Так, например, в моем шаблоне для этого нужно было поправить файл loop.php:

В данном случае, выводится скрипт сверху выражением:

А снизу – выражением:

Если Вам нужно применять разные скрипты для разных устройств, скрипт можно несколько видоизменить – чтоб распознавал устройства на которых смотрят сайт. В такой вид:

В данном случае, скрипт будет храниться в каталоге /inc/ВидУстройства/Положение. Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more

PHP: Рекурсивное создание (mkdir) директорий в Win и слэш

Вчера надо было сделать скрипт, который создаёт директории, но они не всегда создаются в уже существующих директориях. Для этого у функции mkdir() есть третий параметр, который позволяет рекурсивно создавать директории, т.е. если надо создать /dir1/dir2/dir3, но при этом не существует dir2, то можно написать:

Но под Windows такая запись будет выдавать ошибку. Решение было найдено в комментариях на php.net. Под Windows, при рекурсивном создании директории, надо заменять все «/» на «\». Т.е. надо модифицировать код так:

При обычном, не рекурсивном, создании дирректорий заменять «/» на «\» не обязательно. Источник: http://2people.ru/?p=26 Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Read more
1 2 3 7