Установка phpMemcachedAdmin в Linux

PhpMemcachedпрограмма, которая предоставляет вэб-интерфейс для мониторинга и управления сервиса memcached. Эта программа позволяет видеть в реальном времени статистику get, set, delete, increment, decrement, evictions, reclaimed команд, также статистику сети, событий, версию сервера и внутреннюю конфигурацию сервера.

Скачиваем архив phpMemcachedAdmin

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

# mkdir -p /var/www/phpMemcachedAdmin
# cd /var/www/phpMemcachedAdmin# wget https://github.com/elijaa/phpmemcachedadmin/archive/1.3.0.tar.gz

После скачивания, разархивируем архив, выполнив следующие команды:

# tar xzf phpMemcachedAdmin-1.3.0.tar.gz
# chown -R apache.apache phpMemcachedAdmin # chmod -R 755 phpMemcachedAdmin

Настраиваем  phpMemcachedAdmin в Apache

Создадим новый конфигурационный файл в Apache для phpMemcachedAdmin, со следующим содержанием. Для пользователей Debian и Ubuntu конфигурационные файлы расположены в директории /etc/apache2/sites-enabled/

  • Для пользователей CentOs
# nano /etc/httpd/conf.d/phpMemcachedAdmin.conf
  • Для пользователей Ubuntu
# nano /etc/apache2/sites-available/phpMemcachedAdmin.conf

 

 phpMemcachedAdmin – Web based Memcached browser written in php

Alias /phpMemcachedAdmin /var/www/phpMemcachedAdmin

Alias /phpmemcachedadmin /var/www/phpMemcachedAdmin

<Directory /var/www/phpMemcachedAdmin>

  Order Deny,Allow

  Deny from All

  Allow from 192.168.0.1/24

  Allow from 127.0.0.1

</Directory>

<Directory /var/www/phpMemcachedAdmin>

  AuthUserFile /etc/apache2/.htpasswd

  AuthName “phpMemcachedAdmin Login Area”

  AuthType Basic

  require user admin

</Directory>

Для CentOS  –   AuthUserFile /etc/httpd/.htpasswd

Настройка авторизации в Apache

Настроим основные принципы безопасности в Apache для предотвращения несанкционированного доступа к Memcached.

# htpasswd -cm /etc/httpd/.htpasswd admin

New password:

Re-type new password:

Adding password for user admin

Перезапустим сервис Apache

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

В браузере вводим IP и URL к Memcached

http://IP_or_URL/phpMemcachedAdmin/index.php

login

Вводим логин и пароль, что мы создали выше.

web-memcache

web-memcache2

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

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

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

 

 

Views: 3

Установка 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

Установка 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

Как изменить максимальный размер загружаемого файла на сайт в php

При попытке загрузки больших фалов столкнулся с такой проблемой

Размер файла «test.msi» превышает максимальный размер для этого сайта.

По умолчанию в PHP есть ограничение на объем загружаемых фалов равное 2МБт, чтобы исправить это делаем следующее.

Так как webserver у меня работает на ubunte 14.04,

1) Редактируем файл файл php.ini который расположен в /etc/php5/apache2/php.ini

#nano /etc/php5/apache2/php.ini

php_uload_max№1

2) находим следующий параметр  upload_max_filesize = 2M меняем его на ваше усмотрение. Я установил себе 100МБт

upload_max_filesize = 100M

Так же иногда требуется загружать не по одному файлу, а группами. Поэтому сразу правим следующий параметр, по умолчанию он идет как 20. max_file_uploads = 20

я заменил его себе на 100, чтобы иметь возможность загружать до 100 файлов за раз.

max_file_uploads = 100

php_uload_max№2

Так же надо учесть, что в PHP установлен максимальный размер POST запросов post_max_size=8M, он должен быть больше или равен максимальному размеру загружаемого файла, поэтому сразу меняем это значение

post_max_size = 120M

php_uload_max№4

3) сохраняем файл php.ini чтобы изменения вступили в силу, надо перезагрузить web server выполнив команду

#service apache2 restart

После рестарта сервиса apache я могу загружать на сайт фалы объемом до 100МБт.

В данном случае это применимо для ubuntu, для других операционных систем расположение файла php.ini будет в другом месте.

Views: 3

Как включить IMAP функцию в PHP

По умолчанию модуль IMAP в PHP не установлен

1) Устанавливаем модуль PHP IMAP из менеджера пакетов

# apt-get install php5-imap

2) Задействуем функция IMAP

# php5enmod imap

3) перезагружаем сервис Apache

# service apache2 restart

Views: 9