Создание и продвижение сайтов

 
 
Хостинг

Встроенный механизм кэширования запросов в MySQL.

MySQL содержит встроенный механизм кэширования запросов, который, однако не включен по умолчанию. Вот такие параметры выставленны по умолчанию в MySQL 5.0:
mysql> show variables like ‘query_cache%’;

mysql> show variables like 'query_cache%';
+------------------------------+---------+
| Variable_name                | Value   |
+------------------------------+---------+
| query_cache_limit            | 1048576 |
| query_cache_min_res_unit     | 4096    |
| query_cache_size             | 0       |
| query_cache_type             | ON      |
| query_cache_wlock_invalidate | OFF     |
+------------------------------+---------+

Чтобы включить кэш запросов и выделить под него 32 мегабайта памяти можно выполнить запрос set @@global.query_cache_size=32*1024*1024; с правами суперпользователя, а чтобы сделать эту настройку постоянной, следует добавить в my.cnf в подраздел [mysqld] строчку query_cache_size=32M. Второй полезный параметр – query_cache_limit задает максимальный объем результата выполнения запроса, который может быть помещен в кэш

Текущее состояние кэша

Посмотреть состояние кэша можно с помощью запроса:
mysql> SHOW GLOBAL STATUS LIKE ‘Qcache%’;

+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 973      |
| Qcache_free_memory      | 14282000 |
| Qcache_hits             | 3293750  |
| Qcache_inserts          | 252819   |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 66645    |
| Qcache_queries_in_cache | 1342     |
| Qcache_total_blocks     | 3709     |
+-------------------------+----------+
8 rows in set (0.00 sec)

Здесь:

Qcache_free_memory – объем свободной памяти, отведенной под кэш.
Qcache_hits – количество запросов, отработанных из кэша.
Qcache_inserts – количество вставок запросов в кэш.
Qcache_lowmem_prunes – количество высвобождений памяти из-за наполненности кэша.
Qcache_not_cached – количество запросов, не подлежащих кэшированию.
Qcache_queries_in_cache – количество запросов, находящихся в кэше в настоящее время.

Мерой эффективности кэша может служить отношение Qcache_hits / (Qcache_inserts + Qcache_not_cached).
25 069 / (11 196 + 916) = 2.06976552 (каждый второй запрос выполняется из базы)
3 293 750 / (252 819 + 66 645) = 10.3102384 (каждый 10 запрос выполняется из базы)

Вывод ошибок PHP в браузер

В .htaccess написать:
php_value display_errors 1
php_value error_reporting 2047

Работает, если PHP подключен как модуль апача.

Установка eAccelerator на CentOS 5

Акселератор требует autoconf, automake, libtool, m4. Также весьма желателен пакет php-devel, а именно утилита phpize, дабы не пересобирать пхп руками.
Исходная ОС – CentOS 5.3(Final)

Качаем сам акселератор (актуальную ссылку можно взять на http://www.eaccelerator.net/):
wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

untar eaccelerator-0.9.5.3.zip
cd eaccelerator-0.9.5.3

Доставляем необходимые пакеты
yum install autoconf automake libtool php-devel make gcc

Далее:
phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/bin/php-config
make
make install

vi /etc/php.ini

extension=”eaccelerator.so”
eaccelerator.shm_size = “64”
eaccelerator.cache_dir = “/var/cache/eaccelerator”
eaccelerator.enable = “1”
eaccelerator.optimizer = “1”
eaccelerator.debug = 0
eaccelerator.log_file = “/var/log/httpd/eaccelerator_log”
eaccelerator.name_space = “”
eaccelerator.check_mtime = “1”
eaccelerator.filter = “”
eaccelerator.shm_max = “0”
eaccelerator.shm_ttl = “3600”
eaccelerator.shm_prune_period = “0”
eaccelerator.shm_only = “0”
eaccelerator.compress = “1”
eaccelerator.compress_level = “5”
eaccelerator.keys = “shm_and_disk”
eaccelerator.sessions = “shm_and_disk”
eaccelerator.content = “shm_and_disk”
eaccelerator.allowed_admin_path = “”

Создаются папки для временных файлов:
mkdir /var/cache/eaccelerator
chmod 777 /var/cache/eaccelerator

Все. Осталось перезагрузить apache.

service httpd restart

ps
с некоторыми версиями eAccelerator есть проблема с open_basedir
решается патчем http://eaccelerator.net/ticket/396

Обновление PHP на CentOS 5 + обновление Plesk 9

Есть такой сайт http://www.atomicrocketturtle.com, где собрано много обновлений к Плеску.
Скорее всего, из этого репозитория обновляться будет безопаснее, поскольку он создавался специально для Плеска.

Таким образом, обновляться будем с репозитария http://www.atomicorp.com/channels/plesk/

Все действия совершаются в SSH

Ставим PGP-ключ:
wget http://www.atomicrocketturtle.com/RPM-GPG-KEY.art.txt
rpm –import RPM-GPG-KEY.art.txt
Добавляем репозиторий для yum:
wget -q -O – http://www.atomicorp.com/installers/atomic.sh | sh

Установка php:
yum install php

Обновление php:
yum update php

После обновления может быть, что mcrypt не обновился.
Делаем следующее:
yum remove php-mcrypt
yum –enablerepo=remi –exclude=php*5.3* install php-mcrypt

Дополнительно можно обновить MySQL:
yum update mysql-server

Или вообще всё подряд )
yum update

Flash || javascript || Windows || WordPress || Новости || Работы || Хостинг || Создание сайтов ||
   
оптимизация | интернет маркетинг | арбитраж