Правильный хостинг для MODX Revolution
Топик рассказывает о настройке быстрого и недорогого хостинга для MODx Revolution. В принципе, вещи тут описаны общие, так что информация подойдет для любой CMS.
На всякий случай, приложу видео, как должна работать админка MODx Revo.
Для быстрой и комфортной работы желательно:
— Быстрый браузер — Google Chrome. Админка Revo работает в нем молниеносно
— Хороший интернет-канал. Тут без вариантов, нужно всем и всегда.
— Качественный хостинг — про него и пишу.
В итоге у меня вообще получились скрипты автоматической установки для серверов, настроенных по этой статье. И даже видео-инструкция.
Я работал с разными хостингами. Начинал на Peterhost, затем переехал на Clodo, потом Selectel и параллельно Scalaxy. Также немного поработал с Hetzner.
Хорошие все, но по совокупности субъективных вещеймне больше нравится облако Selectel я выбираю Linode.
Для установки я беру Ubuntu x32 (меньше кушает памяти, чем х64). Установка ОС идет минут 15, после нее в свойствах машины ищем «Пароль при установке». Это пароль root.
На сервер идем через Putty. В настройках Translation ставим UTF-8.
User: root
Password: из панели
Первым делом создаем нового юзера и добавляем его в группу sudo:
Перезапускаем ssh:
Первым делом
На этом месте большинству не-Linux юзеров изрядно похорошело при виде синих окошек, вместо черной консоли. А консоль по-прежнему можно быстро увидеть, нажав Ctrl+O.
С этого момента команды можно вводить и без sudo — вы уже работаете в нем из mc.
Немного настроим firewall.
Создаем файл iptables (touch /root/iptables), вносим в него такие строки:
Делаем его исполняемым — sudo chmod +x /root/iptables
И вносим вызов этого файла в /etc/rc.local — и скрипт будет вызываться при запуске. Вообще, все что вы хотите запускать при старте — пишем сюда.
Можно еще установить sendmail для отправке почты с сайта, но Revo позволяет работать напрямую с smtp сервером для отправки почты — что я вам и советую настроить. Лучше сразу подключить почту для домена от Яндекс или Google.
Полдела сделано.
Это дает нам 2 преимущества: меньшее потребление памяти и запуск разных сайтов от разных юзеров. То есть, при взломе одного сайта — остальные не пострадают.
FTP на сервер мы вообще не установили, потому что заливать файлы сайта мы будем через SFTP (используем WinCSP для этого), а редактировать через Notepad++ (там есть плагин для sftp).
Создаем группу sftp (addgroup sftp) и настраиваем для нее доступ через ssh.
Добавляем в конец /etc/ssh/sshd_config
Рядом в /etc/nginx/fastcgi_params комментим строку про https, а не то потом будет ругаться:
Наш конфиг подгружает сайты из директории /etc/nginx/sites-enabled/, а рядом есть /etc/nginx/sites-available/.
В первой директории лежат симлинки активных сайтов на файлы конфигов из второй директории. Такой подход позволяет быстро включать\отключать виртуальные хосты без редактирования — а просто удалив\создав symlink.
Стандартный конфиг сайта /etc/nginx/sites-available/site1.conf
Следующий сайт можно создать просто скопировав конфиг этого и поменяв site1 на site2.
После создания конфига не забываем создать символическую ссылку на конфиг:
Основную конфигурацию /etc/php5/fpm/php-fpm.conf мы трогать не будем, просто удостоверимся, что внизу файла есть строчка
Мы настроили быстрый, недорогой сервер на облаке, с платой за потребление, который очень экономично кушает ресурсы. Для добавления сайтов нужно:
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
Updated.
Сделал скрипты автоматической установки для серверов, настроенных по этой статье.
Updated 2
Написал статью по подключению MemCached к MODX.
Updated 3
Крайне рекомендую ознакомиться со статьей по настройке резервного копирования вашего сервера.
Update 4
После разных аварий на Selectel и веселых изменений у Scalaxy я переехал на Linode. Как говорится, настроил и забыл.
На всякий случай, приложу видео, как должна работать админка MODx Revo.
Для быстрой и комфортной работы желательно:
— Быстрый браузер — Google Chrome. Админка Revo работает в нем молниеносно
— Хороший интернет-канал. Тут без вариантов, нужно всем и всегда.
— Качественный хостинг — про него и пишу.
В итоге у меня вообще получились скрипты автоматической установки для серверов, настроенных по этой статье. И даже видео-инструкция.
Я работал с разными хостингами. Начинал на Peterhost, затем переехал на Clodo, потом Selectel и параллельно Scalaxy. Также немного поработал с Hetzner.
Хорошие все, но по совокупности субъективных вещей
Установка ОС и настройка 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. Как говорится, настроил и забыл.
Комментарии: 226
ситуация такая: сделал все как в гайде, соответственно у меня есть 2 учетки под которыми я могу войти на сервер через сфтп: моя учетка которую я создавал в самом начале, и учетка site1. Залил движок на сервер но установить не могу, пишет что нет прав для папки core/cache. Но под какой бы учеткой я не заходил на сервер через сфтп (клиент filezilla) я не могу изменить права для этой папки, пишет что у меня нет прав. Как быть? Что я не так делаю
В конце заметки скрипт, который выставляет нужные права на директории и файлы. Просто укажите верного юзера (там сейчас 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 '{}';
После этого проблем быть не должно. Если что — пишите, разберемся.
Запускать нужно из консоли, от суперюзера. Для этого зайдите на сервер по 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 '{}';
После этого проблем быть не должно. Если что — пишите, разберемся.
Спасибо за ответ) Еще вопрос: создал аналогично первому, второй сайт site2, разобрался как через удаление и добавление симлинков переключатся на другой сайт, а можно ли сделать чтобы одновременно работал и тот и другой сайт?
Вот пример.
Справа доступные конфиги, слева — симлинки на них.
Справа доступные конфиги, слева — симлинки на них.
а что нужно прописать в конфиге сайта2 в строке server_name? Если у меня например на первом сайте сервер нейм просто айпишник моего сервера, и сайт доступен по нему, то второй сайт тогда где будет? нужно писать к примеру айписервера/site2? или как
Вам нужно купить доменное имя, назначить ваш ip и создавать поддомены.
К примеру — у меня есть bezumkin.ru и я могу неограниченно создавать site1.bezumkin.ru, site2.bezumkin.ru и т.д., все на одном ip. Это называется «виртуальный хост».
Почитайте про основы DNS, например тут — ru.wikipedia.org/wiki/DNS
К примеру — у меня есть bezumkin.ru и я могу неограниченно создавать site1.bezumkin.ru, site2.bezumkin.ru и т.д., все на одном ip. Это называется «виртуальный хост».
Почитайте про основы DNS, например тут — ru.wikipedia.org/wiki/DNS
Спасибо за ответы, всё получилось, если возникнут вопросы еще — спрошу. А сейчас хочу спросить насчет статьи про memcached, а именно, как его правильно удалить? ато возникли некоторые проблемы после его установки, хочу пока что удалить его
Это лучше в той статье и спросить =)
Настроил VDS хостиг (Слабенький 300cpu; 256 озу), к сожалению не видел как работает админка до проделанной работы, но после… просто ужас. Не ужто не хватает этого хостинга (на обычном виртуальном все на много быстрее )
revo 2.2.4 Чистая.
Про комментируйте…
revo 2.2.4 Чистая.
Про комментируйте…
300 Mhz CPU?
У моего телефона 800 MHz
У моего телефона 800 MHz
Но судя по статистике нагрузка CPU 10-12%; ОЗУ 9-14%
Даже не знаю, что вам ответить.
Видимо, моя инструкция не такая уж и хорошая =(
Видимо, моя инструкция не такая уж и хорошая =(
Не знаю почему но, без ngnix все гораздо быстрее
Буду иметь в виду, спасибо.
Простите я не понял, это опять некий сарказм?
Спасибо за инструкцию, оживил умерший сервер на старом дебиане и апаче
В смысле, он воскрес на Ubuntu и Nginx?
воскрес на дебиане и энжиниксе и теперь можно удобно делать конфигурации хостов с симлинками
У селектел тоже вроде с 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 перестал работать даже не знаю почему, боюсь придется отменять все. Интересно, Василий, как Вы с поступили с почтой?
на амазоне бесплатный micro и тот мощнее, у меня там немного другая конфигурация, стоит простенькая панелька которая потянула за собой все сервисы. Работает отлично, крутятся несколько сайтов (про скорость не скажу т.к. инет у меня тормозной), cейчас проблема настроить почтовый сервер. По умолчанию все нормально уходило через внешний smtp на gmail, но в результате экспериментов, записи в dns прописан Pdd yandex (по мануалу как тут maxidrom.net/archives/657) mail.site.com ведет на почту, но внешний smtp перестал работать даже не знаю почему, боюсь придется отменять все. Интересно, Василий, как Вы с поступили с почтой?
Тут речь про облако Selectel — а там 8 ядер. Загрузить этот процессор надо сильно постараться.
С почтой я поступаю просто — настраиваю, чтобы работала. Для моих нужд хватает Sendmail. Баг с отправкой почты самому себе лечу так — serverfault.com/questions/102647/sendmail-to-local-domain-ignoring-mx-records-part-2
Возможно, пора написать заметку про настройку почты на сервере.
С почтой я поступаю просто — настраиваю, чтобы работала. Для моих нужд хватает Sendmail. Баг с отправкой почты самому себе лечу так — serverfault.com/questions/102647/sendmail-to-local-domain-ignoring-mx-records-part-2
Возможно, пора написать заметку про настройку почты на сервере.
Не очень знаком с виртуализацией в облаках, не верить вам причин нет.) Заметку ждем и большое спасибо за труд! Как только накопится по-больше таких заметок думаю тоже уйду от панелек на хардкор консоль))
Облако — это модель учета ресурсов и оплаты. Принципиально от VPS оно не отличается.
Заметку поставил в план.
Заметку поставил в план.
Спасибо за топик, во многом помог разобраться, раньше пользовался уже настроенными хостингами.
Единственный вопрос, который недопонял — а как поковырять базу?
Обычно использовал phpmyadmin, но вроде для него нужнен апач, а тут он не устанавливается.
Единственный вопрос, который недопонял — а как поковырять базу?
Обычно использовал phpmyadmin, но вроде для него нужнен апач, а тут он не устанавливается.
Спасибо!
А как сделать так чтобы через конфиг сайта подключался 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;
}
но выдает чистую страницу.
Что я делаю не так подскажите пожалуйста.
внес в конфиг следующие строки, предварительно установив 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;
}
но выдает чистую страницу.
Что я делаю не так подскажите пожалуйста.
проблема решилась
добавил в php.ini
open_basedir = /usr/share/phpmyadmin/
добавил в php.ini
open_basedir = /usr/share/phpmyadmin/
Василий, здравствуйте.
Я проделал всё, как в инструкции и все вроде получилось, Modx установился нормально, но при попытке сделать service nginx restart и service php5-fpm restart я получаю ошибки следующего характера. При этом веб-сервер работает нормально. Помогите, пожалуйста разобраться. Спасибо.
Я проделал всё, как в инструкции и все вроде получилось, Modx установился нормально, но при попытке сделать service nginx restart и service php5-fpm restart я получаю ошибки следующего характера. При этом веб-сервер работает нормально. Помогите, пожалуйста разобраться. Спасибо.
Перезагрузите сервер, а потом попробуйте рестартовать с sudo.
Спасибо, это частично помогло. Теперь php5-fpm restart — всё ок, но при попытке сделать nginx restart, я получаю следущее сообщение: piccy.info/code2/3406415/bd4f1993391ab19eb4e10c11edc76610/
Смотрите синтаксис файла конфига, где-то что-то не так. Или точку с запятой не поставили, или еще что.
В заметке копия этого файла — сверьте с ней.
В заметке копия этого файла — сверьте с ней.
Проверил файл конфига несколько раз, сверил с примером, перезагрузил сервер, но тоже самое…
Выложите файл на https://gist.github.com/
Вот https://gist.github.com/3487654
Вроде все верно.
Эта директива больше нигде не встречается (в другом файле)?
Пришлите данные от ssh мне на почту.
Эта директива больше нигде не встречается (в другом файле)?
Пришлите данные от ssh мне на почту.
Как выяснилось, это баг сборки Nginx 1.2.2
https://bugs.launchpad.net/nginx/+bug/1033856
Надо было просто сделать
sudo apt-get install nginx-common, чтобы обновить пакет — и все ок.
https://bugs.launchpad.net/nginx/+bug/1033856
Надо было просто сделать
sudo apt-get install nginx-common, чтобы обновить пакет — и все ок.
Спасибо большое!
Подскажите пожалуйста, как правильно добавить поддомен так, чтобы потом создать сайт по на этом поддомене в отдельном контексте. Переношу сайт с другого хостинга, там уже контексты настроены, вопрос только в добавлении поддомена.
Просто добавить сюда, через пробел
server_name site1.domain.ru site2.domain.ru;
server_name site1.domain.ru site2.domain.ru;
А изменения сразу должны вступить в силу? Я прописал, но поддомены всё равно не работают. Прописываю в конф. файле сайта, в /etc/nginx/sites-available
sudo service nginx restart
Ну и в вашем ДНС сервере эти имена должны ссылаться на новый сервер, чтобы он мог ответить на запросы.
Ну и в вашем ДНС сервере эти имена должны ссылаться на новый сервер, чтобы он мог ответить на запросы.
Перезагрузку сервисов я сделал.
У меня домен зарегистрирован на nic.ru. Мне нужно там прописать поддомены?
У меня домен зарегистрирован на nic.ru. Мне нужно там прописать поддомены?
Да. Нужно присвоить вашим доменам новый ip.
Почитайте, что ли, про DNS.
Почитайте, что ли, про DNS.
Про IP я понял. На nic.ru прописал NS хостера для основного домена, а в конф. файле я прописываю субдомены. Так у меня было устроено на предыдущем хостинге. Сейчас по этой схеме не получается…
Видимо nic.ru не собирается обслуживать чужие ip и предлагает вам указать свой собственный DNS сервер.
Используйте бесплатный от яндекса https://pdd.yandex.ru/help/section9/
В nic.ru указываете сервера Яндекс, на Яндексе — соотношение своих доменов и ip сервера.
Потом ждете полдня\день, пока все обновится.
Проверять состояние можно тут whois7.ru/
Используйте бесплатный от яндекса https://pdd.yandex.ru/help/section9/
В nic.ru указываете сервера Яндекс, на Яндексе — соотношение своих доменов и ip сервера.
Потом ждете полдня\день, пока все обновится.
Проверять состояние можно тут whois7.ru/
Я понял, спасибо.
Раньше modx-test.com был на Selectel? Каким образом Вы делали создание поддоменом?
Раньше modx-test.com был на Selectel? Каким образом Вы делали создание поддоменом?
В DNS можно прописать *.sitename.ru — и тогда все поддомены будут ломиться на нужный ip.
Если nginx им ответит — то получат нужный сайт.
Если nginx им ответит — то получат нужный сайт.
Спасибо большое! Попробую так сделать.
Василий! Ай нид хелп! Разобрался с сайтами, все завелось, все работает, одно но не дает мне покоя.
Почему я могу зайти на site.com, но на www.site.com получаю отлуп? Что поменять в филармонии, чтобы заработали www. поддомены автоматически для всех создаваемых сайтов?
Спасибо за ответ и еще раз спасибо за такой полезный мануал.
Почему я могу зайти на site.com, но на www.site.com получаю отлуп? Что поменять в филармонии, чтобы заработали www. поддомены автоматически для всех создаваемых сайтов?
Спасибо за ответ и еще раз спасибо за такой полезный мануал.
В конфиге nginx нужно указать все возможные адреса сайта вот здесь:
server_name site1.domain.ru;
У вас должно быть что-то типа
server_name site1.domain.ru www.site1.domain.ru;
server_name site1.domain.ru;
У вас должно быть что-то типа
server_name site1.domain.ru www.site1.domain.ru;
Только что посмотрел, в .conf — указано и с www, и с без www
Так что у вас в статье и в скрипте все без ошибок.
Перезапустил nginx — ничего.
Потом догадался — начал пинговать. На www.site.com дает «cannot resolve www.site.com: Unknown host»
Гугл в помощь. Директива CNAME, как синоним для доменов. Управление доменами в облаке Селектел. Смотрю, A-запись есть, NS-ы есть. Прописываю CNAME.
Жду.
Василий, правильно ли я жду или надо копать в другом месте? :)
Так что у вас в статье и в скрипте все без ошибок.
Перезапустил nginx — ничего.
Потом догадался — начал пинговать. На www.site.com дает «cannot resolve www.site.com: Unknown host»
Гугл в помощь. Директива CNAME, как синоним для доменов. Управление доменами в облаке Селектел. Смотрю, A-запись есть, NS-ы есть. Прописываю CNAME.
Жду.
Василий, правильно ли я жду или надо копать в другом месте? :)
Правильно ждете.
Доменные записи можно проверять вот тут — whois7.ru/?s=ip. Оба ваши имени должны указывать на ip вашего сервера.
Доменные записи можно проверять вот тут — whois7.ru/?s=ip. Оба ваши имени должны указывать на ip вашего сервера.
Да, все заработало.
Может стоит написать в статью, как добавлять доменные имена в Селектел? ) А то будут мучаться, как я, бедняга ))
Может стоит написать в статью, как добавлять доменные имена в Селектел? ) А то будут мучаться, как я, бедняга ))
ДНС — это базовые знания об интернет.
Каждый должен сам разобраться в этой азбуке — кому надо, конечно.
Каждый должен сам разобраться в этой азбуке — кому надо, конечно.
если кому надо, я собрал виртуальную машину на ArchLinux c данными скриптами
rutracker.org/forum/viewtopic.php?t=4189339
позже обновлю версию, сейчас пропущена архивация и memcached…
rutracker.org/forum/viewtopic.php?t=4189339
позже обновлю версию, сейчас пропущена архивация и memcached…
Отличное начинание.
Попробую сделать такую машину, только на Ubuntu. Спасибо!
Попробую сделать такую машину, только на Ubuntu. Спасибо!
Вы не сталкивались с проблемой медленного копирования файлов по SFTP на Linode? (настроил все так, как описано в вашей статье)
Маленькое дополнение, не нашол здесь (может не увидел). Для отображения русских месяцев нужна локаль RU, её нету по умолчанию, для этого выполняем одну команду в консоле.
apt-get install language-pack-ru-base
apt-get install language-pack-ru-base
Это влияет только на консоль. На работу сайтов — никак.
По моему мнению, работать в консоли сервера на русском — извращение. Мало того, что перевод не всегда верный, так и в критических ситуациях кодировка сбивается. Кракозябры в режиме восстановления вас не обрадуют.
Все мои сервера работают строго на родном для них языке — английском.
По моему мнению, работать в консоли сервера на русском — извращение. Мало того, что перевод не всегда верный, так и в критических ситуациях кодировка сбивается. Кракозябры в режиме восстановления вас не обрадуют.
Все мои сервера работают строго на родном для них языке — английском.
нет — не консоль. Если в консоле введёшь команду locale — то будет только английская.
При использовании даты в модексе все месяца будут отображаться в английском формате. Хоть в php.ini и установишь intl.default_locale в русский — всё равно его не будет.
По крайней мере я сейчас с этим боролся. как только установил русские локали — на сайте всё гуд — по русски месяца
При использовании даты в модексе все месяца будут отображаться в английском формате. Хоть в php.ini и установишь intl.default_locale в русский — всё равно его не будет.
По крайней мере я сейчас с этим боролся. как только установил русские локали — на сайте всё гуд — по русски месяца
А я просто прописываю в системных настройках локаль — и работает.
в консоле набери просто locale — есть русский или нету?
оки — я тоже после установки набрал, так-же само, русского не видно. Но на сайте русский появился.
Возможно заблудился гдето.
Возможно заблудился гдето.
Подозреваю, что жирная Ubuntu уже все в себе имеет.
Это ж не диетический Debian.
Это ж не диетический Debian.
+ к всему в самой админке все даты стали на русском языке.
До этого не выводились.
До этого не выводились.
MODX Revolution.
Ни дня без сюрприза =)
Ни дня без сюрприза =)
вопрос — у тебя отображаются месяца по русски без снипета (которым переводишь)?
Да. На серваке локаль отдельно ни разу не ставил.
Linode, по твоему совету.
Linode, по твоему совету.
тему закрыли, это я в ручную удалил все локали на сервере :)
Укажите пожалуйста что файла /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
взято отсюда: bugs.debian.org/cgi-bin/bugreport.cgi?bug=619104 а конкретнее git.debian.org/?p=pkg-php/php.git;a=commitdiff_plain;h=0210cec984a6c97e1e9166cb5ac60d751f57ec9f
Спасибо, указал.
Спасибо за великолепный мануал!
Сделал все по инструкции, только пока не устанавливал MODX. Решил зайти по IP, увидел приветствие Welcome to nginx!, потом создал в /var/www/site1/www файл index.html, перезагрузил браузер в надежде увидеть содержимое index.html, а увидел снова приветствие Nginx.
Подскажите, пожалуйста, в чем может быть причина?
Сделал все по инструкции, только пока не устанавливал MODX. Решил зайти по IP, увидел приветствие Welcome to nginx!, потом создал в /var/www/site1/www файл index.html, перезагрузил браузер в надежде увидеть содержимое index.html, а увидел снова приветствие Nginx.
Подскажите, пожалуйста, в чем может быть причина?
1. У меня в конфиге индексный файл только Index.php, html там нет.
Можно сделать так:
Можно сделать так:
index index.php index.html;
2. Судя по тому, что Nginx вас приветствует, а не говорит 403 Forbidden — вы попадает на дефолтный сайт, а не на свой. Значит, нужно разбираться с ДНС.
Спасибо большое!
Первый способ проблему не решил.
Скажите, а где этот ДНС находится, нужно писать в супорт Селекту?
Мой IP 37.200.68.117, который отдает приветствие Nginx.
Первый способ проблему не решил.
Скажите, а где этот ДНС находится, нужно писать в супорт Селекту?
Мой IP 37.200.68.117, который отдает приветствие Nginx.
Для начала почитать про DNS.
Если вы открываете сайт не по имени, а по ip — то всегда и будет открываться стандартный. Для работы разных сайтов на одном ip и придумали доменные имена.
В общем, гуглите. Это азбука, дальше объяснять — время терять.
Если вы открываете сайт не по имени, а по ip — то всегда и будет открываться стандартный. Для работы разных сайтов на одном ip и придумали доменные имена.
В общем, гуглите. Это азбука, дальше объяснять — время терять.
Понятно, спасибо!
Создал два сайта site1 и site2. Во втором поменял везде как вы пишите site1 на site2 — все остальное без изменений. На обоих сайтах положил одинаковый файл с содержимым <? echo exec('whoami'); ?>
Открываю site1 и вижу вывод скрипта как и ожидается site1. Но стоит жать F5 несколько раз как начинает выводиться site2. Два раза site1 и два раза site2 и так по кругу. На втором сайте все точно также. Причем если /etc/php5/fpm/pool.d/site2.conf переименовать чтобы при запуске не подхватывался, то оба сайта все равно работают, но показывают site1 постоянно (без переключения пользователя). Что это и как с этим бороться?
Открываю site1 и вижу вывод скрипта как и ожидается site1. Но стоит жать F5 несколько раз как начинает выводиться site2. Два раза site1 и два раза site2 и так по кругу. На втором сайте все точно также. Причем если /etc/php5/fpm/pool.d/site2.conf переименовать чтобы при запуске не подхватывался, то оба сайта все равно работают, но показывают site1 постоянно (без переключения пользователя). Что это и как с этим бороться?
Извините — сам же и разобрался. Не внимательно скопировал секцию location ~* \.php$
Спасибо за ваш труд — мануал отличный!
Спасибо за ваш труд — мануал отличный!
На здоровье!
Василий, Вы рекомендовали использовать серверы Yandex или Google для отправки почты с сайта на MODx Revo.
Вы не могли бы подсказать, как правильно настроить сам MODx для корректной работы с Яндекс? В сети детальной информации по этому вопросу не нашел, и с наскоку настроить тоже не удалось.
Вы не могли бы подсказать, как правильно настроить сам MODx для корректной работы с Яндекс? В сети детальной информации по этому вопросу не нашел, и с наскоку настроить тоже не удалось.
Для начала региститируете себе ящик для домена у Гугла или Яндекса.
Прописываете mx записи для домена. Ждете пока они обновятся.
В настройках MODX раздел Почта:
Прописываете 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
Этого должно быть достаточно!
У меня так с 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
, '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
Denys Butenko, Rasul Abu Muhammad Amin, спасибо за ваши ответы!
Работает по обеим версиям :)
Работает по обеим версиям :)
Здравствуйте.
Подскажите пожалуйста какое значение &from нужно укзать для Formit?
Никак он у меня работать не хочет :(
Подскажите пожалуйста какое значение &from нужно укзать для Formit?
Никак он у меня работать не хочет :(
вызов типа такого
[[!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>`
]]
Здравствуйте люди. Подскажите пожалуйста. У меня VPS на нем Ubuntu 11.04, Панель ISP manager lite. При создании сайта php можно установить двумя способами:
-как модуль Apache;
-как CGI.
Я так понял, устанавливать следует «как CGI»?
-как модуль Apache;
-как CGI.
Я так понял, устанавливать следует «как CGI»?
Эта инструкция как раз для того, чтобы не использовать панели, типа ISP.
Она вам такого наконфигурирует, во век не разгребёте.
Она вам такого наконфигурирует, во век не разгребёте.
значит надо работать через Putty, через консоль? блин, тяжко будет
В заметке всё написано так, чтобы тупо копипастить — и работало.
Не знаю, что тут может быть сложного.
В любом случае, эти знания очень пригодятся в будущем. Навыки администрирования GNU/Linux никому не мешают.
Не знаю, что тут может быть сложного.
В любом случае, эти знания очень пригодятся в будущем. Навыки администрирования GNU/Linux никому не мешают.
По опыту установки своему могу сказать, что, если в начале выделить немного времени на знакомство с хоткеями консоли и mc всё ставится быстро. Не бойтесь. Потом только рады будете, что ничто не ограничивает Вас в движениях «вправо/влево и прыжках на месте».
Есть у меня мысль написать скрипт, который будет вообще всё настраивать одной командой.
Но времени на него нет, а ньюансов там много.
Но времени на него нет, а ньюансов там много.
Есть опасения, что многие начнут его юзать не вникая ни капли в «откуда куда ноги растут», фанатов «тупого копипаста» понарегится со всеми втекающими и вытекающими. Так то, думаю, мысль славная, но для *особые.
Так они и ошибиться не смогут — если всё само настроится.
Пока в любом случае времени нет, это было бы логичное продолжение текущих настроек сервера.
Пока в любом случае времени нет, это было бы логичное продолжение текущих настроек сервера.
У меня почему-то в php5-fpm какая-то утечка памяти постоянно происходит. По команде service php5-fpm restart освобождается более 200МБ памяти. А если этого не делать, то постепенно память на сервере заканчивается и помогает только рестарт сервера. Кто-нибудь сталкивался с такой проблемой? Настраивал примерно по этой статье с учетом менее мощного сервера, настройки php5-fpm правда те же. Не понял что они делают, пробовал изменять — все только хуже).
Естественно, что работающие процессы отьедают себе память — зачем ей пустой простаивать?
Когда память на сервере заканчивается, он что — падает, глючит, виснет? Или работает как надо, просто показывая, что вся память занята?
Если второе — волноваться не о чем, если первое — попробуй добавить памяти на сервер (если можно) или перезапускать процесс раз в сутки.
У меня на linode 768 ОЗУ, только 200 из них обычно свободно.
Когда память на сервере заканчивается, он что — падает, глючит, виснет? Или работает как надо, просто показывая, что вся память занята?
Если второе — волноваться не о чем, если первое — попробуй добавить памяти на сервер (если можно) или перезапускать процесс раз в сутки.
У меня на linode 768 ОЗУ, только 200 из них обычно свободно.
Сайты работают, а вот через Putty или FTPs уже не входит — не хватает памяти. И еще крон перестает отрабатывать, что самое важное. Еще 100% загрузка процессора после этого почему-то начинается…
А сколько памяти на сервере то, и где этот сервер?
У меня ни разу такого не было, чтобы аж ssh переставал работать.
У меня ни разу такого не было, чтобы аж ssh переставал работать.
512мб, fornex.com
Однозначно что-то не то у тебя.
На Linode у меня был тариф 512 — всё летало, никаких утечек. Ubuntu 10.04.4, все пакеты из репозитория.
На Linode у меня был тариф 512 — всё летало, никаких утечек. Ubuntu 10.04.4, все пакеты из репозитория.
Василий, было приятно прочитать статью да и в целом хотел бы выразить благодарность за то что ведете деятельность, направленную на продвижение ModX -действительно это хороший продукт, который заслуживает почета и внимания.
Ну а собственно теперь вопрос — чем пользуетесь, при добавлении сайтов в рамках своей VPS?(если есть что-то кроме шела так же расскжаите о нагрузке на ресурсы)
С трудом верится что все руками — как то не юзабилити.А подозреваю покупать cPanel или ISPManager нет смысла, все таки это Dedic для не большой аудитории…
Ajenti безусловно мастхэв — но все же автоматизации он особо не добавляет…
Заранее, благодарен за ответ.
Ну а собственно теперь вопрос — чем пользуетесь, при добавлении сайтов в рамках своей VPS?(если есть что-то кроме шела так же расскжаите о нагрузке на ресурсы)
С трудом верится что все руками — как то не юзабилити.А подозреваю покупать cPanel или ISPManager нет смысла, все таки это Dedic для не большой аудитории…
Ajenti безусловно мастхэв — но все же автоматизации он особо не добавляет…
Заранее, благодарен за ответ.
И да, кстати было бы здорово если бы Вы эту статью подбили под свой новый хостинг на Linode -я думаю разница в конфиге должна быть, к примеру количество рабочих процессоров…
Давно написал скрипты автоматической установки и пользуюсь только ими.
С нагрузкой полный порядок — треть ресурсов всегда свободны.
Эту заметку перепишу под linide, давно в планах.
С нагрузкой полный порядок — треть ресурсов всегда свободны.
Эту заметку перепишу под linide, давно в планах.
Залил на VPS Hetzner, сконфигурированный по данному мануалу, три сайта — работают отлично.
Залил 4-й — при попытке открыть фронт енд выдает ошибку 403 Forbidden.
Права на файлы все проверил, конфиги тоже, обновил Модкс через Setup — не помогло.
Сайты с нулевой нагрузкой.
Может ли быть, что надо что-то подправить в /etc/php5/fpm/pool.d/site1.conf?
Залил 4-й — при попытке открыть фронт енд выдает ошибку 403 Forbidden.
Права на файлы все проверил, конфиги тоже, обновил Модкс через Setup — не помогло.
Сайты с нулевой нагрузкой.
Может ли быть, что надо что-то подправить в /etc/php5/fpm/pool.d/site1.conf?
Используй скрипты автоматической установки — проблем не будет.
смотри лог nginxа, скорее всего htaccess режет
Василий, а кстати, хотел узнать — у Вас на linode крутится на Вашем тарифе сколько проектов на Revo одновременно? И сколько в среднем кушается ресурсов на каждый ModX? Оцениваю просто инфраструктуру для будющего VPS под ModX проекты )
Проектов 10-20, когда как — там modx-test.com работает.
Высчитывать что-то желания нет, извини.
Высчитывать что-то желания нет, извини.
Здравствуйте! Подскажите пожалуйста, зарегила хостинг Linode, начала настраивать по вашей статье. Дошла до места
Получаю ошибку -bash: sudo: command not found
(юзера создала и перезалогинилась) Выбран Debian 6, может надо Ubuntu? Простите за ламерские вопросы, только начинаю осваивать что-либо другое, отличное от ISP-панели((
Подскажите что делать? Спасибо!
sudo apt-get install mc
Получаю ошибку -bash: sudo: command not found
(юзера создала и перезалогинилась) Выбран Debian 6, может надо Ubuntu? Простите за ламерские вопросы, только начинаю осваивать что-либо другое, отличное от ISP-панели((
Подскажите что делать? Спасибо!
Получилось! sudo не был установлен (если я правильно выражаюсь), установила его под root-ом, после все получилось. Продолжим)
Я пользуюсь Ubuntu, и заметки пишу про настройку в ней.
Если ты пока не разбираешься в GNU/Linux — было бы проще поставить Ubuntu, а не Debian. Проблемы с sudo, например, не было бы.
Если ты пока не разбираешься в GNU/Linux — было бы проще поставить Ubuntu, а не Debian. Проблемы с sudo, например, не было бы.
Спасибо за совет! Пока еще ничего не успела настроить, стоит переустановить на Ubuntu? (а то вот опять проблема, не получается создать файл в mc)
Конечно, стоит.
Подскажите пожалуйста блондинке —
И вносим вызов этого файла в /etc/rc.local — и скрипт будет вызываться при запуске.Как именно внести в /etc/rc.local вызов /root/iptables?
Написать эту строку внутрь файла.
спасибо!
Кстати насчет sudo — можете ввести команду
и после, введя пароль рута все дейтсвия будете делать от его имени (аналог su в Debian).
Удобно при работе с скриптами и первичной настройкой системы в рамках SSH сессии
sudo -i
и после, введя пароль рута все дейтсвия будете делать от его имени (аналог su в Debian).
Удобно при работе с скриптами и первичной настройкой системы в рамках SSH сессии
Еще прикольнее
sudo mc
Ну это разумеется, правда например я mc в целом не использую.
Как минимум не удобно в случае, когда в nano скажем сохраняешь файл -это хоткей Ctrl+О, соответственно если nano был запущен из MC -то на этот же хоткей он тоже забинден, и в итоге получается что приоритет у MC, и nano сворачивается, вместо записи.
Понимаю что не проблема, но все же-)
Как минимум не удобно в случае, когда в nano скажем сохраняешь файл -это хоткей Ctrl+О, соответственно если nano был запущен из MC -то на этот же хоткей он тоже забинден, и в итоге получается что приоритет у MC, и nano сворачивается, вместо записи.
Понимаю что не проблема, но все же-)
Хм, а я всегда по Ctrl+X сохраняю, при выходе =)
Кстати сейчас настраивал параметры в rc.local, там не только проверка Iptables но и еще ряд скриптом… И все это дело почему то не заводилось…
Полезным оказалась воспроизведение скрипта при входе посредством вот такой незатейлевой команды:
В моем случае я просто не заметил, что слетел chmod
Полезным оказалась воспроизведение скрипта при входе посредством вот такой незатейлевой команды:
sudo /etc/init.d/rc.local start
если есть ошибки-они выведутся…В моем случае я просто не заметил, что слетел chmod
Василий, хелп, пжл. Добрался я до работы с данной статьёй и вот с чем столкнулся:
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. 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
по п.п. 2 и 7 поправка — MODX в root лежит, его видно через MC. но и только через него. И я его даже распаковал — папка с его распаковкой там тоже есть и видна через MC.
Так же хотел бы узнать, где и как на Линоде итд делать адрес сайту, что бы запускать его, устанавливать итд. вроде бы Вы не упоминали об этом ещё.
АП
Почистил кеш WinSCP — папка с MODX появилась! Правда modx.zip так и не наблюдается, хотя MC его показывает.
Так же хотел бы узнать, где и как на Линоде итд делать адрес сайту, что бы запускать его, устанавливать итд. вроде бы Вы не упоминали об этом ещё.
АП
Почистил кеш WinSCP — папка с MODX появилась! Правда modx.zip так и не наблюдается, хотя MC его показывает.
Тек-с. Некоторые вопросы решил. Остались подвешенными 1, 4, 6 и 7 (для п.7 — site1 тоже не нарылся, кстати), ещё вопрос — как с доменами то быть? У меня их нет и не предвидятся сегодня. Есть у Линоды какой-нибудь технический домен или что-то в таком духе? Или бесплатные какие-нить, быстро создаваемые и всё такое?
1. adduser user sudo — и пользователь будет добавлен в группу sudo.
4. Смотри конфиги nginx, у тебя дублируется где-то директива.
6. Тут бэкапим — это просто копируем куда-нить, на всякий случай.
7. В чем трудность создать директорию?
Зачем тебе хостинг, если у тебя нет доменного имени? Как на твой сайт люди будут попадать?
На всякий случай проясню, что bezumkin.ru — это доменное имя, которое ведёт на сервер с сайтом. На одном сервере может быть куча сайтов с разными именами, но с одним ip.
4. Смотри конфиги nginx, у тебя дублируется где-то директива.
6. Тут бэкапим — это просто копируем куда-нить, на всякий случай.
7. В чем трудность создать директорию?
Зачем тебе хостинг, если у тебя нет доменного имени? Как на твой сайт люди будут попадать?
На всякий случай проясню, что bezumkin.ru — это доменное имя, которое ведёт на сервер с сайтом. На одном сервере может быть куча сайтов с разными именами, но с одним ip.
О, а вот и ответы Ваши. Сдобного утра :0)
А я пока всё по новому кругу переустановил и почти всё Ок. Есть совсем мелочи, но их позже уточню.
Так я прописывал это, наверное, что-то не так пошло.
А, не, это я знаю, просто привык, что Петерхост техническое имя сразу даёт, надеялся, что буржуи ещё щедрее :0)
Или, может, по ip моему Линодному можно, по которому я через ssh на сервак прибегаю, например? Мне то сейчас, по сути, запустить /setup MODX интересно-нужно, а для этого же юрла нужна — вот о ней пока речь.
А я пока всё по новому кругу переустановил и почти всё Ок. Есть совсем мелочи, но их позже уточню.
Так я прописывал это, наверное, что-то не так пошло.
А, не, это я знаю, просто привык, что Петерхост техническое имя сразу даёт, надеялся, что буржуи ещё щедрее :0)
Или, может, по ip моему Линодному можно, по которому я через ssh на сервак прибегаю, например? Мне то сейчас, по сути, запустить /setup MODX интересно-нужно, а для этого же юрла нужна — вот о ней пока речь.
Если сайт один — должно работать просто по ip. Если больше, то надо настроить:.
— Пропиши любое имя у себя на компе в hosts и укажи ему твой ip.
— В nginx, соответственно, укажи отзываться на это имя и будет работать.
— Пропиши любое имя у себя на компе в hosts и укажи ему твой ip.
— В nginx, соответственно, укажи отзываться на это имя и будет работать.
Тогда вообще ничего не понимаю. Я, конечно, на это «грешил», но отзыв: «Welcome to nginx!», вот и сижу в недоумении ((
Кстати, там есть технич. имя, похоже: типоличныйномер.members.linode.com (там тоже Welcome to nginx! болтается, кнш).
Кстати, там есть технич. имя, похоже: типоличныйномер.members.linode.com (там тоже Welcome to nginx! болтается, кнш).
По умолчанию nginx создаёт свой пустой сайт + ты создал еще один.
Итого, 2 сайта на одном ip. Либо удали дефолтный, либо настрой домен, как я написал.
Итого, 2 сайта на одном ip. Либо удали дефолтный, либо настрой домен, как я написал.
sudo rm /etc/nginx/sites-enabled/www.conf && sudo service nginx restart
«Даже» файлы научился переименовывать, а сайтец не бежит :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.
Ну, а глобальный корень был в том, что после выполнения инструкций поста я применял скрипт автоустановки, тогда как его применять можно-нужно сразу после команд mkdir /var/www и
mkdir /var/www/site1.
Зато теперь с закрытыми глазами сервер настроишь.
УРА, сервак настроен без ошибок, дублей итд итп — «можем, когда хотим»! :0) След этап — скрипт загрузки MODX итд и в связи с этим пара вопросов:
1. Рекомендую хранить /var/www/site1/chmod — можно поподробнее об этой строчке и непосредственно работе и вызове?
2. addsite.sh — его в «совсем-совсем» корень кидать и он сам всё расфасует, или таки в корень который корень site1?
1. Рекомендую хранить /var/www/site1/chmod — можно поподробнее об этой строчке и непосредственно работе и вызове?
2. addsite.sh — его в «совсем-совсем» корень кидать и он сам всё расфасует, или таки в корень который корень site1?
П.С.
п.2 ещё и к тому, чтобы не плодить сейчас сайтов больше одного.
п.2 ещё и к тому, чтобы не плодить сейчас сайтов больше одного.
ВСЁ, УШЁЛ ОБМЫВАТЬ (как только пойму, как БД создавать)! :0) Не подскажет кто-нить как вручную её создать на Линоде с учётом мануала, а то тут вроде как ни слова (наверняка есть этому причина, но пока не пойму. где у меня ошибка)?
Используй скрипты, они сами всё разложат и сделают, включая БД. Хранить эти скрипты лучше в /root/modx
Закачивать их на сервер вот так:
Потом прописываешь пароль от Mysql в начале файла и можно ставить сайты.
Закачивать их на сервер вот так:
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 в начале файла и можно ставить сайты.
Так мне там от это совало:
Вот я потому некими кривоокольными путями я БД какую-то как-то наварганил (вот такую мануалину нарыл, вроде даже небесполезная: 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 говорит.
Вот я потому некими кривоокольными путями я БД какую-то как-то наварганил (вот такую мануалину нарыл, вроде даже небесполезная: 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 говорит.
У тебя на скриншоте написано «MODX could not create database...» В скрипте для работы нужно было указать пароль рута от mysql.
Всё, дальше сам — я устал помогать.
Всё, дальше сам — я устал помогать.
*Б… Ь… Несколько часов жизни «в дыру»… Слов нет… Я то мудился, инет шерстил (видел я ту надпись, не чугунный я)… Мне в голову не приходило, что вот в гитхабовском файле и надо было этот куев па-с-с вдолбить… Вбил и всё фурычит, аки часики, всё у меня ровнёхонько уже с утра было, и все файлики где надо, мля, клал, оказывается. У Вас же даже ЖыЫыРНЫМ ВЫДЕЛЕНО «Нужно указать в скрипте пароль root для mysql»… Ну, пздц, блин… Некуй ночью за колобродить…
Как запретить доступ ко всем портам из Китая?
Взглянул на логи за последние дни, и появилось желание просто наглухо перекрыть доступ для этой страны.
Взглянул на логи за последние дни, и появилось желание просто наглухо перекрыть доступ для этой страны.
Вот тут я писал про защиту 22 порта iptables.
Естественно, так можно защищать любой порт, не только 22, Запретить конкретно одной стране что-то нельзя, только если ты не укажешь все её айпишники в правила файрвола.
Естественно, так можно защищать любой порт, не только 22, Запретить конкретно одной стране что-то нельзя, только если ты не укажешь все её айпишники в правила файрвола.
Извиняюсь, не читал. Для бана использую fail2ban — есть куча примеров настроек — от защиты ddos 22 порта до бана при срабатывании suhosin и naxsi — надстройки php и nginx соответственно. Для php есть замечательная класс и ежедневно обновляемая база ip2country, вроде как у них там какие-то подвязки с игровыми виртуальными казино, поэтому поддерживают её в актуальном состоянии. Но в свете того что на линоде страница грузится ~300 мсек и все достаточно прожоливо в памяти, не хочу дергать бэкэнд попусту, ради определения страны по ip адресу.
Василий, наткнулся на такую интересность, как apt-get install arno-iptables-firewall, а так же на apt-get install iptables=есть некий установочный пакет, и у нас он не применяется, раз мы файл iptables создавали (touch). Стоит/не стоит итд, как думаете?
Ну, вот, надеюсь, «пробил час», когда я могу внести свою малюсенькую лепту. Выслал Вам файл, где добавлено нужное и убрано лишнее, соблюдена последовательность действий, а так же менее неоднозначно описаны некоторые действия по настройке хостинга и установке MODX Вашим автоскриптом. Всё вышесказанное более-менее гарантированно верно при использовании Линоды (Ubuntu 12.04 LTS) и Вашего скрипта автоустановки MODX.
П.С.
Надеюсь, я нигде не ошибся в файле, ну и, что он пригодится.
П.С.
Надеюсь, я нигде не ошибся в файле, ну и, что он пригодится.
П.С.
Только что, возможно, справился с «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 или не добавлять при формировании файла или игнорить алерт.
Только что, возможно, справился с «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 или не добавлять при формировании файла или игнорить алерт.
Перевл-таки свой работающий серв на связку 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. После долгих исканий и пары ребутов серва обнаружил, что 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. А зачем тебе одновременно и php5-cgi и php5-fpm?
2. Да, конечно.
3. Свой, консольный, php5-cli.
2. Да, конечно.
3. Свой, консольный, php5-cli.
> А зачем тебе одновременно и php5-cgi и php5-fpm?
Дело в том, что изначально серв собирал не я, собрать с нуля пока возможности нет. cgi уже было тут. подскажи плиз что терь сделать, чтобы всё не паламалось :)
Дело в том, что изначально серв собирал не я, собрать с нуля пока возможности нет. cgi уже было тут. подскажи плиз что терь сделать, чтобы всё не паламалось :)
Попробуй просто:
sudo apt-get remove php5-cgi
php5-cgi удалил. ребутнул nginx и php5-fpm, но путь остался прежним. серв ребутать что ли?
Попробуй так:
sudo service php5-cgi stop && apt-get purge php5-fpm && apt-get install php5-fpm && service php5-fpm start
Это остановит cgi, если он еще пашет, удалит полностью fpm, с конфигами и установит заново.
говорит на service php5-cgi stop: unrecognized service. получается и cgi не запущен… странная ситуация
apt-get purge php5-fpm && apt-get install php5-fpm && service php5-fpm start
переустановил и всё равно путь до ini: /etc/php5cgi/php.ini
переустановил и всё равно путь до ini: /etc/php5cgi/php.ini
Дальше или в гугл, или сделать на это место символическую ссылку с нужного ini.
Честно, не знаю где переменную прописать, надо гуглить.
Честно, не знаю где переменную прописать, надо гуглить.
В инфе еще написано Server API: CGI/FastCGI, я так понимаю, что это нифига не php5-fpm используется
Василий, я тут решил потестить связку исключающую Апач. Все хорошо, концепция — супер, но не могу добиться корректной обработки php. Копирую дистрибутив modx, перехожу по пути установки и вижу код php. Что-то с php5-fpm? Из отклонений от инструкции — в конфиге sites-available/*.conf приписал location ~ site.ru\.php$, т.к. несколько сайтов на одном ip.
Fixed: М-да, сам же и начудил) Убрал свои приписки и все заработало)
Fixed: М-да, сам же и начудил) Убрал свои приписки и все заработало)
В моих инструкциях же и так все расписано для «много сайтов на одном ip».
Хорошо, что сам разобрался.
Хорошо, что сам разобрался.
Василий, у меня следующий вопрос — после создания сокета и конфига nginx'a пытаюсь залить файлы. Подключение проходит «на ура». Пользователь в группе sftp. Но залить файл не удается. Права на каталоги 755, на файлы 644. В чем может быть дело?
Заранее благодарен
FIXED: Странно, но исправилось после апдейта локалей и часового пояса. Стояло американское время (часовой пояс).
Заранее благодарен
FIXED: Странно, но исправилось после апдейта локалей и часового пояса. Стояло американское время (часовой пояс).
Подскажите правило для nginx чтобы делало редирект со страницы со / на страницу без оного и при этом давало попасть в админку.
rewrite ^/(.*)/$ /$1 permanent;
зацикливает админку evo
добавь manager в исключение в регулярке, что бы после манагера не меняло слешь, а если не секрет для чего такой секас? (вообще в настройках сайта есть параметр суфикс контейнера и там стоит / что если его убрать?)
В модх настройка чпу, наиболее гибкая по моему не вижу смысла что то мутить со слешами.
В модх настройка чпу, наиболее гибкая по моему не вижу смысла что то мутить со слешами.
Секас от того, чтобы изначально убрать в Evo дубли страниц. Поисковики воспринимают страницу со шлешем и без как дубли. Сейчас обновил evo до последней там появилась настройка, чтобы страницы были со шлешем или без, но это частично решает трабл тк пользователи любят ставит ссылки со слешем и так появляются опять дубли в поисковиках.Поэтому нужен редирект 301. Переведите на ламерский «добавь manager в исключение в регулярке» :-)
ну вообще регулярное выражение можно написать ввиде переадресовывать все * / за исключением manager/ как делать не скажу — надо думать но можно.
А по поводу слеша для сео гланую страницу главное склеить, а внутряки индексируются через меню, если с сылкми не напортачить(роботу не светануть оба адреса с / и без то все ок и без подпрыгиваний и кто муже есть meta каноникл он считывается и гуглом и яндексом и внем указывается страница для индексации это помогает)
И вообще если уж нато пошло каталоги надо наоборот со слешем давать — наоборот переадресацию делать с пустого окончания на / если адрес не заканчивается .html .php или не содержет гет запроса.
А по поводу слеша для сео гланую страницу главное склеить, а внутряки индексируются через меню, если с сылкми не напортачить(роботу не светануть оба адреса с / и без то все ок и без подпрыгиваний и кто муже есть meta каноникл он считывается и гуглом и яндексом и внем указывается страница для индексации это помогает)
И вообще если уж нато пошло каталоги надо наоборот со слешем давать — наоборот переадресацию делать с пустого окончания на / если адрес не заканчивается .html .php или не содержет гет запроса.
Лирика лирикой, а как исключить папку для rewrite в nginx найти не удается нигде
И, скорее всего, не найдётся.
Нужно указать все правила для этой директории до реврайта. Почитай, как nginx выбирает location для обработки запроса.
Нужно указать все правила для этой директории до реврайта. Почитай, как nginx выбирает location для обработки запроса.
Затем nginx проверяет location’ы, заданные регулярными выражениями, в порядке их следования в конфигурационном файле. При первом же совпадении поиск прекращается и nginx использует совпавший location.
А какие правила если к ней ничего применять не надо?
По идее просто пишу
По идее просто пишу
location /manager {
}
но идея зацикливается по прежнему
Как минимум, обработка php файлов через fastcgi.
Ты плохо понимаешь, как работает nginx, нужно почитать литературу.
Ты плохо понимаешь, как работает nginx, нужно почитать литературу.
Ещё я смутно представляю, как работает процессор. Пойду изучу литературу, а вдруг понадобится когда-нибудь перепаять.
Я как-то давно пытался почитать мануалы Сысоева — дохлый номер: написано программистом для программистов. Судя по всему очень мало кто знает, как работает nginx тк ответа на мой вопрос нет нигде. Под апач полно решений, а тут тишина.
Собственно все сайты на разных движках успешно переехали с говнохостинга на linode, один evo отличился как всегда. Даже dle с правилами рерайта на 2 страницы перенесся без потерь, а тут такой сюрприз.
Я как-то давно пытался почитать мануалы Сысоева — дохлый номер: написано программистом для программистов. Судя по всему очень мало кто знает, как работает nginx тк ответа на мой вопрос нет нигде. Под апач полно решений, а тут тишина.
Собственно все сайты на разных движках успешно переехали с говнохостинга на linode, один evo отличился как всегда. Даже dle с правилами рерайта на 2 страницы перенесся без потерь, а тут такой сюрприз.
Я тебе выше давал ссылку на то, как nginx выбирает location.
Там черным по белому написано, что предпочтение отдается регулярным выражениям — а ты пишешь обычное.
Nginx его просто игнорирует и выбирает более интересное.
Держи:
Первое правило у меня давно работает, это запрет на вход в админку всем, кроме меня — то есть, это отдельная обработка служебных директорий.
А вот во втором не уверен — только что его придумал, но тоже должно работать, ибо вес имеет тот же, что и первое, но идёт за ним.
В общем, удачи.
Там черным по белому написано, что предпочтение отдается регулярным выражениям — а ты пишешь обычное.
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;
}
Первое правило у меня давно работает, это запрет на вход в админку всем, кроме меня — то есть, это отдельная обработка служебных директорий.
А вот во втором не уверен — только что его придумал, но тоже должно работать, ибо вес имеет тот же, что и первое, но идёт за ним.
В общем, удачи.
Вот здесь понятно — у Сысоева не понятно. Спасибо.
Рабочий результат
Рабочий результат
location ^~ /manager {
location ~* \.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass backend-marshal;
}
}
location ~ .+/$ {
rewrite (.+)/$ $1 permanent;
}
На здоровье!
не знаю на чем у тебя сервер но правила переадресации nigx указываются в конфиге сервера конфиги лежат в зависимости от настроек
Еще вопрос по cron появился. Как можно отключить отправку подтверждения на e-mail для одного конкретного задания, а для остальных оставить? На одном сайте шапка по крону меняется, замучали письма счастливого крона.
Очень просто — скрипт не должен ничего выдавать.
Либо делай так, чтобы он ничего не возвращал, либо направляй его вывод в /dev/null
Либо делай так, чтобы он ничего не возвращал, либо направляй его вывод в /dev/null
Подскажите плиз, а почему может быть вот так?
clip2net.com/s/53PEFb
На все, что не существует физически выдает 500 и дальше работает как надо.
Вот такой вот конфиг
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?
Самое странное, что в логах nginx нет ничего про 500. Это меня в тупик поставило.
Спасибо за наводку, кстати.
Включение отображения ошибок позволило избавится от 500 ошибки, но никакой ошибки не появилось. Странно это.
Включение отображения ошибок позволило избавится от 500 ошибки, но никакой ошибки не появилось. Странно это.
Василий, подскажи пожалуйста. У меня назрела необходимость переноса сайта с хостинга на хостинг. Был vps apache+nginx, стал nginx+php5-fpm.
После переноса сыплет 500 ошибками. Я намучался с правами — сил нет. Люблю бубунту, но иногда от нее мозг кипит. Права выставлять на директорию пользователь: пользователь и для начала 775? При таких, рекурсивно назначенных, правах должно работать нормально? Отчего в админке он показывает замки на файлах?
После переноса сыплет 500 ошибками. Я намучался с правами — сил нет. Люблю бубунту, но иногда от нее мозг кипит. Права выставлять на директорию пользователь: пользователь и для начала 775? При таких, рекурсивно назначенных, правах должно работать нормально? Отчего в админке он показывает замки на файлах?
Используй мои скрипты установки — проблем не будет.
У меня перенос, Василий. Да еще и с кучей субдоменов.
А, ну это все меняет.
Создавай ручками и мучайся с глюками.
Создавай ручками и мучайся с глюками.
Эх. :)
У тебя нет сайтов с поддоменами где ты используешь свою связку? Есть ли смысл мучить?
Василий, спасибо, настроил VPS по твоему топику, все просто летает.
Но есть одна проблема — иногда наблюдаются странные глюки с передачей файлов по sftp через FileZilla (через другие клиенты не пробовал). При попытке скачать или загрузить файл на хостинг получаю ошибку — "Превышено время ожидания соединения", и так может быть несколько раз подряд. Потом через какое-то время опять все работает. И так регулярно. Какой либо закономерности возникновения этой ошибки не заметил.
У кого нибудь была похожая проблема?
Но есть одна проблема — иногда наблюдаются странные глюки с передачей файлов по sftp через FileZilla (через другие клиенты не пробовал). При попытке скачать или загрузить файл на хостинг получаю ошибку — "Превышено время ожидания соединения", и так может быть несколько раз подряд. Потом через какое-то время опять все работает. И так регулярно. Какой либо закономерности возникновения этой ошибки не заметил.
У кого нибудь была похожая проблема?
Или уменьшай в /root/iptables таймаут подключения (там сейчас 30сек), или увеличивай его в FileZilla.
Василий, добрый день. Используя getResources, для динамической генерации контента, можно применять конструкции вида &parents=[[+id]]`, &parents=[[+parent]]`
Однако pdoResources такого подхода не понимает. Как сделать динамического родителя, не используя конкретный id? Возможно я упустил что-то в документации?
Однако pdoResources такого подхода не понимает. Как сделать динамического родителя, не используя конкретный id? Возможно я упустил что-то в документации?
Всем привет! Такой вопрос. Есть пользователь и папка для него. Захожу через FilleZilla закачиваю файлы, но они становятся от рута. Приходится через консоль менять пользователя. Как это можно исправить?
Видимо ты заходишь от рута, а не от юзера.
Твой кэп.
Твой кэп.
хм, новых пользователей которых мы создаем они не руты. Дальше каталога своего не ходит. А записывает что без прав на открытие(((((((( Ок, буду копать. Что то у меня видать не так
Ты когда заходишь в папку и что-то закачиваешь — под каким именем заходишь? Под юзером, или под рутом?
Какие права на саму директорию — юзер её владелец, или рут?
Какие права на саму директорию — юзер её владелец, или рут?
Так, получается я захожу под юзером, которого создал. Права на папку дал юзеру. Скриптом который в статье. И если закачивать файлы или папки под этим юзером по фтп то получается что к ним доступа нету. Но если через сам modx то все ок
Ну а теперь включаем логику:
1. Файл заливается правильно
2. Владалец у него верный, но посмотри разрешения — там чтение только для владельца!
3. Nginx открыть файл не сможет, ибо он запущен не от юзера dengi и прав к файлу не имеет.
4. PHP видимо тоже запущен не от dengi, если не может его открыть.
Так что, разбирайся, почему у тебя выставляются такие разрешения на загруженный файл. Скорее всего, чудит сам FileZilla.
1. Файл заливается правильно
2. Владалец у него верный, но посмотри разрешения — там чтение только для владельца!
3. Nginx открыть файл не сможет, ибо он запущен не от юзера dengi и прав к файлу не имеет.
4. PHP видимо тоже запущен не от dengi, если не может его открыть.
Так что, разбирайся, почему у тебя выставляются такие разрешения на загруженный файл. Скорее всего, чудит сам FileZilla.
Так у тебя там vsftpd — его и копай. Наверняка это он и выставляет разрешения.
У меня в инструкции работа с файлами идёт через SFTP, а не отдельный FTP сервер. Ты бы уж писал сразу, что наворотил там что-то еще, а то только время зря тратим.
У меня в инструкции работа с файлами идёт через SFTP, а не отдельный FTP сервер. Ты бы уж писал сразу, что наворотил там что-то еще, а то только время зря тратим.
Ок, кажется понял. Извиняюсь. Спасибо большое!
Интересно, на сколько небезопасно прописывать в /etc/ssh/sshd_config
AllowTCPForwarding yes
для проброса порта mysql для phpstorm?
Подскажите пожалуйста. Все работало отлично, потом стало вот так http://c2n.me/ikv7ZY. Если вводить левого юзера то просит пароль. В чем может быть проблема?
Если вводить левого юзера то просит пароль.А как должно?
Ты хочешь, чтобы сервер говорил «юзер не найден» и злоумышленник мог точно подобрать имя существующего, чтобы дальше подбирать уже пароль?
Об этом я как то не подумал. Но получается я теперь не могу зайти под ssh вообще на сервер. Могу только в веб консоли http://c2n.me/ikDHtJ
Подскажите в какую сторону копать((((
Из настроек только как в статье
Подскажите в какую сторону копать((((
Из настроек только как в статье
Ну раз доступ есть — смотри ошибки авторизации в /var/log/auth.log
Возможно тебе уже пароль поменяли, или есть какая-то защита от частых входов.
Возможно тебе уже пароль поменяли, или есть какая-то защита от частых входов.
В общем все снес, поставил систему заново. Настроил строго по статье. Все ок заработало. Но не долго. 1 день. ТЕперь опять FileZilla не цепляется(((.
Логи /var/log/auth.log:
сделал вот так:
Логи /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
Может это поможет еще подсказать?
В общем нашел проблему:
#!/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 и все ок все работает. Может я где не прав, подскажите?
Седня закончилось место на linode тариф за 30$ — 70 гигов SSD. 30 сайтов, из них 4 интернет-магазина — остальное визитки, и так, всякие проекты не особо активные. В общем был виноват дропбокс. Старина создавал в каталоге /tmp временные файлы аш на 40 гигабайт. В связи с этим планирую переходить на Dropbox-Uploader. + ко всему достало, что дропбокс все ночные бэкапы перекэширует ежедневно, чем сильно нагружает VPS. Есть ли у кого-нибудь опыт настройки данного скрипта? (он, на сколько я понял, способен закачивать файлы на дропбокс, также может удалять с него файлы).
Я использовал этот скрипт, давно. Он пожирал всю память и вис напрочь, наверное, что-то не так настроил
На данный момент перешел на Яндекс.Диск, использую его официальный клиент — работает быстро и нетребователен к ресурсам.
Один недостаток — надо переодически заходить на сам сервис и чистить корзину.
От Dropbox отказался полностью.
На данный момент перешел на Яндекс.Диск, использую его официальный клиент — работает быстро и нетребователен к ресурсам.
Один недостаток — надо переодически заходить на сам сервис и чистить корзину.
От Dropbox отказался полностью.
Да, похоже нужно переезжать на что-то более вменяемое, либо разбираться с дропбоксом. За одну ночь попка /tmp выросла на 800мб.
Хочу еще апгрейдить и сами бэкапы, в связи с этим вопрос: duplicity может создавать инкрементальные архивы баз данных mysql?
Хочу еще апгрейдить и сами бэкапы, в связи с этим вопрос: duplicity может создавать инкрементальные архивы баз данных mysql?
Если складывать бэкап в один и тот же файл — то он будет меняться и инкрементально резервироваться, по идее.
странно, судя по описанию github.com/andreafabrizi/Dropbox-Uploader там нечему виснуть и забивать память. будем разбираться
Не факт, что я использовал именно его. Там вроде на python что-то было.
В любом случае, сейчас меня Яндекс полностью устраивает, менять не хочу.
В любом случае, сейчас меня Яндекс полностью устраивает, менять не хочу.
Вопрос следующий. Как грамотно обновить пакеты, версию линукса и прочее при рабочем сервере без потерь и с минимальными правками потом? Какие файлы забэкапить?
Доброго дня, Василий!
Хочу по твоей инструкции настроить очередной сервер на 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/, теперь хочу отказаться от нее)
Спасибо.
Хочу по твоей инструкции настроить очередной сервер на 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/, теперь хочу отказаться от нее)
Спасибо.
Нужно брать последнюю LTS версию, сейчас это Ubuntu 14.04 x64.
Ajenti можно ставить когда угодно — влияет только на удобство управления сервером.
Ajenti можно ставить когда угодно — влияет только на удобство управления сервером.
а можно по этой инструкции поставить Centos как и раньше ставил. Она вполне применима.
Интересно бы сравнить CentOS 7 x64 vs Ubuntu 14.04 x64
чем не понравилась панель vestacp.com? если не секрет. Уже давно хочу перейти на ajenti 1.0, сейчас сижу на 0.6.3, но хочу по-новой запустить сервер на linode — в последний раз, когда наконец-то установил этот несчастный redmine, понял что напихал кучу лишних пакетов\зависимостей, разгребать которые и удалять не нужные — очень заморочено — для меня проще поднять новый сервер и туда все заново установить с чистого листа.
С одной стороны жаловаться на vestacp.com — бесплатный продукт, как то неприлично, а что не устраивает, вот сразу после сравнения с Ajenti скажу. Сейчас есть вопросы, ввиду того что Весту я использую на Таймвебе и на Digitalocean, очень по разному создаются бэкапы по крону, т.е. при одинаковом количестве сайтов размеры бэкапов отличаются на порядок. Стабильно падает MySQL, вроде при чем тут Веста, но этот вопрос поднимается именно на их форуме и много раз. И т.п.
Ммм, все получилось, кроме того что не пускает юзеров по sftp. Видать есть неизвестные мне моменты настройки sftp? Правда настраивал я все в CentOS6. Может подскажет кто как надо правильно?
Для 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;
}
}
Спасибо за отличную статью! Настроил. Почты всё работает. Но нашел один баг, который не могу исправить.
Modx Evo 1.0.15.
Есть страница. Назовем ее Новости. Дочерними ресурсами в ней выступают другие страницы собственно с телом новостей.
На странице Новости подключен скрипт
Страница Новости сделана Первой страницей сайта (Инструменты — Конфигурация- Введите ID ресурса, который вы хотите использовать как стартовую (домашнюю) страницу. )
Сервер NGINX выводит код сниппета
Причем проблема наблюдается, если сделать страницу Главной. Если Главной сделать другую страницу, то генерация ссылки происходит нормально.
Я так понимаю проблема где то в настройка NGINX mod_rewrite…
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…
Уже на надо. Вопрос закрываю.
Весь инет перерыл не могу найти как решить эту ошибку:
ERROR: An another FPM instance seems to already listen on /var/run/php5-site1.sock
ERROR: FPM initialization failed
Вот прям весь? Запрос в Google, вторая ссылка, читать под Resolution.
Если уж совсем плохо с языком вероятного противника — просто перезагрузи сервер, должно помочь.
Если уж совсем плохо с языком вероятного противника — просто перезагрузи сервер, должно помочь.
Я это решение делал, почему-то не помогло оно мне. Попробую сегодня еще раз. Но кстати, я перегружал сервер и не ушла эта ошибка.
Эх, понимаю достали вас нубские вопросы, но вчера весь вечер сидел, пытался решить проблему, лишь бы тут лишний раз не писать.
Эх, понимаю достали вас нубские вопросы, но вчера весь вечер сидел, пытался решить проблему, лишь бы тут лишний раз не писать.
А в конфиге /etc/php5/fpm/pool.d/site1.conf пользователя и группу для сокета не нужно указывать? Например listen.owner = site1/listen.group = site1?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.