Правильный хостинг для MODX Revolution


Хостинг для MODX. modhost.pro


Топик рассказывает о настройке быстрого и недорогого хостинга для MODx Revolution. В принципе, вещи тут описаны общие, так что информация подойдет для любой CMS.

На всякий случай, приложу видео, как должна работать админка MODx Revo.

Для быстрой и комфортной работы желательно:
— Быстрый браузер — Google Chrome. Админка Revo работает в нем молниеносно
— Хороший интернет-канал. Тут без вариантов, нужно всем и всегда.
— Качественный хостинг — про него и пишу.

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

Я работал с разными хостингами. Начинал на Peterhost, затем переехал на Clodo, потом Selectel и параллельно Scalaxy. Также немного поработал с Hetzner.

Хорошие все, но по совокупности субъективных вещей мне больше нравится облако Selectel я выбираю Linode.

Установка ОС и настройка ssh

Регистрируемся на selectel.ru, заходим в панель, там «Облако» и создаем машину.

Для установки я беру Ubuntu x32 (меньше кушает памяти, чем х64). Установка ОС идет минут 15, после нее в свойствах машины ищем «Пароль при установке». Это пароль root.

На сервер идем через Putty. В настройках Translation ставим UTF-8.
User: root
Password: из панели

Первым делом создаем нового юзера и добавляем его в группу sudo:
adduser user
adduser user sudo
Затем отрубаем вход на сервер под рутом.
nano /etc/ssh/sshd_config
Выставляем PermitRootLogin no, здесь же можно перевешать ssh на другой порт, но я этого не делаю.

Перезапускаем ssh:
service ssh restart
Теперь можно перелогиниться, как user и работать через sudo.
Первым делом
sudo apt-get install mc
, после установки
sudo mc
— этим вы будуте работать на сервере через sudo до выхода из Midnight Commander.

На этом месте большинству не-Linux юзеров изрядно похорошело при виде синих окошек, вместо черной консоли. А консоль по-прежнему можно быстро увидеть, нажав Ctrl+O.

С этого момента команды можно вводить и без sudo — вы уже работаете в нем из mc.

Немного настроим firewall.

Создаем файл iptables (touch /root/iptables), вносим в него такие строки:
iptables -F INPUT
iptables -Z INPUT
iptables -P INPUT ACCEPT

iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --update --seconds 30 -j DROP
iptables -A INPUT -p tcp -m state --state NEW --dport 22 -m recent --set -j ACCEPT
Это защита 22го порта от переборщиков паролей. При каждой неудачной попытке повторно попробовать они смогут только через 30сек (можно увеличить) — на таких скоростях ничего не подобрать. К тому же, нужно угадать еще имя пользователя (root то мы отключили).

Делаем его исполняемым — sudo chmod +x /root/iptables
И вносим вызов этого файла в /etc/rc.local — и скрипт будет вызываться при запуске. Вообще, все что вы хотите запускать при старте — пишем сюда.

Репозитории

Ставим python-software-properties для удобного добавления репозиториев
apt-get install python-software-properties
Дабавляем репоитории Nginx и php5-fpm:
add-apt-repository ppa:nginx/stable
apt-get update
apt-get install nginx php5-fpm mysql-server php5-mcrypt php5-mysql php5-curl php-db php5-gd unzip zip
При установке потребуется ввести административный пароль для Mysql — придумываем посложнее, запоминаем и вводим.

Можно еще установить sendmail для отправке почты с сайта, но Revo позволяет работать напрямую с smtp сервером для отправки почты — что я вам и советую настроить. Лучше сразу подключить почту для домена от Яндекс или Google.

Полдела сделано.

Подготовка окружения

Как вы уже могли догадаться, наш сервер будет запускать php через php5-fpm, без участия Apache2.

Это дает нам 2 преимущества: меньшее потребление памяти и запуск разных сайтов от разных юзеров. То есть, при взломе одного сайта — остальные не пострадают.

FTP на сервер мы вообще не установили, потому что заливать файлы сайта мы будем через SFTP (используем WinCSP для этого), а редактировать через Notepad++ (там есть плагин для sftp).

Создаем группу sftp (addgroup sftp) и настраиваем для нее доступ через ssh.
Добавляем в конец /etc/ssh/sshd_config
Subsystem sftp internal-sftp
Match Group sftp
    ChrootDirectory %h
    AllowTCPForwarding no
    ForceCommand internal-sftp
И комментируем там же
#Subsystem sftp /usr/lib/openssh/sftp-server
Создаем новую директорию для будущего сайта (и директорию для временных файлов), создаем юзера для него, добавляем его в группу sftp и назначаем домашнюю директорию:
mkdir /var/www
mkdir /var/www/site1
mkdir /var/www/site1/www
mkdir /var/www/site1/tmp
adduser site1
adduser site1 sftp
usermod -d /var/www/site1 site1
Есть директория, есть пользователь, есть доступ для него через sftp.

Настройка сервисов

Для настройки php нужно редактировать /etc/php5/fpm/php.ini.
post_max_size = 100M
upload_max_filesize = 100M
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
cgi.fix_pathinfo = 0
open_basedir = /var/www/
Основной конфигурационный файл Nginx (/etc/nginx/nginx.conf) приводим к такому виду (старый бэкапим):
user                    www-data;
worker_processes        8;
error_log               /var/log/nginx/error.log;
pid                     /var/run/nginx.pid;
events {
                        worker_connections  1024;
}
http {
    include             /etc/nginx/mime.types;
    client_max_body_size 100m;
    access_log          /var/log/nginx/access.log;
    sendfile            on;
    keepalive_timeout   65;
    tcp_nodelay         on;
    gzip                on;
    gzip_min_length     1000;
    gzip_proxied        any;
    gzip_types          text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json;
    gzip_disable        "msie6";
    gzip_comp_level     8;
    charset             utf-8;
    include             /etc/nginx/conf.d/*.conf;
    include             /etc/nginx/sites-enabled/*;
}
Обратите внимание на параметр worker_processes — здесь нужно указать количество ядер процессора для распараллеливания работы. У облака Селектел их 8.

Рядом в /etc/nginx/fastcgi_params комментим строку про https, а не то потом будет ругаться:
#fastcgi_param  HTTPS                   $server_https;
Nota Bene! Создаем виртуальный хост.
Наш конфиг подгружает сайты из директории /etc/nginx/sites-enabled/, а рядом есть /etc/nginx/sites-available/.
В первой директории лежат симлинки активных сайтов на файлы конфигов из второй директории. Такой подход позволяет быстро включать\отключать виртуальные хосты без редактирования — а просто удалив\создав symlink.

Стандартный конфиг сайта /etc/nginx/sites-available/site1.conf
upstream backend-site1 {server unix:/var/run/php5-site1.sock;}
server {
    listen              80;
    server_name         site1.domain.ru;
    root                /var/www/site1/www;
    access_log          /var/log/nginx/site1-access.log;
    error_log           /var/log/nginx/site1-error.log;
    index               index.php;
    rewrite_log         on;
    location /core/ {                                                                                                                                                                                                                               
        deny all;                                                                                                                                                                                                                                                    
    }
    location / {
        try_files       $uri $uri/ @rewrite;
    }
    location @rewrite {
        rewrite         ^/(.*)$ /index.php?q=$1;
    }
    location ~ \.php$ {
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass    backend-site1;
    }
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
       access_log       off;
       expires          10d;
       break;
    }
    location ~ /\.ht {
        deny            all;
    }
}
Здесь сразу включены friendly urls, отдача статики и обработка php через php5-fpm, для которого объявляется backend (1 строка конфига).
Следующий сайт можно создать просто скопировав конфиг этого и поменяв site1 на site2.

После создания конфига не забываем создать символическую ссылку на конфиг:
ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/site1.conf
Nota Bene! Создаем процесс php5-fpm для сайта.
Основную конфигурацию /etc/php5/fpm/php-fpm.conf мы трогать не будем, просто удостоверимся, что внизу файла есть строчка
include=/etc/php5/fpm/pool.d/*.conf
Это подключает из директории конфигурации процессов php5-fpm. В конфигурации сайта мы уже указали, что *.php он будет отдавать на обработку по адресу /var/run/php5-site1.sock, а теперь создаем конфиг /etc/php5/fpm/pool.d/site1.conf:
[site1]
listen = /var/run/php5-site1.sock
listen.mode = 0666
user = site1
group = site1
chdir = /var/www/site1
php_admin_value[upload_tmp_dir] = /var/www/site1/tmp
php_admin_value[soap.wsdl_cache_dir] = /var/www/site1/tmp
php_admin_value[date.timezone] = Europe/Moscow
# тут значения можно поменять, в зависимости от нагрузки на сайт
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
Внимательно проверяем везде правильность путей и перезапускаем сервисы:
service nginx restart
service php5-fpm restart

Заключение

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

Мы настроили быстрый, недорогой сервер на облаке, с платой за потребление, который очень экономично кушает ресурсы. Для добавления сайтов нужно:
1. Создать директории и юзера сайта, юзера добавить в группу sftp.
2. Создать 2 конфига для Nginx и php5-fpm по образу предыдущих.
3. Установить сайт и назначить юзера хозяном файлов.



У меня на таком сервере висит 7 небольших сайтов. Он потребляет 250-300mb ОЗУ (это настраивается в панели selectel) и стоит около 8-10 рублей в день. Когда я переживал небольшой хабраэффект я платил всего 20 рублей в сутки.

Сайты изолированы друг от друга, каждый работает от своего юзера, с ограниченными правами. Этот же юзер ходит через sftp — нет проблемы с редактированием файлов залитых через ftp в админке.

Для упрощенного управления сайтами и их конфигами через веб-интерфейс отлично подходит Ajenti. Ну и вообще, оно много чего умеет.

В общем, я попытался доступно написать, как можно за 300 рублей в месяц сделать себе хостинг для приятной работы с MODx Revolution.

Если что-то не так — поправьте меня в комментариях.

P.S. Скрипт для назначения прав для директорий\файлов. Рекомендую хранить в /var/www/site1/chmod
#!/bin/bash
user=site1
dir=/var/www/$user/www

chown -R $user:$user "$dir";
find "$dir" -type d -exec chmod 0755 '{}' \;
find "$dir" -type f -exec chmod 0644 '{}' \;
Updated.
Сделал скрипты автоматической установки для серверов, настроенных по этой статье.

Updated 2
Написал статью по подключению MemCached к MODX.

Updated 3
Крайне рекомендую ознакомиться со статьей по настройке резервного копирования вашего сервера.

Update 4
После разных аварий на Selectel и веселых изменений у Scalaxy я переехал на Linode. Как говорится, настроил и забыл.
18 июня 2012, 17:59    Василий Наумкин   G+  
11    7418 0

Комментарии (226)

  1. Никита Калько 19 июня 2012, 20:21 # 0
    ситуация такая: сделал все как в гайде, соответственно у меня есть 2 учетки под которыми я могу войти на сервер через сфтп: моя учетка которую я создавал в самом начале, и учетка site1. Залил движок на сервер но установить не могу, пишет что нет прав для папки core/cache. Но под какой бы учеткой я не заходил на сервер через сфтп (клиент filezilla) я не могу изменить права для этой папки, пишет что у меня нет прав. Как быть? Что я не так делаю
    1. Василий Наумкин 19 июня 2012, 21:18 # 0
      В конце заметки скрипт, который выставляет нужные права на директории и файлы. Просто укажите верного юзера (там сейчас site1 — он вам, кажется, и нужен).

      Запускать нужно из консоли, от суперюзера. Для этого зайдите на сервер по ssh, через Putty.

      Если не разберетесь как запустить скрипт — просто наберите в консоли вот это:

      sudo chown -R site1:site1 /var/www/site1/www
      sudo find /var/www/site1/www -type d -exec chmod 0755 '{}';
      sudo find /var/www/site1/www -type f -exec chmod 0644 '{}';

      После этого проблем быть не должно. Если что — пишите, разберемся.
      1. Никита Калько 19 июня 2012, 23:47 # 0
        Спасибо за ответ) Еще вопрос: создал аналогично первому, второй сайт site2, разобрался как через удаление и добавление симлинков переключатся на другой сайт, а можно ли сделать чтобы одновременно работал и тот и другой сайт?
        1. Василий Наумкин 20 июня 2012, 06:36 # 0
          Вот пример.

          Справа доступные конфиги, слева — симлинки на них.
          1. Никита Калько 20 июня 2012, 11:25 # 0
            а что нужно прописать в конфиге сайта2 в строке server_name? Если у меня например на первом сайте сервер нейм просто айпишник моего сервера, и сайт доступен по нему, то второй сайт тогда где будет? нужно писать к примеру айписервера/site2? или как
            1. Василий Наумкин 20 июня 2012, 11:45 # 0
              Вам нужно купить доменное имя, назначить ваш ip и создавать поддомены.

              К примеру — у меня есть bezumkin.ru и я могу неограниченно создавать site1.bezumkin.ru, site2.bezumkin.ru и т.д., все на одном ip. Это называется «виртуальный хост».

              Почитайте про основы DNS, например тут — ru.wikipedia.org/wiki/DNS
              1. Никита Калько 20 июня 2012, 16:57 # 0
                Спасибо за ответы, всё получилось, если возникнут вопросы еще — спрошу. А сейчас хочу спросить насчет статьи про memcached, а именно, как его правильно удалить? ато возникли некоторые проблемы после его установки, хочу пока что удалить его
                1. Василий Наумкин 21 июня 2012, 09:06 # 0
                  Это лучше в той статье и спросить =)
    2. Настроил VDS хостиг (Слабенький 300cpu; 256 озу), к сожалению не видел как работает админка до проделанной работы, но после… просто ужас. Не ужто не хватает этого хостинга (на обычном виртуальном все на много быстрее )
      revo 2.2.4 Чистая.
      Про комментируйте…
      1. Василий Наумкин 27 июня 2012, 05:35 # 0
        300 Mhz CPU?

        У моего телефона 800 MHz
        1. Но судя по статистике нагрузка CPU 10-12%; ОЗУ 9-14%
          1. Василий Наумкин 30 июня 2012, 01:05 # 0
            Даже не знаю, что вам ответить.

            Видимо, моя инструкция не такая уж и хорошая =(
            1. Не знаю почему но, без ngnix все гораздо быстрее
              1. Василий Наумкин 02 июля 2012, 15:23 # 0
                Буду иметь в виду, спасибо.
                1. Простите я не понял, это опять некий сарказм?
      2. Иван Красков 05 июля 2012, 17:54 # 0
        Спасибо за инструкцию, оживил умерший сервер на старом дебиане и апаче
        1. Василий Наумкин 05 июля 2012, 17:55 # 0
          В смысле, он воскрес на Ubuntu и Nginx?
          1. Иван Красков 05 июля 2012, 18:00 # 0
            воскрес на дебиане и энжиниксе и теперь можно удобно делать конфигурации хостов с симлинками
        2. Rasul A 05 июля 2012, 19:57 # 0
          У селектел тоже вроде с Cpu не густо, начальные тарифы lvds — CPU — 256Mhz, RAM — 256MB, HDD — 25,6GB 256руб./мес
          на амазоне бесплатный micro и тот мощнее, у меня там немного другая конфигурация, стоит простенькая панелька которая потянула за собой все сервисы. Работает отлично, крутятся несколько сайтов (про скорость не скажу т.к. инет у меня тормозной), cейчас проблема настроить почтовый сервер. По умолчанию все нормально уходило через внешний smtp на gmail, но в результате экспериментов, записи в dns прописан Pdd yandex (по мануалу как тут maxidrom.net/archives/657) mail.site.com ведет на почту, но внешний smtp перестал работать даже не знаю почему, боюсь придется отменять все. Интересно, Василий, как Вы с поступили с почтой?
          1. Василий Наумкин 05 июля 2012, 20:01 # 0
            Тут речь про облако Selectel — а там 8 ядер. Загрузить этот процессор надо сильно постараться.

            С почтой я поступаю просто — настраиваю, чтобы работала. Для моих нужд хватает Sendmail. Баг с отправкой почты самому себе лечу так — serverfault.com/questions/102647/sendmail-to-local-domain-ignoring-mx-records-part-2

            Возможно, пора написать заметку про настройку почты на сервере.
            1. Rasul A 05 июля 2012, 20:16 # 0
              Не очень знаком с виртуализацией в облаках, не верить вам причин нет.) Заметку ждем и большое спасибо за труд! Как только накопится по-больше таких заметок думаю тоже уйду от панелек на хардкор консоль))
              1. Василий Наумкин 05 июля 2012, 20:18 # 0
                Облако — это модель учета ресурсов и оплаты. Принципиально от VPS оно не отличается.

                Заметку поставил в план.
          2. Андрей Розум 02 августа 2012, 19:48 # 0
            Спасибо за топик, во многом помог разобраться, раньше пользовался уже настроенными хостингами.

            Единственный вопрос, который недопонял — а как поковырять базу?
            Обычно использовал phpmyadmin, но вроде для него нужнен апач, а тут он не устанавливается.
            1. Василий Наумкин 02 августа 2012, 19:49 # 0
              Положите phpmyadmin в директорию сайта и зайдите как www.site.ru/phpmyadmin/

              1. Андрей Розум 02 августа 2012, 20:26 # 0
                Спасибо!
                1. Руслан Юсипов 19 декабря 2012, 10:07 # 0
                  А как сделать так чтобы через конфиг сайта подключался phpmyadmin?
                  внес в конфиг следующие строки, предварительно установив phpmyadmin

                  #Работа с phpMyAdmin
                  location /phpmyadmin {
                  root /usr/share/;
                  index index.php index.html index.htm;
                  location ~ ^/phpmyadmin/(.+\.php)$ {
                  try_files $uri =404;
                  root /usr/share/;
                  fastcgi_pass 127.0.0.1:9000;
                  fastcgi_index index.php;
                  fastcgi_param SCRIPT_FILENAME $request_filename;
                  include /etc/nginx/fastcgi_params;
                  }
                  location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                  root /usr/share/;
                  }
                  }
                  location /phpMyAdmin {
                  rewrite ^/* /phpmyadmin last;
                  }

                  но выдает чистую страницу.
                  Что я делаю не так подскажите пожалуйста.
                  1. Руслан Юсипов 19 декабря 2012, 16:18 # 0
                    проблема решилась
                    добавил в php.ini
                    open_basedir = /usr/share/phpmyadmin/
              2. Роман Киричик 26 августа 2012, 23:02 # 0
                Василий, здравствуйте.
                Я проделал всё, как в инструкции и все вроде получилось, Modx установился нормально, но при попытке сделать service nginx restart и service php5-fpm restart я получаю ошибки следующего характера. При этом веб-сервер работает нормально. Помогите, пожалуйста разобраться. Спасибо.
                  1. Василий Наумкин 27 августа 2012, 05:45 # 0
                    Перезагрузите сервер, а потом попробуйте рестартовать с sudo.
                    1. Роман Киричик 27 августа 2012, 13:57 # 0
                      Спасибо, это частично помогло. Теперь php5-fpm restart — всё ок, но при попытке сделать nginx restart, я получаю следущее сообщение: piccy.info/code2/3406415/bd4f1993391ab19eb4e10c11edc76610/
                      1. Василий Наумкин 27 августа 2012, 14:02 # 0
                        Смотрите синтаксис файла конфига, где-то что-то не так. Или точку с запятой не поставили, или еще что.

                        В заметке копия этого файла — сверьте с ней.
                        1. Роман Киричик 27 августа 2012, 14:45 # 0
                          Проверил файл конфига несколько раз, сверил с примером, перезагрузил сервер, но тоже самое…
                          1. Василий Наумкин 27 августа 2012, 14:54 # 0
                            Выложите файл на https://gist.github.com/
                            1. Роман Киричик 27 августа 2012, 15:27 # 0
                              Вот https://gist.github.com/3487654
                              1. Василий Наумкин 27 августа 2012, 19:02 # 0
                                Вроде все верно.

                                Эта директива больше нигде не встречается (в другом файле)?

                                Пришлите данные от ssh мне на почту.
                                1. Василий Наумкин 28 августа 2012, 04:30 # 0
                                  Как выяснилось, это баг сборки Nginx 1.2.2
                                  https://bugs.launchpad.net/nginx/+bug/1033856

                                  Надо было просто сделать
                                  sudo apt-get install nginx-common, чтобы обновить пакет — и все ок.
                                  1. Роман Киричик 28 августа 2012, 11:31 # 0
                                    Спасибо большое!
                  2. Роман Киричик 05 сентября 2012, 21:32 # 0
                    Подскажите пожалуйста, как правильно добавить поддомен так, чтобы потом создать сайт по на этом поддомене в отдельном контексте. Переношу сайт с другого хостинга, там уже контексты настроены, вопрос только в добавлении поддомена.
                    1. Василий Наумкин 05 сентября 2012, 21:34 # 0
                      Просто добавить сюда, через пробел
                      server_name site1.domain.ru site2.domain.ru;
                      1. Роман Киричик 05 сентября 2012, 22:00 # 0
                        А изменения сразу должны вступить в силу? Я прописал, но поддомены всё равно не работают. Прописываю в конф. файле сайта, в /etc/nginx/sites-available
                        1. Василий Наумкин 05 сентября 2012, 22:03 # 0
                          sudo service nginx restart

                          Ну и в вашем ДНС сервере эти имена должны ссылаться на новый сервер, чтобы он мог ответить на запросы.
                          1. Роман Киричик 05 сентября 2012, 22:16 # 0
                            Перезагрузку сервисов я сделал.
                            У меня домен зарегистрирован на nic.ru. Мне нужно там прописать поддомены?
                            1. Василий Наумкин 05 сентября 2012, 22:28 # 0
                              Да. Нужно присвоить вашим доменам новый ip.

                              Почитайте, что ли, про DNS.
                              1. Роман Киричик 05 сентября 2012, 22:33 # 0
                                Про IP я понял. На nic.ru прописал NS хостера для основного домена, а в конф. файле я прописываю субдомены. Так у меня было устроено на предыдущем хостинге. Сейчас по этой схеме не получается…
                                1. Василий Наумкин 05 сентября 2012, 22:38 # 0
                                  Видимо nic.ru не собирается обслуживать чужие ip и предлагает вам указать свой собственный DNS сервер.

                                  Используйте бесплатный от яндекса https://pdd.yandex.ru/help/section9/

                                  В nic.ru указываете сервера Яндекс, на Яндексе — соотношение своих доменов и ip сервера.

                                  Потом ждете полдня\день, пока все обновится.

                                  Проверять состояние можно тут whois7.ru/
                                  1. Роман Киричик 05 сентября 2012, 22:43 # 0
                                    Я понял, спасибо.
                                    Раньше modx-test.com был на Selectel? Каким образом Вы делали создание поддоменом?
                                    1. Василий Наумкин 05 сентября 2012, 22:56 # 0
                                      В DNS можно прописать *.sitename.ru — и тогда все поддомены будут ломиться на нужный ip.

                                      Если nginx им ответит — то получат нужный сайт.
                                      1. Роман Киричик 05 сентября 2012, 23:13 # 0
                                        Спасибо большое! Попробую так сделать.
                      2. seigiard@gmail.com 23 сентября 2012, 11:30 # 0
                        Василий! Ай нид хелп! Разобрался с сайтами, все завелось, все работает, одно но не дает мне покоя.

                        Почему я могу зайти на site.com, но на www.site.com получаю отлуп? Что поменять в филармонии, чтобы заработали www. поддомены автоматически для всех создаваемых сайтов?

                        Спасибо за ответ и еще раз спасибо за такой полезный мануал.
                        1. Василий Наумкин 23 сентября 2012, 11:34 # 0
                          В конфиге nginx нужно указать все возможные адреса сайта вот здесь:
                          server_name site1.domain.ru;

                          У вас должно быть что-то типа
                          server_name site1.domain.ru www.site1.domain.ru;
                          1. seigiard@gmail.com 23 сентября 2012, 11:58 # 0
                            Только что посмотрел, в .conf — указано и с www, и с без www
                            Так что у вас в статье и в скрипте все без ошибок.
                            Перезапустил nginx — ничего.

                            Потом догадался — начал пинговать. На www.site.com дает «cannot resolve www.site.com: Unknown host»

                            Гугл в помощь. Директива CNAME, как синоним для доменов. Управление доменами в облаке Селектел. Смотрю, A-запись есть, NS-ы есть. Прописываю CNAME.

                            Жду.

                            Василий, правильно ли я жду или надо копать в другом месте? :)
                            1. Василий Наумкин 23 сентября 2012, 12:06 # 0
                              Правильно ждете.

                              Доменные записи можно проверять вот тут — whois7.ru/?s=ip. Оба ваши имени должны указывать на ip вашего сервера.
                              1. seigiard@gmail.com 23 сентября 2012, 18:44 # 0
                                Да, все заработало.

                                Может стоит написать в статью, как добавлять доменные имена в Селектел? ) А то будут мучаться, как я, бедняга ))
                                1. Василий Наумкин 23 сентября 2012, 19:09 # 0
                                  ДНС — это базовые знания об интернет.

                                  Каждый должен сам разобраться в этой азбуке — кому надо, конечно.
                        2. Денис Артамонов 24 сентября 2012, 11:54 # 0
                          если кому надо, я собрал виртуальную машину на ArchLinux c данными скриптами
                          rutracker.org/forum/viewtopic.php?t=4189339

                          позже обновлю версию, сейчас пропущена архивация и memcached…
                          1. Василий Наумкин 24 сентября 2012, 12:16 # 0
                            Отличное начинание.

                            Попробую сделать такую машину, только на Ubuntu. Спасибо!
                          2. Антон Слободчук 05 октября 2012, 17:32 # 0
                            Вы не сталкивались с проблемой медленного копирования файлов по SFTP на Linode? (настроил все так, как описано в вашей статье)
                            1. Valentin Rasulov 01 ноября 2012, 20:26 # 0
                              Маленькое дополнение, не нашол здесь (может не увидел). Для отображения русских месяцев нужна локаль RU, её нету по умолчанию, для этого выполняем одну команду в консоле.
                              apt-get install language-pack-ru-base
                              1. Василий Наумкин 01 ноября 2012, 20:30 # 0
                                Это влияет только на консоль. На работу сайтов — никак.

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

                                Все мои сервера работают строго на родном для них языке — английском.
                                1. Valentin Rasulov 01 ноября 2012, 20:36 # 0
                                  нет — не консоль. Если в консоле введёшь команду locale — то будет только английская.
                                  При использовании даты в модексе все месяца будут отображаться в английском формате. Хоть в php.ini и установишь intl.default_locale в русский — всё равно его не будет.
                                  По крайней мере я сейчас с этим боролся. как только установил русские локали — на сайте всё гуд — по русски месяца
                                  1. Василий Наумкин 01 ноября 2012, 20:41 # 0
                                    А я просто прописываю в системных настройках локаль — и работает.
                                    1. Valentin Rasulov 01 ноября 2012, 20:41 # 0
                                      в консоле набери просто locale — есть русский или нету?
                                      1. Василий Наумкин 01 ноября 2012, 20:43 # 0
                                        1. Valentin Rasulov 01 ноября 2012, 20:44 # 0
                                          оки — я тоже после установки набрал, так-же само, русского не видно. Но на сайте русский появился.
                                          Возможно заблудился гдето.
                                          1. Василий Наумкин 01 ноября 2012, 20:45 # 0
                                            Подозреваю, что жирная Ubuntu уже все в себе имеет.

                                            Это ж не диетический Debian.
                                          2. Valentin Rasulov 01 ноября 2012, 20:46 # 0
                                            + к всему в самой админке все даты стали на русском языке.
                                            До этого не выводились.
                                            1. Василий Наумкин 01 ноября 2012, 20:47 # 0
                                              MODX Revolution.

                                              Ни дня без сюрприза =)
                                    2. Valentin Rasulov 01 ноября 2012, 20:41 # 0
                                      вопрос — у тебя отображаются месяца по русски без снипета (которым переводишь)?
                                      1. Василий Наумкин 01 ноября 2012, 20:41 # 0
                                        Да. На серваке локаль отдельно ни разу не ставил.

                                        Linode, по твоему совету.
                                        1. Valentin Rasulov 01 ноября 2012, 21:13 # 0
                                          тему закрыли, это я в ручную удалил все локали на сервере :)
                                  2. Василий Краковецкий 10 ноября 2012, 19:55 # 0
                                    Укажите пожалуйста что файла /etc/php5/fpm/main.conf в последних версиях php5-fpm не будет, вместо него надо править /etc/php5/fpm/php-fpm.conf
                                    взято отсюда: bugs.debian.org/cgi-bin/bugreport.cgi?bug=619104 а конкретнее git.debian.org/?p=pkg-php/php.git;a=commitdiff_plain;h=0210cec984a6c97e1e9166cb5ac60d751f57ec9f
                                    1. Василий Наумкин 10 ноября 2012, 20:24 # 0
                                      Спасибо, указал.
                                    2. Александр Наумов 08 декабря 2012, 13:52 # 0
                                      Спасибо за великолепный мануал!

                                      Сделал все по инструкции, только пока не устанавливал MODX. Решил зайти по IP, увидел приветствие Welcome to nginx!, потом создал в /var/www/site1/www файл index.html, перезагрузил браузер в надежде увидеть содержимое index.html, а увидел снова приветствие Nginx.

                                      Подскажите, пожалуйста, в чем может быть причина?
                                      1. Василий Наумкин 08 декабря 2012, 15:47 # 0
                                        1. У меня в конфиге индексный файл только Index.php, html там нет.
                                        Можно сделать так:
                                        index               index.php index.html;
                                        2. Судя по тому, что Nginx вас приветствует, а не говорит 403 Forbidden — вы попадает на дефолтный сайт, а не на свой. Значит, нужно разбираться с ДНС.
                                        1. Александр Наумов 08 декабря 2012, 17:06 # 0
                                          Спасибо большое!
                                          Первый способ проблему не решил.
                                          Скажите, а где этот ДНС находится, нужно писать в супорт Селекту?
                                          Мой IP 37.200.68.117, который отдает приветствие Nginx.
                                          1. Василий Наумкин 08 декабря 2012, 17:55 # 0
                                            Для начала почитать про DNS.

                                            Если вы открываете сайт не по имени, а по ip — то всегда и будет открываться стандартный. Для работы разных сайтов на одном ip и придумали доменные имена.

                                            В общем, гуглите. Это азбука, дальше объяснять — время терять.
                                            1. Александр Наумов 08 декабря 2012, 18:28 # 0
                                              Понятно, спасибо!
                                      2. Алексей Алехин 26 декабря 2012, 03:35 # 0
                                        Создал два сайта site1 и site2. Во втором поменял везде как вы пишите site1 на site2 — все остальное без изменений. На обоих сайтах положил одинаковый файл с содержимым <? echo exec('whoami'); ?>
                                        Открываю site1 и вижу вывод скрипта как и ожидается site1. Но стоит жать F5 несколько раз как начинает выводиться site2. Два раза site1 и два раза site2 и так по кругу. На втором сайте все точно также. Причем если /etc/php5/fpm/pool.d/site2.conf переименовать чтобы при запуске не подхватывался, то оба сайта все равно работают, но показывают site1 постоянно (без переключения пользователя). Что это и как с этим бороться?
                                        1. Алексей Алехин 26 декабря 2012, 03:45 # 0
                                          Извините — сам же и разобрался. Не внимательно скопировал секцию location ~* \.php$
                                          Спасибо за ваш труд — мануал отличный!
                                          1. Василий Наумкин 26 декабря 2012, 11:15 # 0
                                            На здоровье!
                                        2. Alexei Garmash 04 января 2013, 23:02 # 0
                                          Василий, Вы рекомендовали использовать серверы Yandex или Google для отправки почты с сайта на MODx Revo.
                                          Вы не могли бы подсказать, как правильно настроить сам MODx для корректной работы с Яндекс? В сети детальной информации по этому вопросу не нашел, и с наскоку настроить тоже не удалось.
                                          1. Denys Butenko 05 января 2013, 00:14 # 0
                                            Для начала региститируете себе ящик для домена у Гугла или Яндекса.
                                            Прописываете mx записи для домена. Ждете пока они обновятся.
                                            В настройках MODX раздел Почта:
                                            mail_smtp_auth - Yes
                                            mail_smtp_user - адрес ящика на Google или Yandex сервере
                                            mal_smtp_pass - пароль от этого ящика
                                            mail_smtp_port - порт (у меня 465)
                                            mail_smtp_prefix - tls
                                            mail_smtp_use - Yes
                                            Этого должно быть достаточно!
                                            1. Abu 05 января 2013, 18:26 # 0
                                              У меня так с pdd yandex, кажется есть еще нюанс с яндексом которому в formit нужно значение &from указывать
                                              , 'mail_smtp_auth' => 1
                                              , 'mail_smtp_hosts' => 'smtp.yandex.ru'
                                              , 'mail_smtp_pass' => 'password'
                                              , 'mail_smtp_port' => '465'
                                              , 'mail_smtp_prefix' => 'ssl'
                                              , 'mail_smtp_user' => 'login@yandex.ru'
                                              , 'mail_use_smtp' => 1
                                              1. Alexei Garmash 05 января 2013, 23:13 # 0
                                                Denys Butenko, Rasul Abu Muhammad Amin, спасибо за ваши ответы!
                                                Работает по обеим версиям :)
                                                1. Paulo 04 февраля 2013, 18:23 # 0
                                                  Здравствуйте.
                                                  Подскажите пожалуйста какое значение &from нужно укзать для Formit?
                                                  Никак он у меня работать не хочет :(
                                                  1. Abu 05 февраля 2013, 15:41 # 0
                                                    вызов типа такого
                                                    [[!FormIt?
                                                    &hooks=`email`
                                                    &emailTpl=`MyEmailChunk`
                                                    &emailTo=`почта@mail.ru`
                                                    &validate=`name:required,surname:required,patronymic:required,date:required,gender:required`
                                                    &from=`no-reply@сайт.ru`
                                                    &emailUseFieldForSubject=`1`
                                                    &emailSubject=`Тема`
                                                       &successMessage=`<span class="success">Сообщение отправлено!</span>`
                                                    ]]
                                              2. Александр Донский 05 января 2013, 19:02 # 0
                                                Здравствуйте люди. Подскажите пожалуйста. У меня VPS на нем Ubuntu 11.04, Панель ISP manager lite. При создании сайта php можно установить двумя способами:
                                                -как модуль Apache;
                                                -как CGI.
                                                Я так понял, устанавливать следует «как CGI»?
                                                1. Василий Наумкин 06 января 2013, 03:45 # 0
                                                  Эта инструкция как раз для того, чтобы не использовать панели, типа ISP.

                                                  Она вам такого наконфигурирует, во век не разгребёте.
                                                  1. Александр Донский 06 января 2013, 13:31 # 0
                                                    значит надо работать через Putty, через консоль? блин, тяжко будет
                                                    1. Василий Наумкин 06 января 2013, 13:38 # 0
                                                      В заметке всё написано так, чтобы тупо копипастить — и работало.

                                                      Не знаю, что тут может быть сложного.

                                                      В любом случае, эти знания очень пригодятся в будущем. Навыки администрирования GNU/Linux никому не мешают.
                                                      1. СикретНаме 05 февраля 2013, 13:34 # 0
                                                        По опыту установки своему могу сказать, что, если в начале выделить немного времени на знакомство с хоткеями консоли и mc всё ставится быстро. Не бойтесь. Потом только рады будете, что ничто не ограничивает Вас в движениях «вправо/влево и прыжках на месте».
                                                        1. Василий Наумкин 05 февраля 2013, 13:35 # 0
                                                          Есть у меня мысль написать скрипт, который будет вообще всё настраивать одной командой.

                                                          Но времени на него нет, а ньюансов там много.
                                                          1. СикретНаме 05 февраля 2013, 13:47 # 0
                                                            Есть опасения, что многие начнут его юзать не вникая ни капли в «откуда куда ноги растут», фанатов «тупого копипаста» понарегится со всеми втекающими и вытекающими. Так то, думаю, мысль славная, но для *особые.
                                                            1. Василий Наумкин 05 февраля 2013, 14:22 # 0
                                                              Так они и ошибиться не смогут — если всё само настроится.

                                                              Пока в любом случае времени нет, это было бы логичное продолжение текущих настроек сервера.
                                                  2. Виталий Киреев 14 января 2013, 07:09 # 0
                                                    У меня почему-то в php5-fpm какая-то утечка памяти постоянно происходит. По команде service php5-fpm restart освобождается более 200МБ памяти. А если этого не делать, то постепенно память на сервере заканчивается и помогает только рестарт сервера. Кто-нибудь сталкивался с такой проблемой? Настраивал примерно по этой статье с учетом менее мощного сервера, настройки php5-fpm правда те же. Не понял что они делают, пробовал изменять — все только хуже).
                                                    1. Василий Наумкин 14 января 2013, 07:55 # 0
                                                      Естественно, что работающие процессы отьедают себе память — зачем ей пустой простаивать?

                                                      Когда память на сервере заканчивается, он что — падает, глючит, виснет? Или работает как надо, просто показывая, что вся память занята?

                                                      Если второе — волноваться не о чем, если первое — попробуй добавить памяти на сервер (если можно) или перезапускать процесс раз в сутки.

                                                      У меня на linode 768 ОЗУ, только 200 из них обычно свободно.
                                                      1. Виталий Киреев 14 января 2013, 17:30 # 0
                                                        Сайты работают, а вот через Putty или FTPs уже не входит — не хватает памяти. И еще крон перестает отрабатывать, что самое важное. Еще 100% загрузка процессора после этого почему-то начинается…
                                                        1. Василий Наумкин 14 января 2013, 17:44 # 0
                                                          А сколько памяти на сервере то, и где этот сервер?

                                                          У меня ни разу такого не было, чтобы аж ssh переставал работать.
                                                          1. Виталий Киреев 14 января 2013, 19:46 # 0
                                                            512мб, fornex.com
                                                            1. Василий Наумкин 14 января 2013, 20:09 # 0
                                                              Однозначно что-то не то у тебя.

                                                              На Linode у меня был тариф 512 — всё летало, никаких утечек. Ubuntu 10.04.4, все пакеты из репозитория.
                                                    2. Clean 15 января 2013, 02:13 # 0
                                                      Василий, было приятно прочитать статью да и в целом хотел бы выразить благодарность за то что ведете деятельность, направленную на продвижение ModX -действительно это хороший продукт, который заслуживает почета и внимания.

                                                      Ну а собственно теперь вопрос — чем пользуетесь, при добавлении сайтов в рамках своей VPS?(если есть что-то кроме шела так же расскжаите о нагрузке на ресурсы)
                                                      С трудом верится что все руками — как то не юзабилити.А подозреваю покупать cPanel или ISPManager нет смысла, все таки это Dedic для не большой аудитории…
                                                      Ajenti безусловно мастхэв — но все же автоматизации он особо не добавляет…
                                                      Заранее, благодарен за ответ.

                                                      1. Clean 15 января 2013, 03:01 # 0
                                                        И да, кстати было бы здорово если бы Вы эту статью подбили под свой новый хостинг на Linode -я думаю разница в конфиге должна быть, к примеру количество рабочих процессоров…
                                                        1. Василий Наумкин 15 января 2013, 05:31 # 0
                                                          Давно написал скрипты автоматической установки и пользуюсь только ими.

                                                          С нагрузкой полный порядок — треть ресурсов всегда свободны.

                                                          Эту заметку перепишу под linide, давно в планах.
                                                        2. Alexei Garmash 16 января 2013, 03:45 # 0
                                                          Залил на VPS Hetzner, сконфигурированный по данному мануалу, три сайта — работают отлично.
                                                          Залил 4-й — при попытке открыть фронт енд выдает ошибку 403 Forbidden.

                                                          Права на файлы все проверил, конфиги тоже, обновил Модкс через Setup — не помогло.

                                                          Сайты с нулевой нагрузкой.
                                                          Может ли быть, что надо что-то подправить в /etc/php5/fpm/pool.d/site1.conf?
                                                          1. Василий Наумкин 16 января 2013, 06:10 # 0
                                                            Используй скрипты автоматической установки — проблем не будет.
                                                            1. Clean 16 января 2013, 19:26 # 0
                                                              смотри лог nginxа, скорее всего htaccess режет
                                                            2. Clean 16 января 2013, 19:33 # 0
                                                              Василий, а кстати, хотел узнать — у Вас на linode крутится на Вашем тарифе сколько проектов на Revo одновременно? И сколько в среднем кушается ресурсов на каждый ModX? Оцениваю просто инфраструктуру для будющего VPS под ModX проекты )
                                                              1. Василий Наумкин 16 января 2013, 20:20 # 0
                                                                Проектов 10-20, когда как — там modx-test.com работает.

                                                                Высчитывать что-то желания нет, извини.
                                                              2. Bond Nataly 19 января 2013, 14:12 # 0
                                                                Здравствуйте! Подскажите пожалуйста, зарегила хостинг Linode, начала настраивать по вашей статье. Дошла до места
                                                                sudo apt-get install mc

                                                                Получаю ошибку -bash: sudo: command not found
                                                                (юзера создала и перезалогинилась) Выбран Debian 6, может надо Ubuntu? Простите за ламерские вопросы, только начинаю осваивать что-либо другое, отличное от ISP-панели((
                                                                Подскажите что делать? Спасибо!
                                                                1. Bond Nataly 19 января 2013, 15:19 # 0
                                                                  Получилось! sudo не был установлен (если я правильно выражаюсь), установила его под root-ом, после все получилось. Продолжим)
                                                                  1. Василий Наумкин 19 января 2013, 16:09 # 0
                                                                    Я пользуюсь Ubuntu, и заметки пишу про настройку в ней.

                                                                    Если ты пока не разбираешься в GNU/Linux — было бы проще поставить Ubuntu, а не Debian. Проблемы с sudo, например, не было бы.
                                                                    1. Bond Nataly 19 января 2013, 16:11 # 0
                                                                      Спасибо за совет! Пока еще ничего не успела настроить, стоит переустановить на Ubuntu? (а то вот опять проблема, не получается создать файл в mc)
                                                                      1. Василий Наумкин 19 января 2013, 16:12 # 0
                                                                        Конечно, стоит.
                                                                        1. Bond Nataly 19 января 2013, 17:00 # 0
                                                                          Подскажите пожалуйста блондинке —
                                                                          И вносим вызов этого файла в /etc/rc.local — и скрипт будет вызываться при запуске.
                                                                          Как именно внести в /etc/rc.local вызов /root/iptables?
                                                                          1. Василий Наумкин 19 января 2013, 17:15 # 0
                                                                            Написать эту строку внутрь файла.
                                                                            1. Bond Nataly 19 января 2013, 17:19 # 0
                                                                              спасибо!
                                                                              1. Clean 19 января 2013, 18:57 # 0
                                                                                Кстати насчет sudo — можете ввести команду
                                                                                sudo -i

                                                                                и после, введя пароль рута все дейтсвия будете делать от его имени (аналог su в Debian).
                                                                                Удобно при работе с скриптами и первичной настройкой системы в рамках SSH сессии
                                                                                1. Василий Наумкин 19 января 2013, 19:00 # 0
                                                                                  Еще прикольнее
                                                                                  sudo mc
                                                                                  1. Clean 19 января 2013, 19:22 # 0
                                                                                    Ну это разумеется, правда например я mc в целом не использую.
                                                                                    Как минимум не удобно в случае, когда в nano скажем сохраняешь файл -это хоткей Ctrl+О, соответственно если nano был запущен из MC -то на этот же хоткей он тоже забинден, и в итоге получается что приоритет у MC, и nano сворачивается, вместо записи.
                                                                                    Понимаю что не проблема, но все же-)
                                                                                    1. Василий Наумкин 19 января 2013, 19:43 # 0
                                                                                      Хм, а я всегда по Ctrl+X сохраняю, при выходе =)
                                                                    2. Clean 03 февраля 2013, 16:44 # 0
                                                                      Кстати сейчас настраивал параметры в rc.local, там не только проверка Iptables но и еще ряд скриптом… И все это дело почему то не заводилось…
                                                                      Полезным оказалась воспроизведение скрипта при входе посредством вот такой незатейлевой команды:
                                                                      sudo /etc/init.d/rc.local start
                                                                      если есть ошибки-они выведутся…
                                                                      В моем случае я просто не заметил, что слетел chmod
                                                                      1. СикретНаме 04 февраля 2013, 06:02 # 0
                                                                        Василий, хелп, пжл. Добрался я до работы с данной статьёй и вот с чем столкнулся:
                                                                        1. user так и не стал sudo
                                                                        2. набор в консоли директивы отсюда: habrahabr.ru/post/116614/ — не срабатывал. Сработал с гитхаба, но только на скачивание, не анзипило почему-то (это про прямые ссылки, через view raw вынутые). Правда потом выдало это:
                                                                        , но через Win SCP не смог найти папки эти
                                                                        3. не смог разобраться, как запускать скрипты автоустановки из консоли. Как я понял надо создавать файл, копировать туда код и потом его запускать из консоли, но где файл сохранять, как запускать итд не смог найти в нете
                                                                        4. при перезапуске сервера вот чего смущает (см скрин)

                                                                        5. не было никаких сигналов о том, что символическая ссылка создалась (в строке набирал, через sudo и стартовал её)
                                                                        6. /etc/nginx/nginx.conf бэкапим, вроде нашёл в нете, как, но тоже так и не понял, забэкапил или нет
                                                                        7. По sftp через WinSCP увидел, что директория /www в ./var не создалась, а архив MODX скачан в ./home/user/ (всё ли тут норм?)

                                                                        П.С.
                                                                        пользовал консоль а не MC
                                                                        1. СикретНаме 04 февраля 2013, 06:23 # 0
                                                                          по п.п. 2 и 7 поправка — MODX в root лежит, его видно через MC. но и только через него. И я его даже распаковал — папка с его распаковкой там тоже есть и видна через MC.

                                                                          Так же хотел бы узнать, где и как на Линоде итд делать адрес сайту, что бы запускать его, устанавливать итд. вроде бы Вы не упоминали об этом ещё.

                                                                          АП
                                                                          Почистил кеш WinSCP — папка с MODX появилась! Правда modx.zip так и не наблюдается, хотя MC его показывает.
                                                                          1. СикретНаме 04 февраля 2013, 07:11 # 0
                                                                            Тек-с. Некоторые вопросы решил. Остались подвешенными 1, 4, 6 и 7 (для п.7 — site1 тоже не нарылся, кстати), ещё вопрос — как с доменами то быть? У меня их нет и не предвидятся сегодня. Есть у Линоды какой-нибудь технический домен или что-то в таком духе? Или бесплатные какие-нить, быстро создаваемые и всё такое?
                                                                            1. Василий Наумкин 04 февраля 2013, 08:45 # 0
                                                                              1. adduser user sudo — и пользователь будет добавлен в группу sudo.
                                                                              4. Смотри конфиги nginx, у тебя дублируется где-то директива.
                                                                              6. Тут бэкапим — это просто копируем куда-нить, на всякий случай.
                                                                              7. В чем трудность создать директорию?

                                                                              Зачем тебе хостинг, если у тебя нет доменного имени? Как на твой сайт люди будут попадать?

                                                                              На всякий случай проясню, что bezumkin.ru — это доменное имя, которое ведёт на сервер с сайтом. На одном сервере может быть куча сайтов с разными именами, но с одним ip.
                                                                              1. СикретНаме 04 февраля 2013, 08:50 # 0
                                                                                О, а вот и ответы Ваши. Сдобного утра :0)

                                                                                А я пока всё по новому кругу переустановил и почти всё Ок. Есть совсем мелочи, но их позже уточню.
                                                                                Так я прописывал это, наверное, что-то не так пошло.

                                                                                А, не, это я знаю, просто привык, что Петерхост техническое имя сразу даёт, надеялся, что буржуи ещё щедрее :0)

                                                                                Или, может, по ip моему Линодному можно, по которому я через ssh на сервак прибегаю, например? Мне то сейчас, по сути, запустить /setup MODX интересно-нужно, а для этого же юрла нужна — вот о ней пока речь.
                                                                                1. Василий Наумкин 04 февраля 2013, 08:57 # 0
                                                                                  Если сайт один — должно работать просто по ip. Если больше, то надо настроить:.

                                                                                  — Пропиши любое имя у себя на компе в hosts и укажи ему твой ip.
                                                                                  — В nginx, соответственно, укажи отзываться на это имя и будет работать.
                                                                                  1. СикретНаме 04 февраля 2013, 09:03 # 0
                                                                                    Тогда вообще ничего не понимаю. Я, конечно, на это «грешил», но отзыв: «Welcome to nginx!», вот и сижу в недоумении ((

                                                                                    Кстати, там есть технич. имя, похоже: типоличныйномер.members.linode.com (там тоже Welcome to nginx! болтается, кнш).
                                                                                    1. Василий Наумкин 04 февраля 2013, 09:06 # 0
                                                                                      По умолчанию nginx создаёт свой пустой сайт + ты создал еще один.

                                                                                      Итого, 2 сайта на одном ip. Либо удали дефолтный, либо настрой домен, как я написал.

                                                                                      sudo rm /etc/nginx/sites-enabled/www.conf && sudo service nginx restart
                                                                                      1. СикретНаме 04 февраля 2013, 09:46 # 0
                                                                                        «Даже» файлы научился переименовывать, а сайтец не бежит :0) Не беда, повторение — мать учения! Пойду по новому кругу всё ставить.
                                                                                        1. СикретНаме 05 февраля 2013, 17:02 # 0
                                                                                          Разобрался, почему не бежала команда — у меня имя файла в /etc/nginx/sites-enabled/ было default (даже без расширения (видимого по крайней мере)) + в /etc/php5/fpm/pool.d/ надо было прибить другие сайты (если есть), а www.conf (у меня этот файл там живёт) не жмёт, что позволило полагать, что его тоже можно-нужно прибить (чтобы не плодить файлы) + ещё sudo service php5-fpm restart надо скомандовать.

                                                                                          Ну, а глобальный корень был в том, что после выполнения инструкций поста я применял скрипт автоустановки, тогда как его применять можно-нужно сразу после команд mkdir /var/www и
                                                                                          mkdir /var/www/site1.
                                                                                          1. Василий Наумкин 05 февраля 2013, 17:04 # 0
                                                                                            Зато теперь с закрытыми глазами сервер настроишь.
                                                                            2. СикретНаме 04 февраля 2013, 11:02 # 0
                                                                              УРА, сервак настроен без ошибок, дублей итд итп — «можем, когда хотим»! :0) След этап — скрипт загрузки MODX итд и в связи с этим пара вопросов:
                                                                              1. Рекомендую хранить /var/www/site1/chmod — можно поподробнее об этой строчке и непосредственно работе и вызове?
                                                                              2. addsite.sh — его в «совсем-совсем» корень кидать и он сам всё расфасует, или таки в корень который корень site1?

                                                                              1. СикретНаме 04 февраля 2013, 11:13 # 0
                                                                                П.С.
                                                                                п.2 ещё и к тому, чтобы не плодить сейчас сайтов больше одного.
                                                                                1. СикретНаме 04 февраля 2013, 11:54 # 0
                                                                                  ВСЁ, УШЁЛ ОБМЫВАТЬ (как только пойму, как БД создавать)! :0) Не подскажет кто-нить как вручную её создать на Линоде с учётом мануала, а то тут вроде как ни слова (наверняка есть этому причина, но пока не пойму. где у меня ошибка)?
                                                                                2. Василий Наумкин 04 февраля 2013, 12:23 # 0
                                                                                  Используй скрипты, они сами всё разложат и сделают, включая БД. Хранить эти скрипты лучше в /root/modx

                                                                                  Закачивать их на сервер вот так:
                                                                                  wget https://gist.github.com/raw/2179479/5b626bc233a2baf70b3e1b40aed04816a28f67d2/addsite.sh -O /root/modx/addsite.sh && chmod +x /root/modx/addsite.sh
                                                                                  update.sh, remove.sh

                                                                                  Потом прописываешь пароль от Mysql в начале файла и можно ставить сайты.
                                                                                  1. СикретНаме 04 февраля 2013, 12:35 # 0
                                                                                    Так мне там от это совало:

                                                                                    Вот я потому некими кривоокольными путями я БД какую-то как-то наварганил (вот такую мануалину нарыл, вроде даже небесполезная: www.ithowto.ru/32-sozdanie-bazy-mysql-i-naznachenie-privelegij.html), но при создании базы и имя юзера и базы и пароль ставил, а при установке MODX оно всё не понадобилось и даже вредило (не коннектило к базе), а в итоге 500.

                                                                                    wget gist.github.com/raw/2179479/5b626bc233a2baf70b3e1b40aed04816a28f67d2/addsite.sh -O /root/modx/addsite.sh && chmod +x /root/modx/addsite.sh — no such file говорит.
                                                                                    1. Василий Наумкин 04 февраля 2013, 12:39 # 0
                                                                                      У тебя на скриншоте написано «MODX could not create database...» В скрипте для работы нужно было указать пароль рута от mysql.

                                                                                      Всё, дальше сам — я устал помогать.
                                                                                      1. СикретНаме 04 февраля 2013, 13:26 # 0
                                                                                        *Б… Ь… Несколько часов жизни «в дыру»… Слов нет… Я то мудился, инет шерстил (видел я ту надпись, не чугунный я)… Мне в голову не приходило, что вот в гитхабовском файле и надо было этот куев па-с-с вдолбить… Вбил и всё фурычит, аки часики, всё у меня ровнёхонько уже с утра было, и все файлики где надо, мля, клал, оказывается. У Вас же даже ЖыЫыРНЫМ ВЫДЕЛЕНО «Нужно указать в скрипте пароль root для mysql»… Ну, пздц, блин… Некуй ночью за колобродить…
                                                                                3. Алексей 05 февраля 2013, 16:28 # 0
                                                                                  Как запретить доступ ко всем портам из Китая?
                                                                                  Взглянул на логи за последние дни, и появилось желание просто наглухо перекрыть доступ для этой страны.
                                                                                  1. Василий Наумкин 05 февраля 2013, 16:47 # 0
                                                                                    Вот тут я писал про защиту 22 порта iptables.

                                                                                    Естественно, так можно защищать любой порт, не только 22, Запретить конкретно одной стране что-то нельзя, только если ты не укажешь все её айпишники в правила файрвола.
                                                                                    1. Алексей 05 февраля 2013, 17:11 # 0
                                                                                      Извиняюсь, не читал. Для бана использую fail2ban — есть куча примеров настроек — от защиты ddos 22 порта до бана при срабатывании suhosin и naxsi — надстройки php и nginx соответственно. Для php есть замечательная класс и ежедневно обновляемая база ip2country, вроде как у них там какие-то подвязки с игровыми виртуальными казино, поэтому поддерживают её в актуальном состоянии. Но в свете того что на линоде страница грузится ~300 мсек и все достаточно прожоливо в памяти, не хочу дергать бэкэнд попусту, ради определения страны по ip адресу.
                                                                                      1. СикретНаме 05 февраля 2013, 18:00 # 0
                                                                                        Василий, наткнулся на такую интересность, как apt-get install arno-iptables-firewall, а так же на apt-get install iptables=есть некий установочный пакет, и у нас он не применяется, раз мы файл iptables создавали (touch). Стоит/не стоит итд, как думаете?
                                                                                    2. СикретНаме 06 февраля 2013, 05:17 # 0
                                                                                      Ну, вот, надеюсь, «пробил час», когда я могу внести свою малюсенькую лепту. Выслал Вам файл, где добавлено нужное и убрано лишнее, соблюдена последовательность действий, а так же менее неоднозначно описаны некоторые действия по настройке хостинга и установке MODX Вашим автоскриптом. Всё вышесказанное более-менее гарантированно верно при использовании Линоды (Ubuntu 12.04 LTS) и Вашего скрипта автоустановки MODX.

                                                                                      П.С.
                                                                                      Надеюсь, я нигде не ошибся в файле, ну и, что он пригодится.
                                                                                      1. СикретНаме 06 февраля 2013, 05:58 # 0
                                                                                        П.С.
                                                                                        Только что, возможно, справился с «nginx: [warn] duplicate MIME type „text/html“ in /etc/nginx/nginx.conf:18»

                                                                                        Оказывается, gzip_types по-умолчанию gzip-ит text/html по MIME-типу, а в /etc/nginx/mime.types он уже описан и потому выскакивает алерт о дублировании. Нужно или удалить text/html из списка gzip_types файла nginx.conf или не добавлять при формировании файла или игнорить алерт.
                                                                                      2. Пётр Молчанов 05 апреля 2013, 10:25 # 0
                                                                                        Перевл-таки свой работающий серв на связку nginx+php-fpm, но вот возникло несколько вопросов, подскажите кто чем сможет:
                                                                                        1. После долгих исканий и пары ребутов серва обнаружил, что php.ini подгружается из /etc/php5cgi/php.ini, а не из /etc/php5/fpm/php.ini. Подскажите, почему так и чем это чревато?
                                                                                        2. По поводу мод_реврайт: целесообразно ли перевести конструкцию вида location ~ account/([0-9]+) { rewrite ^/account/([0-9]+)/ /index.php?q=account/&userid=$1; } на событие OnPageNotFound?
                                                                                        3. как узнать какой php.ini использует крон?
                                                                                        1. Василий Наумкин 05 апреля 2013, 12:00 # 0
                                                                                          1. А зачем тебе одновременно и php5-cgi и php5-fpm?

                                                                                          2. Да, конечно.

                                                                                          3. Свой, консольный, php5-cli.
                                                                                          1. Пётр Молчанов 05 апреля 2013, 12:03 # 0
                                                                                            > А зачем тебе одновременно и php5-cgi и php5-fpm?
                                                                                            Дело в том, что изначально серв собирал не я, собрать с нуля пока возможности нет. cgi уже было тут. подскажи плиз что терь сделать, чтобы всё не паламалось :)
                                                                                            1. Василий Наумкин 05 апреля 2013, 12:05 # 0
                                                                                              Попробуй просто:
                                                                                              sudo apt-get remove php5-cgi
                                                                                              1. Пётр Молчанов 05 апреля 2013, 12:10 # 0
                                                                                                php5-cgi удалил. ребутнул nginx и php5-fpm, но путь остался прежним. серв ребутать что ли?
                                                                                                1. Василий Наумкин 05 апреля 2013, 12:13 # 0
                                                                                                  Попробуй так:

                                                                                                  sudo service php5-cgi stop && apt-get purge php5-fpm && apt-get install php5-fpm && service php5-fpm start
                                                                                                  Это остановит cgi, если он еще пашет, удалит полностью fpm, с конфигами и установит заново.
                                                                                                  1. Пётр Молчанов 05 апреля 2013, 12:18 # 0
                                                                                                    говорит на service php5-cgi stop: unrecognized service. получается и cgi не запущен… странная ситуация
                                                                                                    1. Пётр Молчанов 05 апреля 2013, 12:47 # 0
                                                                                                      apt-get purge php5-fpm && apt-get install php5-fpm && service php5-fpm start
                                                                                                      переустановил и всё равно путь до ini: /etc/php5cgi/php.ini
                                                                                                      1. Василий Наумкин 05 апреля 2013, 12:56 # 0
                                                                                                        Дальше или в гугл, или сделать на это место символическую ссылку с нужного ini.

                                                                                                        Честно, не знаю где переменную прописать, надо гуглить.
                                                                                                        1. Пётр Молчанов 05 апреля 2013, 13:11 # 0
                                                                                                          В инфе еще написано Server API: CGI/FastCGI, я так понимаю, что это нифига не php5-fpm используется
                                                                                          2. Wassi Wassinen 10 апреля 2013, 18:47 # 0
                                                                                            Василий, я тут решил потестить связку исключающую Апач. Все хорошо, концепция — супер, но не могу добиться корректной обработки php. Копирую дистрибутив modx, перехожу по пути установки и вижу код php. Что-то с php5-fpm? Из отклонений от инструкции — в конфиге sites-available/*.conf приписал location ~ site.ru\.php$, т.к. несколько сайтов на одном ip.

                                                                                            Fixed: М-да, сам же и начудил) Убрал свои приписки и все заработало)
                                                                                            1. Василий Наумкин 10 апреля 2013, 19:57 # 0
                                                                                              В моих инструкциях же и так все расписано для «много сайтов на одном ip».

                                                                                              Хорошо, что сам разобрался.
                                                                                            2. Wassi Wassinen 16 апреля 2013, 18:19 # 0
                                                                                              Василий, у меня следующий вопрос — после создания сокета и конфига nginx'a пытаюсь залить файлы. Подключение проходит «на ура». Пользователь в группе sftp. Но залить файл не удается. Права на каталоги 755, на файлы 644. В чем может быть дело?

                                                                                              Заранее благодарен

                                                                                              FIXED: Странно, но исправилось после апдейта локалей и часового пояса. Стояло американское время (часовой пояс).
                                                                                              1. Николай 23 апреля 2013, 12:19 # 0
                                                                                                Подскажите правило для nginx чтобы делало редирект со страницы со / на страницу без оного и при этом давало попасть в админку.
                                                                                                rewrite ^/(.*)/$ /$1 permanent;
                                                                                                зацикливает админку evo
                                                                                                1. Мордынский Николай 23 апреля 2013, 17:38 # 0
                                                                                                  добавь manager в исключение в регулярке, что бы после манагера не меняло слешь, а если не секрет для чего такой секас? (вообще в настройках сайта есть параметр суфикс контейнера и там стоит / что если его убрать?)

                                                                                                  В модх настройка чпу, наиболее гибкая по моему не вижу смысла что то мутить со слешами.
                                                                                                  1. Николай 23 апреля 2013, 18:02 # 0
                                                                                                    Секас от того, чтобы изначально убрать в Evo дубли страниц. Поисковики воспринимают страницу со шлешем и без как дубли. Сейчас обновил evo до последней там появилась настройка, чтобы страницы были со шлешем или без, но это частично решает трабл тк пользователи любят ставит ссылки со слешем и так появляются опять дубли в поисковиках.Поэтому нужен редирект 301. Переведите на ламерский «добавь manager в исключение в регулярке» :-)
                                                                                                    1. Мордынский Николай 23 апреля 2013, 21:07 # 0
                                                                                                      ну вообще регулярное выражение можно написать ввиде переадресовывать все * / за исключением manager/ как делать не скажу — надо думать но можно.
                                                                                                      А по поводу слеша для сео гланую страницу главное склеить, а внутряки индексируются через меню, если с сылкми не напортачить(роботу не светануть оба адреса с / и без то все ок и без подпрыгиваний и кто муже есть meta каноникл он считывается и гуглом и яндексом и внем указывается страница для индексации это помогает)

                                                                                                      И вообще если уж нато пошло каталоги надо наоборот со слешем давать — наоборот переадресацию делать с пустого окончания на / если адрес не заканчивается .html .php или не содержет гет запроса.
                                                                                                      1. Николай 24 апреля 2013, 06:49 # 0
                                                                                                        Лирика лирикой, а как исключить папку для rewrite в nginx найти не удается нигде
                                                                                                        1. Василий Наумкин 24 апреля 2013, 07:38 # 0
                                                                                                          И, скорее всего, не найдётся.

                                                                                                          Нужно указать все правила для этой директории до реврайта. Почитай, как nginx выбирает location для обработки запроса.
                                                                                                          Затем nginx проверяет location’ы, заданные регулярными выражениями, в порядке их следования в конфигурационном файле. При первом же совпадении поиск прекращается и nginx использует совпавший location.
                                                                                                          1. Николай 25 апреля 2013, 17:34 # 0
                                                                                                            А какие правила если к ней ничего применять не надо?
                                                                                                            По идее просто пишу
                                                                                                            location /manager {
                                                                                                            }
                                                                                                            но идея зацикливается по прежнему
                                                                                                            1. Василий Наумкин 25 апреля 2013, 17:49 # 0
                                                                                                              Как минимум, обработка php файлов через fastcgi.

                                                                                                              Ты плохо понимаешь, как работает nginx, нужно почитать литературу.
                                                                                                              1. Николай 25 апреля 2013, 18:07 # 0
                                                                                                                Ещё я смутно представляю, как работает процессор. Пойду изучу литературу, а вдруг понадобится когда-нибудь перепаять.
                                                                                                                Я как-то давно пытался почитать мануалы Сысоева — дохлый номер: написано программистом для программистов. Судя по всему очень мало кто знает, как работает nginx тк ответа на мой вопрос нет нигде. Под апач полно решений, а тут тишина.
                                                                                                                Собственно все сайты на разных движках успешно переехали с говнохостинга на linode, один evo отличился как всегда. Даже dle с правилами рерайта на 2 страницы перенесся без потерь, а тут такой сюрприз.

                                                                                                                1. Василий Наумкин 25 апреля 2013, 18:20 # 0
                                                                                                                  Я тебе выше давал ссылку на то, как nginx выбирает location.

                                                                                                                  Там черным по белому написано, что предпочтение отдается регулярным выражениям — а ты пишешь обычное.
                                                                                                                  Nginx его просто игнорирует и выбирает более интересное.

                                                                                                                  Держи:
                                                                                                                  location ~* ^\/(manager|core|connectors)\/(?:.*)$ {
                                                                                                                  	allow           155.88.99.116;
                                                                                                                  	deny            all;
                                                                                                                  	location ~* \.php$ {
                                                                                                                  		include             fastcgi_params;
                                                                                                                  		fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                                                                                                  		fastcgi_pass        backend-site1;
                                                                                                                  	}
                                                                                                                  }
                                                                                                                  
                                                                                                                  location ~ ^/(.*?)/$ {
                                                                                                                  	rewrite         ^/(.*?)/ /$1 permanent;
                                                                                                                  }
                                                                                                                  

                                                                                                                  Первое правило у меня давно работает, это запрет на вход в админку всем, кроме меня — то есть, это отдельная обработка служебных директорий.

                                                                                                                  А вот во втором не уверен — только что его придумал, но тоже должно работать, ибо вес имеет тот же, что и первое, но идёт за ним.

                                                                                                                  В общем, удачи.
                                                                                                                  1. Николай 25 апреля 2013, 18:39 # 0
                                                                                                                    Вот здесь понятно — у Сысоева не понятно. Спасибо.
                                                                                                                    Рабочий результат
                                                                                                                    location ^~ /manager {
                                                                                                                    	location ~* \.php$ {
                                                                                                                    		include             fastcgi_params;
                                                                                                                    		fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                                                                                                    		fastcgi_pass        backend-marshal;
                                                                                                                    	}
                                                                                                                    }
                                                                                                                    location ~ .+/$ {
                                                                                                                    rewrite (.+)/$ $1 permanent;
                                                                                                                    }
                                                                                                                    1. Василий Наумкин 25 апреля 2013, 18:43 # 0
                                                                                                                      На здоровье!
                                                                                                              2. Мордынский Николай 24 апреля 2013, 10:57 # 0
                                                                                                                не знаю на чем у тебя сервер но правила переадресации nigx указываются в конфиге сервера конфиги лежат в зависимости от настроек
                                                                                                      2. Николай 01 мая 2013, 09:30 # 0
                                                                                                        Еще вопрос по cron появился. Как можно отключить отправку подтверждения на e-mail для одного конкретного задания, а для остальных оставить? На одном сайте шапка по крону меняется, замучали письма счастливого крона.
                                                                                                        1. Василий Наумкин 01 мая 2013, 13:51 # 0
                                                                                                          Очень просто — скрипт не должен ничего выдавать.

                                                                                                          Либо делай так, чтобы он ничего не возвращал, либо направляй его вывод в /dev/null
                                                                                                        2. Илья Горбаров 14 мая 2013, 16:23 # 0
                                                                                                          Подскажите плиз, а почему может быть вот так?

                                                                                                          clip2net.com/s/53PEFb

                                                                                                          На все, что не существует физически выдает 500 и дальше работает как надо.

                                                                                                          Вот такой вот конфиг
                                                                                                          server {
                                                                                                                  listen                          80;
                                                                                                                  server_name                     synthesa.ru www.synthesa.ru;
                                                                                                                  root                            /var/www/synthesa/www;
                                                                                                                  access_log                      /var/log/nginx/synthesa-access.log;
                                                                                                                  error_log                       /var/log/nginx/synthesa-error.log;
                                                                                                                  index                           index.php index.html;
                                                                                                                  rewrite_log                     on;
                                                                                                                  if ($host != 'synthesa.ru' ) {
                                                                                                                          rewrite                 ^/(.*)$  http://synthesa.ru/$1  permanent;
                                                                                                                  }
                                                                                                                  location ~* ^/core/ {
                                                                                                                          deny                    all;
                                                                                                                  }
                                                                                                                  location / {
                                                                                                                          try_files               $uri $uri/ @rewrite;
                                                                                                                  }
                                                                                                                  location /index.html {
                                                                                                                          rewrite                 / / permanent;
                                                                                                                  }
                                                                                                          
                                                                                                                  location ~ ^/(.*?)/index\.html$ {
                                                                                                                          rewrite                 ^/(.*?)/ // permanent;
                                                                                                                  }
                                                                                                                  location @rewrite {
                                                                                                                          rewrite                 ^/(.*)$ /index.php?q=$1;
                                                                                                                  }
                                                                                                                  location ~ \.php$ {
                                                                                                                          include                 fastcgi_params;
                                                                                                                          fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                                                                                                          fastcgi_pass    backend-synthesa;
                                                                                                                  }
                                                                                                                  location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
                                                                                                                     access_log           off;
                                                                                                                     expires                      10d;
                                                                                                                     break;
                                                                                                                  }
                                                                                                                  location ~ /\.ht {
                                                                                                                          deny                    all;
                                                                                                                  }
                                                                                                          }
                                                                                                          
                                                                                                          Т.к. я не шибко админ, то чет туплю и немного не понимаю. Я так понимаю косяк где-то в настройках реврайта для nginx?
                                                                                                          1. Василий Наумкин 14 мая 2013, 16:56 # 0
                                                                                                            Ошибку 500 нужно смотреть в логе сервера.

                                                                                                            Вот еще немного инфы.
                                                                                                            1. Илья Горбаров 15 мая 2013, 08:16 # 0
                                                                                                              Самое странное, что в логах nginx нет ничего про 500. Это меня в тупик поставило.
                                                                                                              1. Илья Горбаров 15 мая 2013, 09:01 # 0
                                                                                                                Спасибо за наводку, кстати.

                                                                                                                Включение отображения ошибок позволило избавится от 500 ошибки, но никакой ошибки не появилось. Странно это.
                                                                                                            2. Wassi Wassinen 27 июня 2013, 21:20 # 0
                                                                                                              Василий, подскажи пожалуйста. У меня назрела необходимость переноса сайта с хостинга на хостинг. Был vps apache+nginx, стал nginx+php5-fpm.
                                                                                                              После переноса сыплет 500 ошибками. Я намучался с правами — сил нет. Люблю бубунту, но иногда от нее мозг кипит. Права выставлять на директорию пользователь: пользователь и для начала 775? При таких, рекурсивно назначенных, правах должно работать нормально? Отчего в админке он показывает замки на файлах?
                                                                                                              1. Василий Наумкин 27 июня 2013, 21:34 # 0
                                                                                                                Используй мои скрипты установки — проблем не будет.
                                                                                                                1. Wassi Wassinen 27 июня 2013, 21:44 # 0
                                                                                                                  У меня перенос, Василий. Да еще и с кучей субдоменов.
                                                                                                                  1. Василий Наумкин 27 июня 2013, 22:30 # 0
                                                                                                                    А, ну это все меняет.

                                                                                                                    Создавай ручками и мучайся с глюками.
                                                                                                                    1. Wassi Wassinen 27 июня 2013, 22:47 # 0
                                                                                                                      Эх. :)
                                                                                                                      1. Wassi Wassinen 27 июня 2013, 22:47 # 0
                                                                                                                        У тебя нет сайтов с поддоменами где ты используешь свою связку? Есть ли смысл мучить?
                                                                                                                2. Богдан 13 августа 2013, 01:45 # 0
                                                                                                                  Василий, спасибо, настроил VPS по твоему топику, все просто летает.

                                                                                                                  Но есть одна проблема — иногда наблюдаются странные глюки с передачей файлов по sftp через FileZilla (через другие клиенты не пробовал). При попытке скачать или загрузить файл на хостинг получаю ошибку — "Превышено время ожидания соединения", и так может быть несколько раз подряд. Потом через какое-то время опять все работает. И так регулярно. Какой либо закономерности возникновения этой ошибки не заметил.

                                                                                                                  У кого нибудь была похожая проблема?
                                                                                                                  1. Василий Наумкин 13 августа 2013, 08:39 # 0
                                                                                                                    Или уменьшай в /root/iptables таймаут подключения (там сейчас 30сек), или увеличивай его в FileZilla.
                                                                                                                  2. Andrey Filin 21 марта 2014, 17:27 # 0
                                                                                                                    Василий, добрый день. Используя getResources, для динамической генерации контента, можно применять конструкции вида &parents=[[+id]]`, &parents=[[+parent]]`
                                                                                                                    Однако pdoResources такого подхода не понимает. Как сделать динамического родителя, не используя конкретный id? Возможно я упустил что-то в документации?
                                                                                                                    1. Михаил 22 мая 2014, 07:39 # 0
                                                                                                                      Всем привет! Такой вопрос. Есть пользователь и папка для него. Захожу через FilleZilla закачиваю файлы, но они становятся от рута. Приходится через консоль менять пользователя. Как это можно исправить?
                                                                                                                      1. Василий Наумкин 22 мая 2014, 08:07 # 0
                                                                                                                        Видимо ты заходишь от рута, а не от юзера.

                                                                                                                        Твой кэп.
                                                                                                                        1. Михаил 22 мая 2014, 08:13 # 0
                                                                                                                          хм, новых пользователей которых мы создаем они не руты. Дальше каталога своего не ходит. А записывает что без прав на открытие(((((((( Ок, буду копать. Что то у меня видать не так
                                                                                                                          1. Василий Наумкин 22 мая 2014, 08:15 # 0
                                                                                                                            Ты когда заходишь в папку и что-то закачиваешь — под каким именем заходишь? Под юзером, или под рутом?

                                                                                                                            Какие права на саму директорию — юзер её владелец, или рут?
                                                                                                                            1. Михаил 22 мая 2014, 08:22 # 0
                                                                                                                              Так, получается я захожу под юзером, которого создал. Права на папку дал юзеру. Скриптом который в статье. И если закачивать файлы или папки под этим юзером по фтп то получается что к ним доступа нету. Но если через сам modx то все ок
                                                                                                                              1. Василий Наумкин 22 мая 2014, 09:25 # 0
                                                                                                                                Что-то у тебя не так.

                                                                                                                                Захожу под юзером, заливаю файл


                                                                                                                                Захожу на сервере — проверяю


                                                                                                                                Захожу в админку — проверяю


                                                                                                                                Как видишь, проблем нет.
                                                                                                                                1. Михаил 22 мая 2014, 09:32 # 0
                                                                                                                                  В общем вот:
                                                                                                                                  Заливаю под пользователем:

                                                                                                                                  Проверяю права:

                                                                                                                                  Смотрю в админке:

                                                                                                                                  И пытаюсь открыть в браузере:


                                                                                                                                  1. Василий Наумкин 22 мая 2014, 09:39 # 0
                                                                                                                                    Ну а теперь включаем логику:
                                                                                                                                    1. Файл заливается правильно
                                                                                                                                    2. Владалец у него верный, но посмотри разрешения — там чтение только для владельца!
                                                                                                                                    3. Nginx открыть файл не сможет, ибо он запущен не от юзера dengi и прав к файлу не имеет.
                                                                                                                                    4. PHP видимо тоже запущен не от dengi, если не может его открыть.

                                                                                                                                    Так что, разбирайся, почему у тебя выставляются такие разрешения на загруженный файл. Скорее всего, чудит сам FileZilla.
                                                                                                                                    1. Михаил 22 мая 2014, 09:48 # 0
                                                                                                                                      Судя по всему php все таки от пользователя.


                                                                                                                                      Сейчас буду копать Filezilla
                                                                                                                                      1. Василий Наумкин 22 мая 2014, 09:52 # 0
                                                                                                                                        Так у тебя там vsftpd — его и копай. Наверняка это он и выставляет разрешения.

                                                                                                                                        У меня в инструкции работа с файлами идёт через SFTP, а не отдельный FTP сервер. Ты бы уж писал сразу, что наворотил там что-то еще, а то только время зря тратим.
                                                                                                                                        1. Михаил 22 мая 2014, 09:53 # 0
                                                                                                                                          Ок, кажется понял. Извиняюсь. Спасибо большое!
                                                                                                                        2. Алексей 26 мая 2014, 14:18 # 0
                                                                                                                          Интересно, на сколько небезопасно прописывать в /etc/ssh/sshd_config
                                                                                                                          AllowTCPForwarding yes
                                                                                                                          для проброса порта mysql для phpstorm?
                                                                                                                          1. Михаил 17 июня 2014, 15:56 # 0
                                                                                                                            Подскажите пожалуйста. Все работало отлично, потом стало вот так http://c2n.me/ikv7ZY. Если вводить левого юзера то просит пароль. В чем может быть проблема?
                                                                                                                            1. Василий Наумкин 17 июня 2014, 16:16 # 0
                                                                                                                              Если вводить левого юзера то просит пароль.
                                                                                                                              А как должно?

                                                                                                                              Ты хочешь, чтобы сервер говорил «юзер не найден» и злоумышленник мог точно подобрать имя существующего, чтобы дальше подбирать уже пароль?
                                                                                                                              1. Михаил 17 июня 2014, 20:02 # 0
                                                                                                                                Об этом я как то не подумал. Но получается я теперь не могу зайти под ssh вообще на сервер. Могу только в веб консоли http://c2n.me/ikDHtJ
                                                                                                                                Подскажите в какую сторону копать((((
                                                                                                                                Из настроек только как в статье
                                                                                                                                1. Василий Наумкин 18 июня 2014, 04:46 # 0
                                                                                                                                  Ну раз доступ есть — смотри ошибки авторизации в /var/log/auth.log

                                                                                                                                  Возможно тебе уже пароль поменяли, или есть какая-то защита от частых входов.
                                                                                                                                  1. Михаил 26 июня 2014, 19:55 # 0
                                                                                                                                    В общем все снес, поставил систему заново. Настроил строго по статье. Все ок заработало. Но не долго. 1 день. ТЕперь опять FileZilla не цепляется(((.
                                                                                                                                    Логи /var/log/auth.log:
                                                                                                                                    Jun 26 11:50:31 Electrica sshd[477]: reverse mapping checking getaddrinfo for 2.133.101.50.megaline.telecom.kz [2.133.101.50] failed - POSSIBLE BREAK-IN ATTEMPT!
                                                                                                                                    Jun 26 11:50:31 Electrica sshd[477]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=2.133.101.50  user=money-all
                                                                                                                                    Jun 26 11:50:34 Electrica sshd[477]: Failed password for money-all from 2.133.101.50 port 22025 ssh2
                                                                                                                                    Jun 26 11:50:34 Electrica sshd[477]: fatal: Read from socket failed: Connection reset by peer [preauth]
                                                                                                                                    
                                                                                                                                    Я так понял типо пароль не подходит. Но он верный. Подскажите, куда копать.

                                                                                                                                    сделал вот так:
                                                                                                                                    root@Electrica:/var/www# sftp money-all@money-all.kz
                                                                                                                                    The authenticity of host 'money-all.kz (188.226.141.107)' can't be established.
                                                                                                                                    ECDSA key fingerprint is f6:bf:1e:62:b7:84:e9:cf:90:79:01:0e:25:74:af:23.
                                                                                                                                    Are you sure you want to continue connecting (yes/no)? y
                                                                                                                                    Please type 'yes' or 'no': yes
                                                                                                                                    Warning: Permanently added 'money-all.kz,188.226.141.107' (ECDSA) to the list of known hosts.
                                                                                                                                    money-all@money-all.kz's password:
                                                                                                                                    Write failed: Broken pipe
                                                                                                                                    Couldn't read packet: Connection reset by peer
                                                                                                                                    
                                                                                                                                    Может это поможет еще подсказать?
                                                                                                                                    1. Михаил 26 июня 2014, 20:48 # 0
                                                                                                                                      В общем нашел проблему:
                                                                                                                                      #!/bin/bash
                                                                                                                                      user=site1
                                                                                                                                      dir=/var/www/$user/www
                                                                                                                                      
                                                                                                                                      chown -R $user:$user "$dir";
                                                                                                                                      find "$dir" -type d -exec chmod 0755 '{}' \;
                                                                                                                                      find "$dir" -type f -exec chmod 0644 '{}' \;
                                                                                                                                      Вот эта строка:
                                                                                                                                      dir=/var/www/$user/www
                                                                                                                                      Меняет права на www директорию. Если по ней то все ок. Но в таком случае не загружает файлы с админки modx. Я делал без www с админки все грузит но не работает sftp так как директория выше www уже не root. Получается я просто запускаю скрипт с www и сам вручную меняю директорию сайта на root и все ок все работает. Может я где не прав, подскажите?
                                                                                                                            2. Алексей 04 июля 2014, 20:38 # 0
                                                                                                                              Седня закончилось место на linode тариф за 30$ — 70 гигов SSD. 30 сайтов, из них 4 интернет-магазина — остальное визитки, и так, всякие проекты не особо активные. В общем был виноват дропбокс. Старина создавал в каталоге /tmp временные файлы аш на 40 гигабайт. В связи с этим планирую переходить на Dropbox-Uploader. + ко всему достало, что дропбокс все ночные бэкапы перекэширует ежедневно, чем сильно нагружает VPS. Есть ли у кого-нибудь опыт настройки данного скрипта? (он, на сколько я понял, способен закачивать файлы на дропбокс, также может удалять с него файлы).
                                                                                                                              1. Василий Наумкин 05 июля 2014, 05:57 # 0
                                                                                                                                Я использовал этот скрипт, давно. Он пожирал всю память и вис напрочь, наверное, что-то не так настроил

                                                                                                                                На данный момент перешел на Яндекс.Диск, использую его официальный клиент — работает быстро и нетребователен к ресурсам.
                                                                                                                                Один недостаток — надо переодически заходить на сам сервис и чистить корзину.

                                                                                                                                От Dropbox отказался полностью.
                                                                                                                                1. Алексей 05 июля 2014, 06:48 # 0
                                                                                                                                  Да, похоже нужно переезжать на что-то более вменяемое, либо разбираться с дропбоксом. За одну ночь попка /tmp выросла на 800мб.
                                                                                                                                  Хочу еще апгрейдить и сами бэкапы, в связи с этим вопрос: duplicity может создавать инкрементальные архивы баз данных mysql?
                                                                                                                                  1. Василий Наумкин 05 июля 2014, 07:07 # 0
                                                                                                                                    Если складывать бэкап в один и тот же файл — то он будет меняться и инкрементально резервироваться, по идее.
                                                                                                                                  2. Алексей 05 июля 2014, 06:51 # 0
                                                                                                                                    странно, судя по описанию github.com/andreafabrizi/Dropbox-Uploader там нечему виснуть и забивать память. будем разбираться
                                                                                                                                    1. Василий Наумкин 05 июля 2014, 07:09 # 0
                                                                                                                                      Не факт, что я использовал именно его. Там вроде на python что-то было.

                                                                                                                                      В любом случае, сейчас меня Яндекс полностью устраивает, менять не хочу.
                                                                                                                                2. Любовь 30 июля 2014, 15:37 # 0
                                                                                                                                  Вопрос следующий. Как грамотно обновить пакеты, версию линукса и прочее при рабочем сервере без потерь и с минимальными правками потом? Какие файлы забэкапить?
                                                                                                                                  1. Владимир 02 августа 2014, 14:07 # 0
                                                                                                                                    Доброго дня, Василий!
                                                                                                                                    Хочу по твоей инструкции настроить очередной сервер на digitalocean.com
                                                                                                                                    Так как твоя инструкция для Ubuntu (а я ставил ранее Centos 6. x64), то подскажи что из предлагаемого выбрать:
                                                                                                                                    Ubuntu 14.04 x64
                                                                                                                                    Ubuntu 14.04 x32
                                                                                                                                    Ubuntu 12.04.4 x64
                                                                                                                                    Ubuntu 12.04.4 x32
                                                                                                                                    Ubuntu 10.04 x64
                                                                                                                                    Ubuntu 10.04 x32
                                                                                                                                    И отдельный вопрос по Ajenti: ее ставить на каком этапе, сразу после создания нового sudo пользователя? (до этого я пользовался панелью vestacp.com/, теперь хочу отказаться от нее)
                                                                                                                                    Спасибо.
                                                                                                                                    1. Василий Наумкин 02 августа 2014, 15:29 # 0
                                                                                                                                      Нужно брать последнюю LTS версию, сейчас это Ubuntu 14.04 x64.

                                                                                                                                      Ajenti можно ставить когда угодно — влияет только на удобство управления сервером.
                                                                                                                                      1. Володя 02 августа 2014, 16:40 # 0
                                                                                                                                        а можно по этой инструкции поставить Centos как и раньше ставил. Она вполне применима.
                                                                                                                                        1. Владимир 03 августа 2014, 00:15 # 0
                                                                                                                                          Интересно бы сравнить CentOS 7 x64 vs Ubuntu 14.04 x64
                                                                                                                                        2. Алексей 02 августа 2014, 20:58 # 0
                                                                                                                                          чем не понравилась панель vestacp.com? если не секрет. Уже давно хочу перейти на ajenti 1.0, сейчас сижу на 0.6.3, но хочу по-новой запустить сервер на linode — в последний раз, когда наконец-то установил этот несчастный redmine, понял что напихал кучу лишних пакетов\зависимостей, разгребать которые и удалять не нужные — очень заморочено — для меня проще поднять новый сервер и туда все заново установить с чистого листа.
                                                                                                                                          1. Владимир 03 августа 2014, 00:21 # 0
                                                                                                                                            С одной стороны жаловаться на vestacp.com — бесплатный продукт, как то неприлично, а что не устраивает, вот сразу после сравнения с Ajenti скажу. Сейчас есть вопросы, ввиду того что Весту я использую на Таймвебе и на Digitalocean, очень по разному создаются бэкапы по крону, т.е. при одинаковом количестве сайтов размеры бэкапов отличаются на порядок. Стабильно падает MySQL, вроде при чем тут Веста, но этот вопрос поднимается именно на их форуме и много раз. И т.п.
                                                                                                                                        3. Сергей Росоловский 24 сентября 2014, 10:53 # 0
                                                                                                                                          Ммм, все получилось, кроме того что не пускает юзеров по sftp. Видать есть неизвестные мне моменты настройки sftp? Правда настраивал я все в CentOS6. Может подскажет кто как надо правильно?
                                                                                                                                          1. Михаил 24 февраля 2015, 17:27 # 0
                                                                                                                                            Для 301 с www на без www надо добавить в конфиг:

                                                                                                                                            server{
                                                                                                                                                listen 80;
                                                                                                                                                server_name www.modx.kz;
                                                                                                                                                return      301 http://modx.kz$request_uri;
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            server {
                                                                                                                                                listen              80;
                                                                                                                                                server_name         modx.kz;
                                                                                                                                                root                /var/www/modx-kz/www;
                                                                                                                                                access_log          /var/log/nginx/modx-kz-access.log;
                                                                                                                                                error_log           /var/log/nginx/modx-kz-error.log;
                                                                                                                                                index               index.php;
                                                                                                                                                rewrite_log         on;
                                                                                                                                                location /core/ {                                                                                                                                                  $
                                                                                                                                                    deny all;                                                                                                                                                      $
                                                                                                                                                }
                                                                                                                                                location / {
                                                                                                                                                    try_files       $uri $uri/ @rewrite;
                                                                                                                                                }
                                                                                                                                                location @rewrite {
                                                                                                                                                    rewrite         ^/(.*)$ /index.php?q=$1;
                                                                                                                                                }
                                                                                                                                                location ~ \.php$ {
                                                                                                                                                    include         fastcgi_params;
                                                                                                                                                    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                                                                                                                                    fastcgi_pass    backend-modx-kz;
                                                                                                                                                }
                                                                                                                                                location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|bmp)$ {
                                                                                                                                                   access_log       off;
                                                                                                                                                   expires          10d;
                                                                                                                                                   break;
                                                                                                                                                }
                                                                                                                                                location ~ /\.ht {
                                                                                                                                                    deny            all;
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            
                                                                                                                                            
                                                                                                                                            1. Roman 08 мая 2015, 14:23 # 0
                                                                                                                                              Спасибо за отличную статью! Настроил. Почты всё работает. Но нашел один баг, который не могу исправить.

                                                                                                                                              Modx Evo 1.0.15.

                                                                                                                                              Есть страница. Назовем ее Новости. Дочерними ресурсами в ней выступают другие страницы собственно с телом новостей.

                                                                                                                                              На странице Новости подключен скрипт
                                                                                                                                              [!Ditto? &tpl=`ditto_news` &sortBy=`createdon` &summarize=`4` &dateFormat=`%d.%m.%Y` &truncText=`>>` &paginate=1!]
                                                                                                                                              Стр.: [+pages+]


                                                                                                                                              Страница Новости сделана Первой страницей сайта (Инструменты — Конфигурация- Введите ID ресурса, который вы хотите использовать как стартовую (домашнюю) страницу. )

                                                                                                                                              Сервер NGINX выводит код сниппета
                                                                                                                                              [+pages+]
                                                                                                                                              как
                                                                                                                                              http://sitename/modxevo/&start=12
                                                                                                                                              Сервер Apache выводит код сниппета
                                                                                                                                              [+pages+]
                                                                                                                                              как
                                                                                                                                              http://sitename/modxevo/index.php?id=1&start=12
                                                                                                                                              Проблема в том, что NGINX если сделать страницу Главной, съедает префикс index.php?

                                                                                                                                              Причем проблема наблюдается, если сделать страницу Главной. Если Главной сделать другую страницу, то генерация ссылки происходит нормально.

                                                                                                                                              Я так понимаю проблема где то в настройка NGINX mod_rewrite…
                                                                                                                                              1. Roman 10 мая 2015, 01:15 # 0
                                                                                                                                                Уже на надо. Вопрос закрываю.
                                                                                                                                              2. Александр 04 июня 2015, 01:43 # 0
                                                                                                                                                Весь инет перерыл не могу найти как решить эту ошибку:
                                                                                                                                                ERROR: An another FPM instance seems to already listen on /var/run/php5-site1.sock
                                                                                                                                                ERROR: FPM initialization failed
                                                                                                                                                1. Василий Наумкин 04 июня 2015, 07:32 # 0
                                                                                                                                                  Вот прям весь? Запрос в Google, вторая ссылка, читать под Resolution.

                                                                                                                                                  Если уж совсем плохо с языком вероятного противника — просто перезагрузи сервер, должно помочь.
                                                                                                                                                  1. Александр 04 июня 2015, 10:05 # 0
                                                                                                                                                    Я это решение делал, почему-то не помогло оно мне. Попробую сегодня еще раз. Но кстати, я перегружал сервер и не ушла эта ошибка.
                                                                                                                                                    Эх, понимаю достали вас нубские вопросы, но вчера весь вечер сидел, пытался решить проблему, лишь бы тут лишний раз не писать.
                                                                                                                                                2. Vladimir 20 июня 2015, 03:53 # 0
                                                                                                                                                  А в конфиге /etc/php5/fpm/pool.d/site1.conf пользователя и группу для сокета не нужно указывать? Например listen.owner = site1/listen.group = site1?
                                                                                                                                                  Вы должны авторизоваться, чтобы оставлять комментарии.