Не мог я просто так уехать на отдых… Ну не мог… В мою голова закралась мысль — почему бы не попробовать перекинуть свои проекты на облачный хостинг. И не просто какой-то готовый вариант, а взять и арендовать «облачный сервер». Именно так называется эта услуга у компании, где я все это дело брал.
В качестве ОС я выбрал 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
железо какое у тебя было при настройке?
1gb ram, 1 cpu core, 40gb hdd. какое конкретно железо используется в физических серверах, мне не известно