Не мог я просто так уехать на отдых… Ну не мог… В мою голова закралась мысль — почему бы не попробовать перекинуть свои проекты на облачный хостинг. И не просто какой-то готовый вариант, а взять и арендовать «облачный сервер». Именно так называется эта услуга у компании, где я все это дело брал.

В качестве ОС я выбрал Debian 6.0. Некоторые вещи здесь не мои, брал на просторах интернета.

# apt-get update
# apt-get upgrade

Устанавливаем московский часовой пояс:

# rm /etc/localtime
# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Устанавливаем Zend Server. Сначала указываем в файле /etc/apt/source.list откуда брать zend server, добавляем эту строчку:

# deb http://repos.zend.com/zend-server/deb server non-free

Добавляем ключ репозитория, обновляем и ставим:

# wget http://repos.zend.com/zend.key -O- |apt-key add -
# aptitude update
# apt-get install zend-base libapache2-mod-php-5.3-zend-server php-5.3-xmlrpc-zend-server php-5.3-optimizer-plus-zend-server php-5.3-zem-zend-server php-5.3-curl-zend-server php-5.3-data-cache-zend-server php-5.3-mbstring-zend-server php-5.3-mcrypt-zend-server php-5.3-memcache-zend-server php-5.3-mysql-zend-server php-5.3-mysqli-zend-server php-5.3-gd-zend-server php-5.3-ctype-zend-server php-5.3-json-zend-server php-5.3-dev-zend-server

Ставим сервер баз данных MySQL и phpmyadmin:

# apt-get install mysql-server phpmyadmin

При установке MySQL будет предложено ввести пароль администратора для пользователя root в mysql.

Далее, надо установить права на папку /var/www:

# chown root:www-data /var/www
# chmod 775 /var/www

Правим /etc/apache2/sites-enabled/000-default. Можно поправить ServerAdmin на существующий email администратора. Надо в секции указать, чтобы считывались файлы .htaccess:

AllowOverride All

Далее в файле /usr/local/zend/etc/php.ini делаем следующие изменения:

allow_call_time_pass_reference = On
realpath_cache_size = 4096K
display_errors = On
upload_max_filesize = 20M
date.timezone = "Europe/Moscow"

После этого перезагружаем apache:

# /etc/init.d/apache2 restart

MySQL — создание пользователя с необходимыми правами

CREATE DATABASE dbname;
GRANT SELECT,INSERT,UPDATE,DELETE,DROP,CREATE ON dbname.* TO 'user'@'localhost' IDENTIFIED BY 'password';

Если MySQL сервер не запускается и возникает следующая ошибка: InnoDB: Error: log file ./ib_logfile0 is of different size…. — это означает, что лог файл уже был создан и его размер не соответствует заданному в my.cnf. Чтобы это исправить, надо просто остановить сервер MySQL и удалить файлы /var/lib/mysql/ib_logfile.

Теперь можно загружать 1с-битрикс на сервер. Я восстанавливал прежнюю версию. Позже я выложу свои конфиги для MySQL.
Кстати, без всяких работ по оптимизации, 1С-Битрикс версии Малый Бизнес, наполненный информацией, выдает рейтинг производительности 77.

Подсистема Оценка Эталон Примечание
Конфигурация 77.19 30
Среднее время отклика 0.0130 0.0330 секунд
Процессор (CPU) 11.1 9.0 миллионов операций в секунду
Файловая система 11 259.9 10 000 файловых операций в секунду
Почтовая система 0.0076 0.0100 время отправки одного письма (в секундах)
Время старта сессии 0.0001 0.0002 секунд
Конфигурация PHP оптимально оптимально рекомендации
База данных MySQL (запись) 6 603 5 600 количество запросов на запись в секунду
База данных MySQL (чтение) 8 515 7 800 количество запросов на чтение в секунду
База данных MySQL (изменение) 5 672 5 800 количество запросов на изменение в секунду

Почитал форумы по тому какая производительность у людей. Считаю, что облачный хостинг может существовать как альтернатива выделенным серверам или готовому хостингу. Тут уже надо решать для себя — платить строго по тарифному плану или быть мобильным и платить за используемые ресурсы.

Если проект не особо посещаемый, то можно и, наверное, выгоднее размещать несколько проектов на простом хостинге. Как только проект становится высоконагруженным, простого хостинга будет недостаточно. Придется делать выбор между выделенным сервером и облачным хостингом (или облачным сервером, как в моем случае). Облачные архитектуры позволяют четко отслеживать то, сколько мощности нужно проекту, они легко масштабируемы и позволяют забыть о всяких проблемах недостатка производительности.

UPDATE. Чтобы заработала отправка писем, в Debian надо поставить sendmail.

# pkg-add install sendmail