• “Тринадцатая Дара” Часть 33

  • Истории со счастливым концом


  • Originally published at Журнал ИТ консультанта. Please leave any comments there.

    Пара тарифов

    Эти тарифы на хостинг почти одинаковые, существенная разница в технологии виртуализации. Оказывается. А я думал – о, разница два бакса, зато любую ОС поставить можно, конечно надо брать за 17$! Ну и взял.
    А цель какая моего хостинга? Обычный вебсервер в интернете. Так че переплачивать, тем более у того который на технологии Xen paravirtualization есть веские доводы в его пользу: он работает быстрее, есть возможность нажатием кнопки делать ПОЛНУЮ резервную копию системы (а вот на Xen HVM фига, нету там возможности по нажатию кнопки всю систему забакапить).

    Таким образом, возникла задача переехать на новую VPS (с VDS на VPS :) ))
    Да еще из преимуществ, как можно видеть в тарифах, это cPanel и DirectAdmin – хотя я не проверял, это надо с поддержкой общаться. Они кстати мне и посоветовали перейти на другую технологию, после того как я с ними плотно пообщался и рассказал про свои цели и задачи (русские, общался я с двумя сотрудниками – Иван и Павел, откровенно скажу – ни на одном хостинге такого отзывчивого, щедрого саппорта у меня еще не было, согласитесь, это очень важный критерий).

    Как был организован переезд: я все обсудил с саппортом, мне подключили новую VPS на новом IP, выделили внутренний ftp 100 гигабайт, который доступен обеим системам, и я потихоньку все настраивал, перетаскивал сайты (ой как приятно с внутренним ftp, гигабайты перелетают как байты). А ребята из поддержки ждали, когда я закончу переезд, чтобы поменять местами у двух виртуалок IP адреса (я старую не сразу отрубил, еще какое-то время проверял все ли аккуратно перенеслось).
    Конечно основная проверка – это работоспособность сайтов, делал очень просто: как только перенес MySQL базы, скопировал 1 в 1 каталоги сайтов, настроил вебсерверы (nginx+apache) – я проверил каждый переносимый сайт на работоспособность, записав в hosts на своей локальной, домашней ОС доменное имя проверяемого сайта и IP адрес новой VPS, таким образом браузеру сайт отдает новый VPS, а не тот который прописан в DNS. И потом при обмене IP адресами двух виртуалок произошел абсолютно незаметный переезд, а hosts обратно поправил :)

    Как я делал настройку Ubuntu Server 10.10 – apache, nginx

    Во-первых гуглил немного, нашел неплохой мануал по настройке связки nginx+apache и до кучи там еще eAccelerator и MEMCACHED. Делал и записывал, что делаю, вот эти записи и выложу здесь себе же на память:

    Быстрая настройка по пунктам сервер 10.10</p>

    1. Русские буквы:
    dpkg-reconfigure console-setup
    locale-gen ru_RU.utf8
    dpkg-reconfigure locales

    ребут

    2. mc, Sendmail
    apt-get update
    apt-get upgrade
    apt-get install mc console-cyrillic
    apt-get install sendmail

    3. apache mysql php
    aptitude install mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin

    4. Разрешаем модули апача, я правда не все разрешил :)
    //a2enmod ssl
    a2enmod rewrite
    //a2enmod suexec
    a2enmod include
    /etc/init.d/apache2 restart

    5. php.ini
    post_max_size = 100M
    upload_max_filesize = 80M;

    6. /etc/apache2/apache2.conf
    в двух местах MaxClients 20
    AddDefaultCharset utf-8

    7. ming.ini заменить # на ; в модулях php

    8. # phpMyAdmin default Apache configuration
    Alias /phpmyadmin /usr/share/phpmyadmin
    Вот ее и меняю на какую-нибудь известную только мне абра-кадабру, типа:
    Alias /ghdgtertyjkhg /usr/share/phpmyadmin

    /etc/init.d/apache2 restart

    9. Создание пользователей баз данных. Пароль устанавливается такой же как из скрипта, чтобы работало автосоздание сайтов
    Пример:
    GRANT USAGE ON * . * TO ‘mysqluser’@'localhost’ IDENTIFIED BY ‘mysqlpassw’ WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

    GRANT ALL PRIVILEGES ON `mysqluser\_%` . * TO ‘mysqluser’@'localhost’;

    Впоследствии скрипт создает базы, доступные этому пользователю с этим паролем

    10. NGINX
    apt-get install nginx

    aptitude install libapache2-mod-rpaf

    nano /etc/apache2/ports.conf :

    NameVirtualHost *:81
    Listen 81
    - пуляем на 81 порт апач

    =============nginx.conf===================
    user www-data;
    worker_processes 2;

    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;

    events {
    worker_connections 1024;
    # multi_accept on;
    }

    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    server_names_hash_bucket_size 64;
    access_log /var/log/nginx/access.log;

    sendfile on;
    #tcp_nopush on;

    #keepalive_timeout 0;
    keepalive_timeout 65;
    tcp_nodelay on;

    client_max_body_size 100m;

    gzip on;
    gzip_proxied any;
    gzip_min_length 1100;
    gzip_http_version 1.0;
    gzip_buffers 4 8k;
    gzip_comp_level 9;
    gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;

    gzip_disable «MSIE [1-6]\.(?!.*SV1)»;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
    }

    =================================================================================

    11. MEMCACHED и eAccelerator

    aptitude install memcached

    aptitude install php5-dev
    aptitude install make
    cd /tmp/
    wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
    tar xvjf eaccelerator-0.9.6.1.tar.bz2
    cd eaccelerator-0.9.6.1
    phpize
    ./configure –enable-eaccelerator=shared
    make
    make install

    Создаем папку кеша:

    mkdir -p /var/cache/eaccelerator
    chmod 0777 /var/cache/eaccelerator

    Редактируем конфиг PHP:

    nano /etc/php5/apache2/php.ini

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

    [PHP]

    ; eAccelerator configuration
    ; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension
    ; If you are using a thread safe build of PHP you must use
    ; zend_extension_ts instead of zend_extension
    extension = «eaccelerator.so»
    eaccelerator.shm_size = «16″
    eaccelerator.cache_dir = «/var/cache/eaccelerator»
    eaccelerator.enable = «1″
    eaccelerator.optimizer = «1″
    eaccelerator.check_mtime = «1″
    eaccelerator.debug = «0″
    eaccelerator.filter = «»
    eaccelerator.shm_max = «0″
    eaccelerator.shm_ttl = «0″
    eaccelerator.shm_prune_period = «0″
    eaccelerator.shm_only = «0″
    eaccelerator.compress = «1″
    eaccelerator.compress_level = «9″
    eaccelerator.allowed_admin_path = «/var/www/eaccelerator»

    итог:

    service apache2 restart
    service nginx restart
    service memcached restart

    Ну ффсе. А! скрипт… написал скрипт, который помогает. За пару сек создает базу данных, копирует дистрибутив WordPress в папку, которую создает по имени сайта в нужном каталоге, в общем все как доктор прописал. Выложу, когда-нибудь, если надо будет. Кому-нибудь. За что-нибудь звонкое.

















































































  • “Тринадцатая Дара” Часть 33

  • Истории со счастливым концом