Установка Memcached на CentOS

Memcached это система кэширования, использующая оперативную память . Это означает, что мы можем создавать самый быстрый кэш в ОЗУ, вместо того, чтобы хранить кэш на жестком диске, кэш в оперативной памяти на порядки быстрее, и может интегрироваться практически с любыми приложений с использованием самых современных языков программирования, таких как Python, PHP, Ruby и т.д. Как установить Memcached на CentOS Linux, RHEL или Fedora.

Установка memcached на CentOS

Для установки нам потребуется установить дополнительные пакеты:

yum groupinstall “Development Tools”
yum install php php-pear php-devel

Убедимся, что система обновлена

yum update

Установим пакет memcached

yum install memcached

Настройка Memcached

nano /etc/sysconfig/memcached

Убедимся, что конфигурационный файл такого вида:

PORT=”11211″
USER=”memcached”
MAXCONN=”1024″
CACHESIZE=”64″
OPTIONS=”-l 127.0.0.1″

PORT – 11211 порт по умолчанию для Memcached.
USER – пользователь в системе, под которым работаем Memcached.
MAXCONN – максимально возможное количество.
CACHESIZE в МБ – количество оперативной памяти, выделенное под  кэш Memcached .
OPTIONS -l 127.0.0.1 означает, что Memcached будет слушать только соединения с локального хоста, избегая каких-либо внешних соединений.

Запускаем Memcached

service memcached start

Добавляем memcached  в загрузку системы

chkconfig memcached on

Устанавливаем Memcached PHP дополнения

pecl install memcache

На запрос PECL установщика отвечаем yes.

“Enable memcache session handler support? [yes]”

Добавляем memcache.so модуль в php.ini

echo “extension=memcache.so” >> /etc/php.ini

Перезагружаем php сервис, для применения настроек.

Если вы используете apache:

service httpd restart

Если вы используете php-frm:

service php-fpm restart

Проверим работу модуля PHP Memcached

php -i | grep memcache -i

Вывод на экране должен быть такого вида:

php -i | grep memcache -i
/etc/php5/cli/conf.d/20-memcached.ini,
memcached
memcached support => enabled
libmemcached version => 1.0.8
memcached.compression_factor => 1.3 => 1.3
memcached.compression_threshold => 2000 => 2000
memcached.compression_type => fastlz => fastlz
memcached.serializer => php => php
memcached.sess_binary => 0 => 0
memcached.sess_lock_wait => 150000 => 150000
memcached.sess_locking => 1 => 1
memcached.sess_prefix => memc.sess.key. => memc.sess.key.
Registered save handlers => files user memcached

Так же проверим, запущена ли служба Memcached

ps -aux | grep memcached

Вывод должен быть такого вида

memcache   922  0.0  0.0 328384  4076 ?        Sl   12:36   0:05 /usr/bin/memcached -m 128 -p 11211 -u memcache -l 127.0.0.1
root     17728  0.0  0.0  11740   936 hvc0     S+   18:57   0:00 grep –color=auto memcached

 

Views: 18

Как хранить PHP сессии в Memcached

Memcached – это реально хорошее средство, чтобы снизить нагрузку с вашего сервера и получить более высокую производительность. Настроим PHP для хранения сессий в Memcached, а не в файловой системе.

Зачем хранить сессии РНР в Memcached?

Т.к. оперативная память на много порядков быстрее , чем жесткие диски (HDD) или твердотельные накопители (SSD), лучше кэшировать сессии в оперативной памяти, вместо файловой системы на веб-сервере. Это позволит существенно снизить нагрузку на сервер и повысит его производительность. Есть одно но, если хранить сессии на жестком диске, они могут оставаться там постоянно, а если использовать оперативную  память, то после перезагрузки системы, все сессии будут удалены.

Установка Memcached на Ubuntu

Установка Memcached на CentOS

Установку PHP мы уже сделали, поэтому чтобы настроить хранение всех сессий в Memcached, надо изменить переменные в файле php.ini

  • Для пользователей Ubuntu
sudo nano /etc/php5/apache2/php.ini
  • Для пользователей CentOS
sudo nano /etc/php.ini

Находим следующие переменные:

session.save_handler
session.save_path

Заменяем значения на следующие:

session.save_handler = memcached
session.save_path = “127.0.0.1:11211”

Если Memcached установлен на другом сервере, а не на localhost  (пример 192.168.0.10):

session.save_handler = memcached
session.save_path = “tcp://192.168.0.10:11211”

Если использовать несколько Memcached серверов (пример 192,.168.0.10, 192.168.0.20 и т.д.):

session.save_handler = memcached
session.save_path = “tcp://192.1680.10:11211, tcp://192.168.0.20:11211”

Так же есть возможность передавать параметры при конфигурации сессий:

session.save_handler = memcached
session.save_path=”tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15″

Для применения изменений, надо перезапустить сервис Apache:

  • Для пользователей Ubuntu
sudo service apache2 restart
  • Для пользователей CentOS
service httpd restart

Если вы используете PHP-FRM:

  • Для пользователей Ubuntu
sudo service php5-fpm restart
  • Для пользователей CentOS
service php-fpm restart

 

Views: 11

Венгрия г.Будапешт

Views: 6

Венгрия г.Эстергом

Views: 2

Испания г.Севилья

Views: 1

Установка Memcache на Ubuntu 14.04

Описание

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

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

Установка Memcache и компонентов

Все компоненты доступны в репозиториях Ubuntu

Нам потребуется установить  Memcache, сервер баз данных MySQL и PHP с компонентами для взаимодействия.

Установка Memcache

sudo apt-get install memcahed

Memcached установлен

По дефолту Memcached прослушивает порт – 11211, на localhost(127.0.0.1). Файл настроек Memcached расположен /etc/memcached.conf

logfile /var/log/memcached.log задается расположение лог файла

-m задает размер памяти под кеш (в мегабайтах)

-p задается порт, который слушает Memcached

-l задается IP адрес, который слушает Memcached

Установка компонентов

sudo apt-get update

sudo apt-get install mysql-server php5-mysql php5 php5-memcached

Стоит обратить внимание. Есть два компонента для PHP Memcache, один php-memcache, а другой php-memcached. Мы будем использовать php-memcacheD, т.к. он более стабилен и реализует больше возможностей.

Вводим и подтверждаем пароль для администратора(Root) MySQL сервера

MySQL-password

Теперь давайте проверим, как это работает

Сделаем запрос к PHP, что он знает о Memcached и включен ли он.

Создаем файл info.php в корневом разделе по умолчанию. /var/www/html/

sudo nano /var/www/html/info.php

Напишем PHP запрос для вывода информации о состоянии web-сервере и его компонентах.

<?php
phpinfo();
?>

Теперь посмотрим информацию в браузере. http://server_ip/info.php

memcache

Memcached включен и найден на веб-сервере.

Так же можно проверить, запущена ли служба Memcached

ps aux | grep memcached

ps_aux

Для перезапуска службы Memcached надо выполнить:

sudo service memcached restart

Проверим, может ли Memcached кэшировать данные

Служба Memcached запущена. Напишем скрип, чтобы убедиться в работоспособности Memcached.

Создадим файл test.php

sudo nano /var/www/html/test.php

Со следующим содержанием.

<?php
$mem = new Memcached();
$mem->addServer(“127.0.0.1”, 11211);$result = $mem->get(“blah”);if ($result) {
echo $result;
} else {
echo “No matching key found. I’ll add that now!”;
$mem->set(“blah”, “I am data! I am held in memcached!”) or die(“Couldn’t save anything to memcached…”);
}
?>

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

http://ip-server/test.php

Обновим страницу в браузере

Как видно, сервис Memcached может кэшировать данные, заданные в нашем скрипте.

Скрипт PHP для тестирования кэширования данных MySQL

Будем искать данные в Memcached и если они найдены, выведем. Если данные не обнаружены в Memcached, будет произведен запрос в базу данных, а затем результат выведен и сохранен в Memcached для последующих запросов, время кэширования данных зададим 10 секунд.

Создаем базу данных MySQL

mysql -u root -p

Вводим пароль Администратора(root) MySQL

mysql>CREATE DATABASE mem_test; USE mem_test;

Создаем пользователя test с паролем testing123, у которого будет доступ к базе, которую мы создали.

GRANT ALL ON mem_test.* TO test@localhost IDENTIFIED BY ‘testing123’;

Создаем таблицу sample_data и добавляем в нее запись some_data.

CREATE TABLE sample_data (id int, name varchar(30)); INSERT INTO sample_data VALUES (1, “some_data”);

Выходим из MySQL

exit

Создаем файл.

sudo nano /var/www/html/database_test.php

Со следующим содержание:

<?php
$mem = new Memcached();
$mem->addServer(“127.0.0.1”, 11211);mysql_connect(“localhost”, “test”, “testing123”) or die(mysql_error());
mysql_select_db(“mem_test”) or die(mysql_error());$query = “SELECT name FROM sample_data WHERE id = 1”;
$querykey = “KEY” . md5($query);$result = $mem->get($querykey);if ($result) {
print “<p>Data was: ” . $result[0] . “</p>”;
print “<p>Caching success!</p><p>Retrieved data from memcached!</p>”;
} else {
$result = mysql_fetch_array(mysql_query($query)) or die(mysql_error());
$mem->set($querykey, $result, 10);
print “<p>Data was: ” . $result[0] . “</p>”;
print “<p>Data not found in memcached.</p><p>Data retrieved from MySQL and stored in memcached for next time.</p>”;
}
?>

Тест

В браузере открываем http://server_ip/database_test.php

Обновляем страничку в браузере

Если подождать 10 секунд, то снова получим данные с базы а не с Memcached

Memcached может сильно помочь в работе вашего сервера и повысить его производительность

Views: 0

Азорские острова. Португалия

Остров Санта-Мария

Остров Сан-Мигель

Город Порту

Город Фару

 

Views: 0

Установка OwnCloud 9.0 на Ubuntu 14.04/10

owncloudОписание

OwnCloud дает возможность хранить данные в безопасном месте и держать их под вашим контролем. Аналог Dropbox, можно загружать все виды медиа – файлов
(видео, фото, музыку) документы. Отличается OwnCloud от Dropbox тем, что это открытый исходный код, в свободном доступе.
Ваши данные доступны из любой точки земного шара, где есть интернет и на любых устройствах: смартфонах, планшетах, ПК и ноутбуках.

[spoiler show=”Что нового в версии 9.0″]Что нового в версии 9.0

  • Коментарии к файлам
  • Метки файлов
  • Уведомления
  • Автозаполнение имен пользователей
  • Доверенные сервера
  • Код подписи проверяется при обновлении или установке ядра и приложения
  • Автономные обновления для более надежной модернизации
  • Улучшены возможности и производительность при совместном использовании
  • Новый API-интерфейсы для повышения маcштабируемости используя внешние системы хранения данных
  • Календарь и Контакты были полностью переписаны и теперь CalDAV и CardDAV являются частью ядра
  • Усилена безопасность
  • OwnCloud API работает для улучшения маcштабируемости
  • Множество небольших улучшений

В Администрировании

  • Отдельное шифрование для локальных и удаленных систем хранения данных. Вы можете шифровать на удаленных системах хранения, а на локальных не использовать шифрование.
  • Новые команды, для передачи файлов между пользователями
  • Оптимизирован совместный обмен между пользователями и группами
  • Настраиваемый сброс пароля URL
  • Добавлены новые параметры для командной строки в приложение Updater
  • Много новых команд OCC
  • Опции администрирования, включения/отключения внешних систем хранения данных (точки монтирования)
  • Новые OCC команды для миграции контактов и календарей с версии 8.2> если автоматическая миграция не удалась и новые команды для создания адресных книг и календарей пользователей (команды DAV)
  • Введена поддержка второго имени(атрибута) для LDAP.

[/spoiler]

Для установки Owncloud нам потребуется:

  • Linux или BSD сервер (так же можно установить и на Mac OS )
  • MySQL5.5 +/MariaDB
  • PHP 5.4 или выше
  • Apache 2.2+

Поддерживаемые LINUX системы:

  • CentOS 7
  • Debian 8
  • RHEL 7
  • SLES 12
  • Ubuntu 14.04,15.10

Подготовка

В архиве Owncloud содержаться все необходимые пакеты для PHP. Ниже перечислены обязательные и не обязательные пакеты. Что бы проверить установленные модели РНР введите в командной строке PHP -m | Grep -i <module_name>/

[spoiler show=”Необходимые модули для PHP:”]Необходимые модули для PHP:

PHP5 (>=5.4)
PHP module ctype
PHP module dom
PHP module GD
PHP module iconv
PHP module JSON
PHP module libxml (Linux package libxml2 должен быть >=2.7.0)
PHP module mb multibyte
PHP module posix
PHP module SimpleXML
PHP module XMLWriter
PHP module zip
PHP module zlib

[/spoiler]

[spoiler show=”Для баз данных (выбрать только один):”]Для баз данных (выбрать только один):

PHP module sqlite (>= 3,не рекомендуется из соображения производительности)
PHP module pdo_mysql (MySQL/MariaDB)
PHP module pgsql (requires PostgreSQL >= 9.0)

[/spoiler]

[spoiler show=”Рекомендуемые пакеты:”]Рекомендуемые пакеты:

PHP module curl (настоятельно рекомендуется, некоторые функциональные возможности, например, аутентификация пользователя HTTP, от этого зависит)
PHP module fileinfo (настоятельно рекомендуется, повышает производительность анализа файлов)
PHP module bz2 (рекомендуется, необходимое для извлечения приложений)
PHP module intl (увеличивает производительность языка перевода и исправления сортировки не-ASCII символов)
PHP module mcrypt (повышает производительность шифрования файлов)
PHP module openssl (необходим для доступа к ресурсам HTTPS)

[/spoiler]

[spoiler show=”Требуемые для некоторых приложений:”]Требуемые для некоторых приложений:

PHP module ldap (для интеграции LDAP)
PHP module smbclient (интеграция SMB / CIFS см SMB / CIFS )
PHP module ftp (FTP для хранения аутентификации / внешний пользователь)
PHP module imap (для внешней аутентификации пользователя)

[/spoiler]

[spoiler show=”Рекомендуется для конкретных приложений ( по желанию):”]Рекомендуется для конкретных приложений ( по желанию):

PHP module exif (для поворота изображения в картинках приложение)
PHP module gmp (для хранения по SFTP)

[/spoiler]

[spoiler show=”Для повышения производительности сервера ( по желанию) выберите один из следующих систем кэширования:”]Для повышения производительности сервера ( по желанию) выберите один из следующих систем кэширования:

PHP module apc
PHP module apcu
PHP module memcached
PHP module redis (> = 2.2.5, необходимое для транзакционного Блокирование файлов)

[/spoiler]

[spoiler show=”Для генерации предварительного просмотра (необязательно):”]Для генерации предварительного просмотра (необязательно):

PHP module imagick
avconv or ffmpeg
OpenOffice or LibreOffice

[/spoiler]

[spoiler show=”Для обработки командной строки ( по желанию):”]Для обработки командной строки ( по желанию):

PHP module pcntl (прерывание дает команду, нажав Ctrl-C)

[/spoiler]

Вам не нужен модуль WebDAV для вашего веб – сервера (т.е. mod_webdav Apache), так как OwnCloud имеет свой встроенный WebDAV сервер, SabreDAV. Если mod_webdav включен , вы должны отключить его для OwnCloud.

Установка на Ubuntu 14.04 LTS Server

Для этого потребуется установить дополнительные пакеты из командной строки с root правами

#apt-get install apache2 mariadb-server libapache2-mod-php5

#apt-get install php5-gd php5-json php5-mysql php5-curl

#apt-get install php5-intl php5-mcrypt php5-imagick

Рис2Рис3Рис5

Эти пакеты, для установки базовой системы Owncloud. Если вы планируете запускать дополнительные приложения, то может потребоваться установка дополнительных пакетов
При установке MySQL/MariaDB, вам будет предложено создать пароль администратора базы данных.
Обязательно его запомните, т.к. он потребуется далее, для установки базы данных OwnCloud

Далее загружаем архив последней версии Owncloud:

Переходим по ссылке ownCloud Download Page
Скачиваем файл с именем OwnCloud-xyztar.bz2 или OwnCloud-xyz.zip (где хуz это номер версии).

#wget https://download.owncloud.org/community/owncloud-9.0.1.zip

Теперь вы можете извлечь содержимое архива. Запустите соответствующую команду для разархивирования вашего типа архива:

#tar -xjf OwnCloud-xyztar.bz2
#unzip OwnCloud-xyztar.zip


Рис11

Архив распакуется в каталог OwnCloud. Далее скопируйте каталог OwnCloud в корневой каталог для сервера Apache. Для Apache корневой каталог документов:

#cp -r owncloud /path/to/webserver/document-root

где /path/to/webserver/document-root заменяется корневой каталог вашего веб – сервера:

#cp -r owncloud /var/www

Рис12

На других серверах веб-серверов рекомендуется установить OwnCloud вне корневого каталога.

Конфигурируем web сервер Apache

В Debian, Ubuntu, и их производных, Apache устанавливается в нужной для нас фигурации , так что все, что вам нужно сделать, это создать файл в /etc/apache2/sites-available/owncloud.conf со следующим содержанием строк в нем, заменяя директории и другие пути к файлам вашими собственными: расположениями к файлам

# nano /etc/apache2/sites-available/owncloud.conf

Рис14

<Directory /var/www/owncloud/>
Options +FollowSymlinks
AllowOverride All<IfModule mod_dav.c>
Dav off
</IfModule>SetEnv HOME /var/www/owncloud
SetEnv HTTP_HOME /var/www/owncloud</Directory>

Создаем символьную ссылку в /etc/apache2/sites-enabled:

#ln -s /etc/apache2/sites-available/owncloud.conf /etc/apache2/sites-enabled/owncloud.conf

Дополнительные настройки Apache

Для корректной работы owncloud, мы должны включить модуль mod_rewrite

#a2enmod rewrite

Дополнительно рекомендованные модули mod_headers, mod_env, mod_dir and mod_mime:

#a2enmod headers
#a2enmod env
#a2enmod dir
#a2enmod mime

Также можно использовать mod_fcgi вместо стандартного mod_php

#a2enmod setenvif

Вы должны отключить проверку подлинности сервера для OwnCloud, так как используется обычная проверка подлинности для DAV услуг. Если вы включили проверку подлинности на родительской папке (например , с помощью директивы AuthType Basic), вы можете отключить проверку подлинности специально для записи OwnCloud. После файла конфигурации Приведенный выше пример, добавьте следующую строку в <Directory

Satisfy Any

При использовании SSL, обратите особое внимание на запись ServerName. Вы должны указать такое же имя в конфигурации сервера, а также в поле CommonName сертификата.
Теперь перезапустите Apache:

#service apache2 restart

Если вы используете OwnCloud в подкаталоге и хотите использовать CalDAV или CardDAV для клиентов убедитесь , что вы настроили правильно сервис обнаружения URL

Включение SSL

Вы можете использовать OwnCloud через обычный HTTP, но настоятельно рекомендуется использовать SSL / TLS для шифрования всего трафика сервера, а также для защиты учетных записей пользователя и данных в процессе передачи.
Apache установленный под Ubuntu поставляется уже с настроенным простым самоподписанным сертификатом. Все, что вам нужно сделать, это включить модуль SSL и узел по умолчанию. Откройте терминал и выполните команду:

#a2enmod ssl
#a2ensite default-ssl
#service apache2 reload

Перезагрузите сервис Apache

#service apache2 restart

Установка OwnCloud 9.0

После перезапуска Apache вы должны завершить установку, запустив либо графический мастер установки, или в командной строке с при помощи OCC команд. Для выполнения установки, временно измените разрешения для владельца в каталогах OwnCloud:

#chown -R www-data:www-data /var/www/owncloud/

Запускаем браузер и вводим http://ip-server/owncloud

На экране появиться следующее содержание, осталось только ввести данные и процесс установки OwnCloud закончен.

Setup

Задаем логин – Администратора Owncloud сервера

Вводим пароль администратора Owncloud сервера

Указываем место хранения данных, можно оставить по умолчанию и потом изменить.

Пользователь базы данныхroot

Пароль пользователя базы данных (тот, что мы задавали выше при установке баз данных)

Далее – Завершить установку

Setup-end

 

Views: 6