Установка Livestreet с нуля (Debian): nginx + mysql + php-fpm + apc + memcached + sphinx

Установка Livestreet с нуля (Debian): nginx + mysql + php-fpm + apc + memcached + sphinx

  1. Итак, у нас имеется свежепоставленный Debian с настроенным ssh-доступом и юзер с правами, достаточными для работы sudo.
    Здесь и далее "#" в начале команды означает, что ее необходимо запускать с правами root-пользователя (например, с помощью sudo)
  2. Пакеты будем ставить из репозитория dotdeb, поэтому для начала добавим его в sources.list:
    # nano /etc/apt/sources.list

    дописываем в конец файла
    deb http://packages.dotdeb.org stable all

    Далее импортируем ключ dotdeb'а:
    wget http://www.dotdeb.org/dotdeb.gpg -O - -q | sudo apt-key add -

    Обновляем список пакетов
    # apt-get update

  3. Устанавливаем все необходимое
    # apt-get install php5 php5-fpm php-pear php5-common php5-mcrypt php5-mysql php5-cli php5-gd php5-dev nginx mysql-server unzip

    При установке у вас спросят пароль для пользователя root в mysql-сервере, не забудьте его (и выберите подлиннее и посложнее)!

    # nano /etc/php5/fpm/php-fpm.conf

    В конец допишем:
    pm.max_children = 25
    pm.start_servers = 4
    pm.min_spare_servers = 2
    pm.max_spare_servers = 10
    pm.max_requests = 500

    Эти настройки, конечно же, надо оттюнинговать под себя, но для начала и так сойдет.

    Заставляем php-fpm работать через сокет (а не через :9000 порт)
    # nano /etc/php5/fpm/pool.d/www.conf

    Ищем строчку
    listen = 127.0.0.1:9000
    и меняем на
    listen = /tmp/fastcgi.socket


    Если вы хотите попытаться скрыть использование PHP на сервере, измените в /etc/php5/fpm/php.ini строчку
    expose_php = On
    на
    expose_php = Off


    И перезапустим php-fpm:
    /etc/init.d/php5-fpm restart

  4. Конфигурируем nginx
    Для начала удалим дефолтный сайт
    $ cd /etc/nginx/sites-enabled
    # rm default


    Далее создаем конфиг для нашего livestreet-сайта:
    # nano /etc/nginx/sites-available/website.com

    содержимое файла:
    server {
            listen 80;
            server_name website.com;
    
            access_log /var/log/nginx/website.access_log;
            error_log /var/log/nginx/website.error_log;
    
            root /var/www/website.com;
            index index.php;
    
            location / {
                    try_files $uri $uri/ /index.php?q=$uri&$args;
            }
    
            location ~ \.php {
                    fastcgi_pass  unix:/tmp/fastcgi.socket;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
            location ~ \.(tpl|xml|log)$ {
                    deny all;
            }
    }
    


    Включаем его созданием симлинка в папку sites-enabled:
    # ln -s /etc/nginx/sites-available/website.com /etc/nginx/sites-enabled/website.com


    Перезагружаем nginx:
    # /etc/init.d/nginx reload


    <TODO: настройка SSL>
  5. Подготавливаемся к установке Livestreet
    Создадим папку /var/www, в ней будут лежать все сайты
    # mkdir /var/www/

    например, наш сайт . website.com
    # mkdir /var/www/website.com/

    Теперь немножко протестируем:
    # nano /var/www/website.com/index.php

    кладем туда вот это:
    <?php phpinfo();

    Открываем website.com/ и убеждаемся, что все работает.
  6. Настраиваем mysql
    Создадим новую базу данных и пользователя для LS из консоли:
    mysql -uroot -p
    Enter password: <тут надо ввести пароль, который вы выбрали для пользователя root при установке mysql-server>
    
    mysql> 
    

    Далее (вместо website_password введите придуманный вами уникальный и сложный пароль):
    
    mysql> create database website;
    Query OK, 1 row affected (0.00 sec)
    mysql> grant ALL on website.* to website@localhost identified by 'website_password';
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
    Bye
    

  7. Устанавливаем Livestreet

    cd /var/www/website.com/
    wget -O/tmp/ls.zip http://downloads.sourceforge.net/project/livestreet/LiveStreet%201.0/LiveStreet%201.0.1/LiveStreet_1.0.1.zip
    

    # unzip /tmp/ls.zip -d .
    # chown www-data.www-data . -R
    


    Идем в website.com/install/ и устанавливаем LS. Важно: Используем юзера website (для mysql), а не root.
    
    Имя сервера БД: localhost
    Порт сервера БД: 3306
    Название базы данных: <ранее созданная база (website)>
    [ ] . Создать базу данных
    [ ] . Конвертировать базу 0.4.2 в 0.5.1
    [ ] . Конвертировать базу 0.5 в 0.5.1
    
    Имя пользователя: <созданный пользователь mysql, не root>
    Пароль: <его ^ пароль>
    Префикс таблиц: <ваш случайный префикс>
    Tables engine: InnoDB
    


    Создаем администратора, переходим на главную.

    Удаляем больше не нужную папку .install.
    # rm -r /var/www/website.com/install/

  8. Sphinx (чтобы поиск находил)
    # apt-get install sphinxsearch

    Редактируем ему конфиг-файл
    # wget https://raw.github.com/livestreet/livestreet/master/install/sphinx.conf -O/etc/sphinxsearch/sphinx.conf

    Настраиваем под себя sql_user, sql_pass, sql_db. Не забываем поменять стандартный .prefix_. на наш (вы же при установке действительно выбрали себе уникальный префикс для таблиц?)
    Меняем в том же файле "/var/log/sphinx/" на "/var/log/sphinxsearch/", .address. на .listen. (дефолтный конфиг слегка устарел), "/var/lib/sphinx" на "/var/lib/sphinxsearch"

    Меняем в файле /etc/default/sphinxsearch строку START=no на START=yes

    Перед запуском создаем индексы:
    /usr/bin/indexer --all


    Запускаем
    # /etc/init.d/sphinxsearch start


    Настраиваем автоматическую индексацию:
    # crontab -e

    Дописываем в конец:
    12 */3 * * *  /usr/bin/indexer --rotate topicsIndex > /dev/null 2>&1
    */50 * * * *  /usr/bin/indexer --rotate commentsIndex > /dev/null 2>&1


    Все, поиск работает.
  9. Оптимизация, шаг раз: memcached.
    # apt-get install memcached php5-memcache

    Перезапускаем php:
    # /etc/init.d/php5-fpm restart


    Дописываем в /var/www/website.com/config/config.local.php строку
    $config['sys']['cache']['type'] = 'memory';

  10. Оптимизация, шаг два: APC
    Устанавливаем Alternative PHP Cache
    # pecl install apc

    Если внезапно возникли проблемы с файлом /usr/include/php5/ext/pcre/php_pcre.h, то:
    # apt-get install libpcre3-dev
    (rsmike)

    Дописываем в конец /etc/php5/fpm/php.ini следующую строчку:
    extension=apc.so

    И перезапускаем php5-fpm
    # /etc/init.d/php5-fpm restart


список литературы:
www.webhostingtalk.com/showthread.php?t=1025286
livestreet.ru/blog/dev_documentation/366.html

Tags: livestreet установка, debian настройка, apt-get install, php, mysql, nginx, apache, php-fpm.conf, www.conf



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости