вторник, 3 августа 2010 г.

Строительство платформы для TYPO3 на Gentoo

Преамбула.
TYPO3 может работать на стандартном виртуальном хостинге, но это не наш путь, т.к. сложно что либо построить не имея полного контроля над процессом. Поэтому, я выбрал в качестве платформы виртуальный выделенный сервер.
Каждый более менее крупный хостер в настоящее время предлагает эту услугу. Большинство из них продаёт VPS. И очень мало настоящий VDS. В чём разница, не буду объяснять. В инете полно статей. Скажу лишь одно: нам нужен VDS работающий под Xen.
В данный момент я расположился у провайдера http://www.truevds.ru/.
Тарифа True20 будет достаточно для старта. По моей просьбе они установили пресет Gentoo 10.1 minimal.
Я постараюсь указать на все моменты и нюансы, но явные и очевидные вещи я буду пропускать.
Ну чтож, начнём пожалуй:

Локализация.
Первым делом необходимо настроить локаль. Всегда и везде будем использовать только UTF-8. TYPO3 предпочитает работать именно с этой кодировкой. Системная локаль ru_RU.UTF-8.

Системные программы и библиотеки.
Для упрощения повторной компиляции, используем возможности портежей и прописываем необходимые флаги (USE, ..) в /etc/portage/package.use/. Далее по тексту я буду указывать их в скобках.
Я использую последние версии, которые зачастую маскированы. Потому убираем маскировку с необходимых пакетов.
Обновляем систему: rsync затем emerge -avuDN world
Устанавливаем:
  • app-portage/eix (с ним быстрее и веселее :) )
  • app-misc/mc ( USE="slang")
  • dev-db/libpq
  • media-libs/freetype
  • media-libs/gd (USE="jpeg png")
  • media-gfx/imagemagick (USE="jpeg png tiff")
  • media-libs/pdflib
  • media-libs/exiftool

NGINX
Ставим www-servers/nginx. Проверяем чтобы был подключен модуль http_fastcgi. Обычно он стоит по дефаулту.
Конфигурирутся стандартно.
Добавляются строки в секцию server {}:
location / {
    index index.php;
    # Для корректной работы RealURL
        if (!-e $request_filename){
        rewrite ^(.*)$ /index.php last;
        }
    # Для редиректа php через FastCGI
    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_read_timeout 180;
    fastcgi_send_timeout 180;
    include fastcgi.conf;
    }
}
А также в секцию http {}
# для upload больших файлов.
client_max_body_size 10m;

MySQL
Хотя мне и не нравится mysql, я решил поставить поскольку TYPO3 поддерживает его в core. Возможно в дальнейшем съеду на PostgreSQL.
Итак, ставим сабж: dev-db/mysql
В опциях конпиляции ничего не прописывал. Всё по дефаулту.

PHP
PHP надо использовать с версии 5.3.3. Т.к. только с той версии поддерживается FPM.
Устанавливаем:
dev-lang/php (USE="gd-external exif fpm cgi -apache2 json filter -snmp curl sockets -ipv6")
Правим php.ini
memory_limit = 64M. (это минимум. чем больше можете себе позволить - тем лучше)
В php_fpm.conf прописываем юзера и группу:
user=nginx
group=nginx

eAccelerator
Это полезное дополнение к PHP для увеличения быстродействия скриптов.
Ставим: dev-php5/eaccelerator (USE="-apache2" HTTPD_USER="nginx" HTTPD_GROUP="nginx")
В eaccelerator.ini правим
eaccelerator.shm_size="32" #добавляем памяти под использование
 
Стартуем....
Пробуем  взлететь: поднимаем nginx и php-fpm
Создаем тестовую страничку phpinfo.php:
<?php phpinfo(); ?>

Загружаем в браузер и проверяем чтобы всё завелось основное:
  • eaccelerator
  • gd
  • freetype
  • exif
  • json
В следующем посте я расскажу как поставить TYPO3.

1 комментарий:

  1. >>Большинство из них продаёт VPS. И очень мало настоящий VDS. В чём разница, не буду объяснять. В инете полно статей.

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

    ОтветитьУдалить