Правильный хостинг для MODX Revolution 2
Предлагаю вашему вниманию вторую версию инструкции по созданию собственного хостинга для сайтов на MODX Revolution и не только.
На сей раз я заснял и смонтировал видео всего процесса, постарался от души. Можно скачать в ультра-мега качестве (FullHD 1920x1080x25, 785mb).
В комплекте идёт текстовое описание основных этапов с кусками кода для копипастинга.
Сервер строится на базе Ubuntu + Nginx + Php5-fpm + mySql + Sendmail.
На каждый сайт приходится
— 1 выделенный пользователь
— 1 база данных
— 1 доступ по SFTP
Все файлы сайта принадлежат этому юзеру, он может заходить удалённо и менять их. Php для сайта запускается от имени этого пользователя и обладает его правами.
Помимо ограничения прав php правами юзера, он также запускается с отключением опасных функций и включением open_basedir в директорию юзера.
Такая конфигурация, на мой взгляд, максимально безопасна. Если поломают один сайт — все остальные даже потрогать не смогут.
Выше своей директории просто физически нельзя подняться без взлома ядра операционной системы — а это уже совсем другой уровень атаки.
Для доступа в консоль сервера используется юзер user. Вам я советую создавать этого пользователя под другим именем. Суперпользователю root вход запрещен вообще, чтобы злоумышленнику кроме пароля пришлось подобрать еще и имя.
После входа на сервер user может делать sudo и получать привелегии root.
Этот пользователь должен использоваться только для управления сервером. У него нет сайтов, он не владеет файлами сайтов. Конечно, он также может использовать SFTP для своих нужд.
Сам порт ssh защищается от перебора iptables, путём блокировки неудачных попыток входа на 30 секунд.
Почтовый сервер настраивается только на отправку писем. Получение почты я рекомендую отдать Яндекс или Google.
Всю работу с сайтами обеспечивают мои консольные скрипты, которые снимают весь головняк по создании сайтов, баз данных и прочей рутины.
Советую самостоятельно настроить резервное копирование и выгрузку в Dropbox, этого на видео нет.
1. Регистрация на Linode.
Я использовал Qiwi Visa Virtual, на которую положил $ 20 для оплаты услуг Linode на месяц.
Если платить во второй половине месяца — то снимут деньги за полтора месяца. Если в первой — то только за остаток текущего.
Не забываем указать реферальный код, чтобы мне начислялись бонусы за вашу работу с Linode — 4ac9bb5460f53c3f6b4da61c11d76a19c093a69a.
2. Настройка ssh
Нужно запретить вход root, создать юзера для sudo и защитить 22й порт.
Скрипт защиты
В /etc/ssh/sshd_config
— Меняем PermitRootLogin no
— Комментируем #Subsystem sftp /usr/lib/openssh/sftp-server
— Добавляем в конец
В неё будут добавляться владельцы сайтов, чтобы управлять файлами через SFTP.
3. Установка нужных пакетов
4. Настройка почты
В /etc/hosts нужно указать внешний ip сервера для своего домена (или localhost), чтобы sendmail мог определять свой ip.
Имя домена нужно указать в /etc/hostname.
5. Установка и проверка скриптов MODX
Для установки MODX из консоли нужно указать параметр date.timezone в /etc/php5/cli/php.ini, например:
Затем копируем скрипты:
Addplace — gist.github.com/bezumkin/3833852 — Создаёт место под сайт
Install — gist.github.com/bezumkin/2179479 — Создаёт место и ставит MODX
Update — gist.github.com/bezumkin/2179440 — Обновление MODX
Remove — gist.github.com/bezumkin/2179492 — Удаление места с сайтом и БД
В скриптах обязательно нужно указать пароль root юзера mysql.
6. Установка PhpMyAdmin
Качаем дистрибутив отсюда.
Создаём директорию config, доступную для записи, настраиваем логин\пароль для БД и сохраняем конфиг.
Затем переносим его в корень сайта, немного меняем дамп таблиц pma и импортируем их в БД.
Не забудьте удалить директории config и setup, после успешной настройки.
Теперь всё должно работать.
На сей раз я заснял и смонтировал видео всего процесса, постарался от души. Можно скачать в ультра-мега качестве (FullHD 1920x1080x25, 785mb).
В комплекте идёт текстовое описание основных этапов с кусками кода для копипастинга.
Как работает
Сервер строится на базе Ubuntu + Nginx + Php5-fpm + mySql + Sendmail.
На каждый сайт приходится
— 1 выделенный пользователь
— 1 база данных
— 1 доступ по SFTP
Все файлы сайта принадлежат этому юзеру, он может заходить удалённо и менять их. Php для сайта запускается от имени этого пользователя и обладает его правами.
Помимо ограничения прав php правами юзера, он также запускается с отключением опасных функций и включением open_basedir в директорию юзера.
Такая конфигурация, на мой взгляд, максимально безопасна. Если поломают один сайт — все остальные даже потрогать не смогут.
Выше своей директории просто физически нельзя подняться без взлома ядра операционной системы — а это уже совсем другой уровень атаки.
Для доступа в консоль сервера используется юзер user. Вам я советую создавать этого пользователя под другим именем. Суперпользователю root вход запрещен вообще, чтобы злоумышленнику кроме пароля пришлось подобрать еще и имя.
После входа на сервер user может делать sudo и получать привелегии root.
Этот пользователь должен использоваться только для управления сервером. У него нет сайтов, он не владеет файлами сайтов. Конечно, он также может использовать SFTP для своих нужд.
Сам порт ssh защищается от перебора iptables, путём блокировки неудачных попыток входа на 30 секунд.
Почтовый сервер настраивается только на отправку писем. Получение почты я рекомендую отдать Яндекс или Google.
Всю работу с сайтами обеспечивают мои консольные скрипты, которые снимают весь головняк по создании сайтов, баз данных и прочей рутины.
Советую самостоятельно настроить резервное копирование и выгрузку в Dropbox, этого на видео нет.
Этапы установки
1. Регистрация на Linode.
Я использовал Qiwi Visa Virtual, на которую положил $ 20 для оплаты услуг Linode на месяц.
Если платить во второй половине месяца — то снимут деньги за полтора месяца. Если в первой — то только за остаток текущего.
Не забываем указать реферальный код, чтобы мне начислялись бонусы за вашу работу с Linode — 4ac9bb5460f53c3f6b4da61c11d76a19c093a69a.
2. Настройка ssh
Нужно запретить вход root, создать юзера для sudo и защитить 22й порт.
Скрипт защиты
#!/bin/bash
# Очистка цепочек правил
iptables -F INPUT
iptables -Z INPUT
iptables -P INPUT ACCEPT
iptables -F OUTPUT
iptables -Z OUTPUT
iptables -P OUTPUT ACCEPT
iptables -F FORWARD
iptables -Z FORWARD
iptables -P FORWARD ACCEPT
# Защита порта ssh, время блокировки - 30 секунд
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В /etc/ssh/sshd_config
— Меняем PermitRootLogin no
— Комментируем #Subsystem sftp /usr/lib/openssh/sftp-server
— Добавляем в конец
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory %h
AllowTCPForwarding no
ForceCommand internal-sftpЕще нужно добавить группу sftp: addgroup sftpВ неё будут добавляться владельцы сайтов, чтобы управлять файлами через SFTP.
3. Установка нужных пакетов
apt-get install python-software-properties
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 sendmail htopВо время установки нужно указать пароль для root mySql.4. Настройка почты
В /etc/hosts нужно указать внешний ip сервера для своего домена (или localhost), чтобы sendmail мог определять свой ip.
Имя домена нужно указать в /etc/hostname.
127.0.0.1 localhost
195.167.123.115 mydomain.com mydomainЗатем нужно указать не принимать свои же письма при отправке на свой домен в /etc/mail/sendmail.mcdefine(`MAIL_HUB', `mydomain.com.')dnl
define(`LOCAL_RELAY', `mydomain.com.')dnlПотом в консолиsendmailconfig
service sendmail restartИ проверяемecho -e "To: user@mydomain.com\\nSubject: Test\\nTest\\n" | sendmail -bm -t -v5. Установка и проверка скриптов MODX
Для установки MODX из консоли нужно указать параметр date.timezone в /etc/php5/cli/php.ini, например:
date.timezone = Europe/MoscowЗатем копируем скрипты:
Addplace — gist.github.com/bezumkin/3833852 — Создаёт место под сайт
Install — gist.github.com/bezumkin/2179479 — Создаёт место и ставит MODX
Update — gist.github.com/bezumkin/2179440 — Обновление MODX
Remove — gist.github.com/bezumkin/2179492 — Удаление места с сайтом и БД
В скриптах обязательно нужно указать пароль root юзера mysql.
6. Установка PhpMyAdmin
Качаем дистрибутив отсюда.
Создаём директорию config, доступную для записи, настраиваем логин\пароль для БД и сохраняем конфиг.
Затем переносим его в корень сайта, немного меняем дамп таблиц pma и импортируем их в БД.
Не забудьте удалить директории config и setup, после успешной настройки.
Теперь всё должно работать.
Комментарии: 488
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Создаешь сам или скриптом например этим gist.github.com/bezumkin/3833852 место, и кладешь туда phpMyadmin
Можешь прописать поддомен, можешь домен второго уровня.
А можешь вообще забить чужой домен, а у себя добавить в hosts его сопоставление с iP сайта…
Насчет безопасности — ну порежь доступ туда, например банальным htpasswordом в conf сайта.
Исходники видео сохранил, может и добавлю голос, когда-нибудь.
Удивлён, что еще никто не попробовал снять с неё денег.
А карточка виртуальная, там ничего нет и через 3 месяца она исчезнет.
Вместо phpmyadmin использую:
www.adminer.org/
Преимущество — в 1-ом файле.
как вариант вообще ничего не ставить ,юзать heidisql под виндой
одно из самых хороших решений…
А насчет клиентов мне кажется все же Toad лучше.
Как минимум я его активно ипользую на oracle.
На Mysql в прицнипе тоже гоняю, пока не нашел минусов…
dbForge точно умеет.
есть ли подобная программа для мониторинга сервера? (Munin\Cacti\Nagios или Logwatch)
heidisql тоже использую, но как подчеркнул Denys Butenko:
Тут не нужны экраны?
(в нортон коммандере, дос навигаторе и по-моему в сегодняшнем фаре это ALT+первая буква файла)
Комбинации Ctrl + Alt + (F1 — F7)
Через SSH и так можно открыть сколько угодно сеансов для одного юзера.
пишет:
securedns.comodo.com/main?InterceptSource=0&ClientLocation=xx&ParticipantID=xd34nu3b7tg9r2jcd9fb8jjdzztv2dxl&FailureMode=13&SearchQuery=&FailedURI=http%3A%2F%2Flinux-club.ucoz.net%2F&AddInType=2&Version=3.0.5&Referer=&Implementation=0&PlatformInfo=DNSA&msgID1=112504&blockedDomain=ucoz.net
Warning: Unsafe Website Blocked!
ucoz.net
This website has been blocked temporarily because of the following reason(s):
Malware: Site may contain content that is harmful, illegal, or malicious to your computer
Go back to safety (Recommended)
This website has been reported as unsafe by various users and we do NOT recommend you to continue browsing.
Disregard this warning and continue (Not Recommended)
При наборе имени в строке адреса браузера идёт запрос на DNS сервера, где это имя сопоставляется с IP адресом. А дальше, браузер уже ломится на этот IP.
Если соответствие имени и IP нигде не прописано — браузер не знает, куда идти. Будет not found. Проверить свои записи можно хотя бы вот так.
В крайнем случае, можно указать это соответствие на своём компьютере, в файле hosts. Тогда ты сможешь обратиться к сайту, а все остальные — нет.
а у меня
и у тебя при наборе IP вместо доменного имени переадресовывается на bezumkin.ru
а у меня так и остается IP :(
2. Настроен сайт «по умолчанию» в nginx.
Пользователя с местом добавил скриптом, phpmyadmin в папку www пользователю залил
Теперь, если я ввожу в браузере testsite.mydomen.myhoster.ru то пишет, что веб-страница недоступна. Если я ввожу IP (который мне хостер присвоил) в браузере, то он меняется на строку testsite.mydomen.myhoster.ru и опять пишет, что страница недоступна.
Я так понимаю, что когда заходишь по IP, то на сервер я к себе всё же попадаю, так как IP меняется на адрес тестового сайта. Но, почему-то не переходит в папку www с дистрибутивом phpmyadmin
Куда копать?
Вопрос в том, почему ты выбрал именно безапачную связку — связка apache+nginx жрёт больше ресурсов для одинаково небольшого кол-ва пользователей, эта связка актуальна только для высоконагруженных проектов, nginx и один прекрасно справляется даже с высоконагруженными проектами, эта связка — «прошлый век», сочетание каких-то факторов, иное (да и вообще хотелось бы узнать твоё мнение по данному вопросу)?
П.С.
Я так полагаю, что предположительные плюсы связки apache+nginx ниже, чем nginx+php-fpm?
Все сайты работают от одного имени, соответственно, при взломе любого сайта — взломаны все.
Также Apache2 можно повешать долгими запросами и вообще, у него очень много недостатков.
На мой взгляд, сегодня просто нет причин использовать Apache2.
Причем, это касается и nginx + apache и apache + php5-fpm.
От Linode это никак не зависит, проверяй записи вот тут whois7.ru/bezumkin.ru?s=ip
По запрошенному имени должен появлять ip линоды.
АП.
О, появились, ты — факир!? :) Реально, часок назад смотрел — не было. Но «страничка с удодом» осталась — пойду с Линодой ковыряться, да ТП пинать.
Значит, нужно делать точно так же: запустить скрипт установки, указать нового юзера и полный адрес поддомена.
Или, если нужно, можно сделать это вторым контекстом и просто дописать его адрес в /etc/nginx/sites-available/sitename.conf, чтобы Nginx на него отзывался. Дальше MODX разберётся, что отдавать, по какому запросу.
В очередной раз пошел нервно курить и мысль скользит: тыж, Андрюша, баран! На виртуалке экспериментируешь, а в хостс поддомен не прописал в винде! *рукалицо*
Вопрос попутно: я прально понимаю, что из конфига нужно это убрать при таком подходе:
домен собственно к линоуду привязывать в DNS Manager? Add a domain zone -> Ввожу домен
а у регистратора прописываю dns-ы ns1(2.3.4.5).linode.com?
ммм, хотя вроде в конце ролика всё разъясняется… не доглядел
1. Ты передаешь свой домен на обслуживание серверам Linode. Тогда надо прописать все данные у них в DNS manager, а у своего регистратора указать NS сервера зоны ns1(2.3.4.5).linode.com
или
2. Твой домен уже кто-то обслуживает, например Яндекс. Тогда ты заходишь в панель управления DNS Яндекса и прописываешь там соответствие твоего сайта и ip твоего VPS на Linode.
DNS manager Linode вообще не трогаешь, он не обслуживает твой домен.
Но в общем по сравнению с голым апачем впечатления от nginx + php-fpm хорошие, вроде как стало все по-шустрее бегать. Благодарю за помощь.
Новый способ рассчитан только на общие настройки, а дальше идут скрипты установки сайтов, ибо в старой инструкции было огромное количество вопросов по непоняткам в конфигурации.
Теперь их нет.
Спасибо!
Я только в одном месте не могу понять.
Написано: В файле /etc/hosts по умолчанию уже написано localhost
то есть все равно нужно, как и в /etc/hostname привести к такому виду?
Смысл в том, чтобы sendmail мог быстро сопоставить домен, на котором он работает, и ip. А свой домен он определяет из /etc/hostname, в которое пишется одна строка с именем сервера.
Вроде ничего не напутал.
Где айпишник свой и имя домена тоже свое.
Мне не понятно содержимое файла /etc/hosts, так как он у меня по умолчанию такой:
Не пойму, нужно ли мне в /etc/hosts производить изменения?
P.S. Смутило меня изменить файл надпись в скобках
Я понял так, что мне нужно было бы в этом файле написать localhost, если бы этой надписи там не было. Но так как упоминание о localhost там есть, я этот файл менять не стал.
Как сейчас я понимаю, я сделал не правильно, что не изменил этот файл — это верно?
У меня в /etc/hostname:
В /etc/hosts:
Видишь связь этих двух файлов через одно имя — bezumkin? Видишь, что оно связывается с реальным ip?
Если у тебя в /etc/hostname будет имя, для которого нет такой связи (и оно, конечно же не прописано ни в одном DNS), то sendmail будет долго тупить при запуске, пытаясь разрешить это имя в ip. У него это не получится, но он будет долго ждать таймаута.
Спасибо Василий!
Просмотрел видео несколько раз, перечитал старую и новую версию темы про хостинг.
Записал в /etc/hostname domain
В /etc/hosts:
127.0.0.1 localhost
127.0.1.1 ubuntu
109.74.203.140 domain domain.pro
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
При попытке отправить тестовое письмо консоль долго думает, а потом выдает:
WARNING: local host name (localhost) is not qualified; see cf/README: WHO AM I?
deniurg@mail.ru… Connecting to [127.0.0.1] via relay…
220 localhost ESMTP Sendmail 8.14.4/8.14.4/Debian-2ubuntu2; Fri, 7 Jun 2013 05:12:21 GMT; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO localhost
250-localhost Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<user@localhost> SIZE=40 AUTH=user@localhost
250 2.1.0 <user@localhost>… Sender ok
>>> RCPT To:<deniurg@mail.ru>
>>> DATA
250 2.1.5 <deniurg@mail.ru>… Recipient ok
354 Enter mail, end with "." on a line by itself
>>>.
050 <deniurg@mail.ru>… Connecting to mxs.mail.ru. via esmtp…
050 220 Mail.Ru ESMTP
050 >>> EHLO localhost
050 250-mx112.mail.ru ready to serve
050 250-SIZE 73400320
050 250 8BITMIME
050 >>> MAIL From:<user@localhost> SIZE=267
050 250 OK
050 >>> RCPT To:<deniurg@mail.ru>
050 250 OK
050 >>> DATA
050 550 Your HELO string is incorrect
050 >>> RSET
050 <user@localhost>… Connecting to mail.domain.pro. via relay…
050 <user@localhost>… Deferred: Connection refused by mail.domain.pro.
250 2.0.0 r575CL0x015855 Message accepted for delivery
deniurg@mail.ru… Sent (r575CL0x015855 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 localhost closing connection
Вижу что у вас выводится EHLO domain, а у меня localhost.
Наставьте пожалуйста на путь истинный =)
Кто обрабатывает почту для этого домена — он сам, или другой сервер? Если другой, то про это в статье написано:
define(`MAIL_HUB', `mydomain.com.')dnl
define(`LOCAL_RELAY', `mydomain.com.')dnl
Данные строки (с моим доменом) так же прописаны.
Происходит такая ошибка на этапе, когда установлен phpMyAdmin и нужно запустить nginx и php5-fpm, что бы он открылся по ссылке.
Уже несколько раз пытаюсь повторить установку по видео и все время спотыкаюсь на этой ошибке.
Только почему-то phpMyAdmin пока не заработал.
Смотри, что у тебя там висит?
Я выполнил команду, результат такой:
После того, как закомментировал строку, как посоветовал Rasul Abu Muhammad Amin выше, результат такой:
Вот, только phpMyAdmin пока не заработал, попробую его переустановить.
На этой странице обнаружена циклическая переадресация
Загрузка веб-страницы по адресу вызвала слишком много переадресаций. Попробуйте очистить для этого сервера файлы cookie или разрешить их прием от независимых сайтов. Если это не поможет, возможно, проблема связана не с вашим компьютером, а с конфигурацией сервера.
С чем это связано и как лечить? В nginx-> site-available и в MODX-> core-> config.core.php юрлу сменил, почту сменил и отрестартил — ровно работает, hosts и hostname тоже сменил, nginx и fpm-php отрестартил, сервак заребутил… Куда копать? У меня мыслишка бродит, что надо зарестартить
Проверь у себя, наверное там ты домен не сменил.
В целом — да, это круто и реально, но подойдёт далеко не всем сайтам. Например, интернет магазину кэширование страницы с корзиной ни к чему.
На этом сайте все тикеты и комментарии выводятся без кэша.
1 при использовании скрипта установки места и сайта
на попытку войти под созданным пользователем реакция таже
2 проблема — не работает php сервис php5-fpm запущен.
При попытке войти на localhost если там лежит html то выдает содержимое. А если php то выдает листинг php кода — воспринимает как обычный текст. На созданном домене картина та же.
ubuntu 12.10
Помогите советом.
2. Тут надо смотреть логи и вывод команды sudo netstat -nlp
2 логи чего именно, где примерно я в линуксе ноль
по netstat что касается php выдает это
Давай, Коля, дальше сам.
Почему то не поднимается сервис php5-fpm по крайней мере в htop его нету ((
Подскажите, пожалуйста, что можно сделать еще?
Вот ответ:
Смысл с отдельном пользователе — не дать повышенных привилегий взломщику при получении контроля над аккаунтом. Если у юзера sudo, это тоже самое, что запускать сайт из под root.
Например, пополняешь на пол года — скидка 5%, на год — скидка 10%.
Или там сколько хочешь, столько и кладешь на счет, а как на счете деньги заканчиваются тебе присылают уведомление?
Если за год — скидка 10%, за 2 — 15%.
Если машину уже купил, и хочешь сменить модель оплаты — пиши в суппорт.
Правда, уже полгода ничего не платил, ибо Linode мне закидывает по 20$ за рефералов, которые отработают 3 месяца.
(ERROR @ /assets/components/tickets/comment.php) An error occurred while trying to send the email: Could not instantiate mail function.
Через sendmail из консоли почта отправляется.
В чём может быть дело?
Еще можно поставить сниппет QuickEmail, он позволяет провести диагностику отправки почты.
Отправка почты при регистрации пользователя через Login обрабатываются, т.е. почта отправляется, в логах записи появляются. А вот при ответе на комментарии ошибка видна только в логе MODX. Я так понимаю, что до sendmail-а дело даже не доходит.
Но в Tickets всё сделано стандартно, через обычный mail сервис MODX. Не знаю, чем помочь.
Или это один и тот же домен?
На почту в Tickets еще никто не жаловался — там действительно все стандартно.
P.S. А у юзеров email то заполнены?
Ладно, буду копать дальше. Спасибо за участие. :)
Кстати, вот нечто похожее:
eduard.kozachek.net/blog/shamanism/%D0%B1%D0%B0%D1%80%D0%B0%D0%B1%D0%B0%D1%88%D0%BA%D0%B0-%D0%B8%D0%BB%D0%B8-%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D0%B5-%D1%80%D1%83%D0%BA%D0%B8-exception-could-not-instantiate-mail-function-%D0%B2-phpmailer/
Как только поменял на латиницу, всё стало отправляться. Странно…
Название сайта может быть и на кириллице, если в системе установить русскую локаль и прописать её в настройках MODX.
Сообщения теперь отправляются нормально.
«Побочным эффектом» так же стало то, что в панели управления стали нормально по русски отображаться даты и время в нормально 24-ч часовом формате.
Pma — это такой же сайт, как и все остальные.
Но это штука такая, не у всех нормально работает — потому и не указал в инструкции.
И еще вопрос, как Linode поступает если я превышаю нагрузку, могут ли они мне что-нибудь отключить, например php?
Какая нагрузка, о чем речь? Всё что есть — всё твоё. Единственно, что лимитируется, это исходящий трафик.
www.linode.com/faq.cfm
Его сейчас подняли в 10 раз, и у меня вот такая статистика: 30GB Used, 2970GB Remaining, 3000GB Quota
Я создаю нагрузку на все в момент резервного копирования (здесь мои страшилки: 1, 2), после чего мне приходят письма:
и
Я продолжал настраивать резервное копирование, тестировать и после очередного превышения (как я думаю, так как совпало по времени) у меня перестал работать php. Php пока запустить не удается, даже перезагрузка системы не помогла.
Ну и среднее потребление 122.9% за 2 часа говорит о том, что у тебя нехорошее резервное копирование.
Скрипт тут.
В вашем примере
используются 2 разных ковычки для начала и для конца, так и должно быть или это опечатка?
Если обратить внимание на другие строки в файле, куда будете вставлять, то там везде кавычки разные.
Sendmail испокон времён хвалят за простой и понятный синтаксис конфигов.
[/sarcasm]
почему тут дубль?
Не хватает слешей для перехода на новую строку перед N, поправте в мане.
что в ней заменить нужно на свое?
Могут ли эти проблемы быть оттого, что я использую технический адрес хостера (li***-***.members.linode.com)
Если есть возможность, подскажите, плз, как настроить в Линоде DNS в таком случае для pma?
Пропиши у себя:
Удачной миграции, учитесь гуглить чтобы камней не было =)
Я не раз сталкивался с траблой, которую опишу сейчас, но до этого момента забивалось, так как не особо критично было, да и не до этого было.
Проблема вот какая: очень часто SFTP коннект «глючит» (при заходе, так вообще всегда) — не даёт скачать/закачать/открыть/сохранить файлы, в остальном — mkdir и иже с ним, перемещение итд работает нормально. С чем сий «сюжет» может быть связан, как его устранить/куда копать?
Активные настрйоки проверяешь командой?
При отключении всех правил должно быть вот так:
АП:
Да, так и есть в записях IPT.
П.С.
Пока писал, тестил нормализацию и нарвался я на то же самое, притих такой и вдруг — БАЦ, и скачалось (раньше, если влипало на такой зависон, не скачалось бы 100%).
Так что двойное спс :0)
Думаю у других пользователей такая же штука…
Кстааати, что вспомнил!
Вот ещё траблочка небольшая — сам по себе кач довольно медленный. Какой бы тот же Петерхост туповатый ни был, но чистая установка MODX Revo заливается через FileZilla весьма, весьма и весьма быстро. А тут что-то не то — очень долго. Подскажешь куда и как копать для решения?
И таймаут на реконнект 31 секунду поставь.
1. Увеличение до 31 секунды вернуло знакомые «помирания», вернулся на 10 — нормализовалось.
2. Уменьшение до от 7 секунд и ниже + явное указание в настройке конкретного подключения режима передачи «пассивный» даёт отсутствие не закачавшихся файлов и маааленькое улучшение скорости.
3. Не нашёл в FileZilla «конкурентный подключения», ни в ней ни в поиске
4. Канал у меня — 7 метров/сек железно гарантированная минималка
5. Снял в FileZilla галочку «разрешить возврат к другому режиму при сбое» (к п. 2, думаю, относится).
Думаю, выходит так: ты соединился, начал качать, интернет отвалился, но ты сессию-то не закрыл. Ломишься опять на сервер, 30 секунд не прошло и тебя не пускают. Пока будешь ломиться — будут банить снова… Надо подождать 30 сек и тогда зайдешь.
Видимо, тебе надо просто связь улучшать.
сам iptables действительно только на новый конект с IP смотрит, видимо перезакрывается сессия
на десктопной установке ubuntu
Match Group sftp при указании в конфиге этой настройки не запускается ssh, если убрать запускается. В инете много тем, но итоговое решение нигде не описано. Проверял не только на своей машине но и на рабочем сервере тоже убунта.
В логи кидает 255 ошибку
Может кто сталкивался что делать?
Я думаю может на linode дистрибутив специально подготовлен и там это срабатывает, а из коробки нет((
Но ошибка систематическая вроде
Создан пользователь site1 добавлен в группу sftp каталоги созданы
вот эта команда если локально на компе пытаться зайти по ssh site1@ubhost выдает
Apr 15 18:25:53 ubhost sudo: mux: TTY=pts/5; PWD=/home/mux; USER=root; COMMAND=/usr/sbin/service ssh restart
Apr 15 18:25:53 ubhost sudo: pam_unix(sudo:session): session opened for user root by mux(uid=0)
Apr 15 18:25:53 ubhost sudo: pam_unix(sudo:session): session closed for user root
хотя заходить пытаюсь site1@ubhost site1 не состоит в sudo
mux@ubhost:~$ cat /etc/group |grep site1
sftp:x:1001:mux,site1
site1:x:1002:
mux@ubhost:~$
Нахера сайтам консоль?! Группа sftp только для sftp, консоль не работает, войти удаленно в нее этой учеткой нельзя.
Вот мой файл, всё тоже самое.
Не видит bash, системных утилит, ничего. Он не может зайти в консоль. А если бы мог — не был бы заперт, понимаешь?
Мне нужно блокировать юзера в его директории. Если тебе нужно другое — придётся поискать свой способ настройки.
Дело то в принципе в том, что судя по нет апу при свойстве матч в конфиге SSH вообще не поднимается и не зайти вообще ни как.
Это касается и sftp, и php. Этот юзер — владалец всего своего сайта и всех его файлов. Больше он ничего не может.
Такая настройка защищает сервер при взломе одного сайта. Бесправный юзер ничего не даст хакеру.
Никто не мешает тебе ходить на сервер в консоль нормальным юзером с sudo привилегиями и делать что угодно с любыми файлами.
Не знаю, как еще объяснить.
То есть данная схема не позволит подключится FTP клиентом и залить что то или путями зайти в каталог? habrahabr.ru/post/89473/ хотя тут такая же схема вороде бы описывается как настройка фтп разделов для пользователей
Давай дальше сам, а? Можешь скачать образ для VirtualBox и посмотреть, почему там работает, а у тебя нет.
Не знаю, что там у тебя.
в hostname
в hosts
Что ещё нужно локалхосту прописать не пойму?
Это может происходит из-за того, что домен еще не делегирован?
Переведите пожалуйста, а то я не понимаю, что это за смарти вообще
Я тебе не помогу, извини.
Нашел такой мануал,
www.linuxdatum.info/mini-howtos/running-winscp-as-sudo
но он выдает ошибку Cannot initialize SFTP protocol. Is the host running a SFTP server?
Безопасность? Не, не слышал.
В A/AAAA Records -> Add a new A record -> Hostname — 123.123.ru и 123.12.12.123 и какое-то время подождать обновления записей, да?
IPv4 почти закончились, и от балды их никто не даст. Если надо — бери бесплатно пачку IPv6, или объясняй зачем тебе необходим еще один IPv4.
Когда мне нужен был новый IP — у меня забрали старый и выдали новый, без проблем.
Да как-то ничего непонятно и ссыкотно от этого)
Они вместо IPv4 выдают IPv6 или в дополнение к?
Мануал конечно есть library.linode.com/networking/ipv6 но от него последовательность действий не прояснилась. Может есть мануал для чайников, настраивавших хостинг по инструкции выше?
Я не настраивал, не знаю что там, как.
Пробуй
Если будет ошибка — смотри логи, на чем спотыкается.
Откуда он берет этот pool m-c ?? Я саайт этот давно удалил.
Пока просто создал эту папку m-c чтоб сайты не лежали…
Может кэш какой есть у этого дела?
ps восстановил полностью вчерашний бекап, а том тоже 502, поудивлялся знатно )
Вопрос: Василий, ни как не могу импортировать БД. Пишет: Ошибка при обработке запроса. Код ошибки: 413. Текст ошибки: Request Entity Too Large
Я так понимаю, что лимит на размер файла стоит. В самом pMA написано 100МБ.
Где еще может быть ограничение? Сама база всего-то 7МБ
Может не туда дописываю? pma.conf? А потом рестарт nginx?
В итоге должно выглядеть примерно так:
user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 768; # multi_accept on; } http { client_max_body_size 100m; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # и так далееУ меня без проблем находится командой
Не так искал (через mc), а в папке 10 раз смотрел — не нашел. Теперь вижу.
Во первых – огромное тебе человеческое спасибо за такое видео и текстовое содержимое! Подобных мануалов я просто не видел.
Примерно за три дня все заработало, и это если учесть, что знаний в этой теме полный нуль.
Очень хочется разораться до конца, закрыть все непонятки в голове так сказать, по этому появился вопрос:
Этот обучающий урок разделен на две части, в одном речь идет про Selectel, во втором уже про Linode и добавлено видео. Сделав все по видео, получился работающий сервер, то есть создал сайт, «покрутил» его, удалил и т.д., вроде бы все хорошо, но в первом материале, который про Selectel есть раздел озаглавленный «Настройка сервисов», вот именно в этом моменте становится не понятно – эти настройки были нужны до Linode или и сейчас надо их делать, причем такие строчки как еще можно понять, что надо бы сделать, а вот такой текст
«Следующий сайт можно создать просто скопировав конфиг этого и поменяв site1 на site2.»
становится не понятным, мы же уже создали директории скриптом и вроде бы как все хорошо работает.
Суть вопроса: часть материала из первого обучения устарела или нет, а может устарело не все? и т.д.
Первая версия оставлена по многочисленным просьбам, из-за комментариев. Там нет автоматизации установки и более подробно расписана ручная настройка хостов.
В общем, используй нынешнюю статью с видео, и не парься.
1. Письмо упорно не хотело отправляться.
Перед установкой
(а если уже установили, то после, но лучше до, иначе как и написано в видео будет долго думать в одном месте) идем в /etc/hostname в этот файл пишем имя (любое слово), далее идем в /etc/hosts и меняем вторую строчку на
Первое это ваш IP, его можно посмотреть в админке linode, второе это имя которое вы внесли в файл hostname, третье имя домена которое вы хотите сделать. (Это можно вычитать в комментах). А дальше… все равно же не работает))). Вычитываем в комментах про DNS и начинаем понимать, что суть настройки немного отличается от тех, как нас научили shared-хостинги. Идем в админку linode и находим там раздел DNS Manager, кликаем Add a domain zone… дальше все подробно расписано вот тут library.linode.com/dns-manager
После этих действий перезагружаем сервак (хотя скорее всего можно перезапустить одну какую то службу, но мне это пока не ведомо) коннектимся обратно и видим, что сменился не только пользователь под которым вы зашли, но и localhost сменился на ваше имя которое вы задали в hostname. На этот раз все должно получится.
2. addplace.sh упорно не работает, сайты не создаются и вообще все плохо.
Убедитесь, что выполнены следующие пункты:
2.1 в /etc/php5/cli/php.ini записано date.timezone = Europe/Moscow
2.2 создан каталог www в var
2.3 Создана группа sftp addgroup sftp
2.4 Разрешили выполнение скриптам chmod +x ./*
Я много раз переустанавливал систему и постоянно, что то терялось, в результате сайты не создавались, решил проблему когда просто поспал.
3. phpMyAdmin
В целом была только одна не большая проблема, когда лезем в /var/www/pma/www/examples/create_tables.sql и начинаем там что то чудовищное делать, главное не промазать и заменить ровно столько раз, сколько показано на видео, лечиться так же сном.
п.с. нашел удобную команду – ctrl+alt+enter (причем левые клавишы а не правые), эта комбинация вставит имя файла/каталога на котором вы сейчас находитесь в командную строку. Когда по видео надо открыть файл редактором nano, то приходится писать имя файла, вот что бы его не писать……
Надеюсь кому то будет полезно.
и вот подтверждение на самом хостинге
Атака была спланированная, негодяи точно знали, кого грабят.
При создании таблиц, получаю ошибку:
root@li191:/var/www/pma/www/examples# mysql -upma -p************ pma < create_tables.sql
ERROR 1045 (28000): Access denied for user 'pma'@'localhost' (using password: YES)
По старым комментам нашёл только возможную причину — не указанный пароль в скриптах. Пароль я точно указал, но в конце пароля используется пробел (типа хитрость такая от keylogger'ов). Короче, возможно ли что ошибка теперь именно из-за этого? Или ещё могут быть причины? Заново систему сносить и ставить, или можно спасти ситуацию?
Блин, проблема не решена:
root@li191-246:/var/www/pma/www/examples# mysql -upma -p pma < create_tables.sql
Enter password:
ERROR 1045 (28000): Access denied for user 'pma'@'localhost' (using password: YES)
root@li191-246:/var/www/pma/www/examples# mysql -u -p pma < create_tables.sql
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'pma'
root@li191-246:/var/www/pma/www/examples# mysql -uroot -p pma < create_tables.sql
Enter password:
ERROR 1049 (42000): Unknown database 'pma'
root@li191-246:/var/www/pma/www/examples#
Значит скрипт adplace.sh, не сработал? Хотя каталог под pma появился…
Как можно вычистить место под сайт, чтобы заново скрипт запустить? И как root пароль поменять в mysql?
И всё равно ошибка осталась.
root@li191-246:/var/www/pma/www/examples# mysql -upma -p pma < create_tables.sql
Enter password:
ERROR 1045 (28000): Access denied for user 'pma'@'localhost' (using password: YES)
root базу 'pma' не видит, ну так походу и было задумано…
root@li191-246:/var/www/pma/www/examples# mysql -uroot -p pma < create_tables.sql
Enter password:
ERROR 1049 (42000): Unknown database 'pma'
Значит ищу не там. В чём ещё может быть проблема?
#1045 Невозможно подключиться к серверу MySQL
собственно говоря логично…
Проверил, запущена ли служба:
root@li191-246:/var/www/pma/www/examples# service mysql start
start: Job is already running: mysql
mysql> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
Собственно говоря Базы данных 'pma' вообще нет
Она же скриптом установки сайта делается.
Сейчас попробую в ручную запросы выполнить
Причём уже новый, без пробелов.
Может быть причина в том что я на Ubuntu 13.04?
И ошибка где-то в другом месте скрипта произошла?
root@li191-246:/modx# ./addplace.sh
Enter username for site and database:
user
Enter domain
domain.ru
Creating user and home directory…
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Creating vhost file
Creating php5-fpm config
Reloading nginx
* Reloading nginx configuration nginx [ OK ]
Reloading php5-fpm
* Reloading PHP5 FastCGI Process Manager php5-fpm [ OK ]
Creating database
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Done. Please visit domain.ru/manager/ to login.
Manager user: user
Manager password: SoxB0JFpWgZm
SFTP password: NOfkmClO31gd
Mysql password: 95qPSb9lwwQG
И снова я перемудрил походу с паролем )))
Пароль задан в виде: ROOTPASS=«fw@fw$$10n@l52y»
Я прав в своих догадках, что причиной проблемы двойные кавычки и два символа доллара в строке?
Давай уже дальше сам, хватить почемучкать.
Ещё раз спасибо большое, старший брат программист не бросил в трудную минуту ;)
Для будущих поколений
Ошибка:
ERROR 1045 (28000): Access denied for user 'pma'@'localhost' (using password: YES)
может означать, что в скриптах где задаётся root пароль к mysql необходимо брать пароль в одинарные кавычки, а не в двойные!
Сегодня днем полетело половина сайтов, то есть вместо отображения сайта выводило окно Nginx 1.4… (как то так, уже не помню даже). Причем слетели именно сайты на modx.
Полез проверять права, наличие самих файлов сайта, все на месте. Почистил в ручную кеш у работающего сайта и он так же слетел (сделал вывод, что все «работающие» сайты просто выдавали мне картинку из кеша).
Перезапустил сервер из панели линоде, после чего все сайты упали на мертво, кроме чистой статики, из этого конечно пошел смотреть на наличие бд, пхпмайадмин не пустил, после не долгих танцев с бубнами, попробовал запустить mysql и все заработало.
Полез по sftp и тут опять подстава — не пускает не на один сайт. Перезагрузил сервер еще раз, стало пускать, причем mysql как и положено запустился вместе с сервером сам…
Вот самое интересное тут это с чего же все могло начаться, минимум три, четыре дня я не прикасался к серваку, все хорошо работало и вдруг такие проблемы. Не может это быть взломом?
А вот почему он упал — другой вопрос. Закончилось место на диске, ОЗУ, нехороший запрос подвесил — тут вариантов масса. Судя по дальнейшим ошибкам, что то в системе сервера не так, проверяй свободное место и среднюю нагрузку.
Взлом можешь проверить по логу /var/log/auth.log.
Резервное копирование осуществляет твой скрипт, а вот вместо Dropbox используется яндекс диск (вот не знаю почему, но Dropbox упорно не захотел работать). Папка куда валяться архивы находиться в root (вот тут кривые руки проявляются) ). Получается, что все архивы попадают в новый архив, увеличивая тем самым объем нового архива на размер предыдущего, ну и каждый день размер вот так вот взлетает… Первые несколько дней это не чувствовалось и я перестал следить за размерами архивов, и вот на пятый день место на диске кончилось, ну и все собственно упало…
И появилась мысль — было бы здорово получить статью основанную на твоем опыте по самым частым проблемам и способам их решения, а то шаг вправо, шаг влево и уже не знаешь что и делать…
+интересно почему не использовался xcache к примеру
155 packages can be updated.
77 updates are security updates.
Как правильно эти апдейты установить и стоит ли?
apt-get update?
Не подскажешь, почему при данной конфигурации отказывается работать функция exec?
Из строчки в файле /etc/php5/fpm/pool.d/site.conf я ее удалил.
Файл /etc/php5/fpm/php.ini, такой же как /etc/php5/apache2/php.ini. Аpache стоит рядом и работает на 8080 порту и данная функция на нем работает замечательно, а вот на nginx работать не хочет?
Еще раз спасибо за отклик, а то искал бы решение проблемы не в том направлении.
Может кто сталкивался?
В /etc/apt/sources.list прописал:
И дальше импорт ключа:
и всё заработало
Подскажи, пожалуйста, как определить, когда пришло время увеличивать ресурсы и переходить на более дорогой тариф?
Настраиваю по этой статье modx.pro/hosting/225/.
Теперь не могу понять когда захожу через Putty то ввожу root и пароль 1234567890 т.е. какой и был. Не пускает. На этом застрял и не могу дальше.
А через сеть нужно зайти как user, а потом сделать sudo mc и ввести пароль юзера, чтобы стать root.
Спасибо!
Если ты шлешь из консоли — так и будет. А при отправке с сайта заполняется mail_from и т.п.
P.S. Ты в курсе, что вместо mydomain.ru должно быть реальное имя сайта? Надеюсь, ради скриншота поменял?
Или ты что-то пропустил при настройке.
И ещё вопрос можно, пока ты не ушёл?)
В файле /etc/rc.local, в котором указывается путь к файлу iptables, у меня на чистой системе было следующее:
Т.е. вот я понятия не имею, что значит первая строка и нужна ли она вообще? Путь к iptables прописал после неё:
Оставить как есть или удалить её?
p.s. хостинг — DigitalOcean
p.p.s. потому что у линоды самый дешёвый тариф дороже, чем самый дешёвый у DO, а мне много пока не надо)
У тебя наверное дистрибутив поновее, похоже там добавили проверку ssh при запуске.
Спасибо!
Перенес сайт. Все сделал по инструкции, но он не работает.
Лог:
Что делать?
Мне про эту ошибку переодически говорят, а я её никак повторить не могу =(
через сервис whois7.ru/ проверяю что домен удже на ip линоды вроде все гуд
добавил сайт в панель ispmanager как обычно и ничего
что еще там надо на linode настраивать?
умничайте в другом месте где то
И если что в верху видео. И в этом видео нет никакого ispmanager по этому вы как минимум ошиблись темой.
После переноса сайты на Evo работают нормально, а на Revo выдают чистый лист. В логах Allowed memory size of 133554432 bytes exhausted. В php.ini лимит 128 мегабайт стоит (ставил 256 — ничего не поменялось)
Все пути и названия БД старые остались, поменял только пароли к БД, которые и прописал в конфигах Revo.
Папка cache остается девственно пустой.
Как можно определить откуда ноги растут?
cloud.google.com/products/compute-engine/#pricing
P.S. если посчитать еще и стоимость трафика, то тогда цены в общем сравняются
А может у кого-то есть Promotion Code? Щас буду региться на линоде
По видео сделал все точно так же, работало безупречно, но после парочку addplace я словил на всех хостах: «На этой странице обнаружена циклическая переадресация»
в этоге только pma.мойдомен.ru работает, остальные высыпают ошибку, логи молчать на наличие ошибок, зато акссесы успешно отображают, ковырял настройки nginx пока без результатно. Сегодня буду пробовать убивать плейсы…
дуракне до конца все проверил.addplace создает domen.conf в нем:
убиваем, сразу все работает.
В MODX этого файла по умолчанию нет Если добавляешь — убирай редирект.
143 packages can be updated
75 updates are security updates
Ввожу команду: sudo apt-get update
И на каком то этапе мне выдается вот это:
Как это побороть?
Попробовал сейчас делать еще раз — все получилось, хотя весь вчерашний день и половину сегодняшнего не получалось…
Да много причин, тем более у бесплатных репозитариев с open source ПО.
Ну так пользуясь моментом… Спасибо тебе Василий за этот сайт, благодаря ему я недавно смог полностью перебраться на убунту (как домашняя машина) и сейчас не могу понять, почему я так долго сидел на винде…
В остальном я сделал все как у тебя, и не встретил тфу тфу не одной ошибки.
partner-energo.su/
Но у меня в упор не хочет работать сайт, я вижу только страничку приветствия nginx
моя OS. Домен добавлял скриптом addplace.sh, все директории созданы, ошибок не возникло при создании…
там будут пути, возможно не правильно настроены, после сделай перезагрузку nginx
Но вот после рестарта сессии в putty на сервер попасть я теперь не могу — «Access denied».
Т.е. я создал нового юзера:
Добавил его в sudo:
запретил вход по ssh под рутом:
и всё — теперь при попытке авторизоваться под myusername, после ввода пароля получаю «Access Denied».
Под рутом, соответственно, залогиниться не могу.
Делать всё заново? :-(
Если получится — смотри в /var/log/auth, почему не пускает myusername. Будет ругань или на пароль, или на неправильную домашнюю директорию, или на её права.
В тот раз ты мне debian седьмой ставил, потому что:
А сейчас я решил всё-таки убунту завести. И всё ведь на ней встало как надо с первого раза, что удивительно.
В прошлый раз, случаем, не такие же проблемы были?)
В общем, печаль. Буду debian тогда по новой ставить. Только на сей раз доступ из под рута сразу запрещать не буду)
Конечно, удачи!
Но как оказалось — где-то всё-таки произошёл косяк — то ли права были не выставлены до конца, то ли вообще юзер толком не создался, но факт — пустить меня под этим юзером сервер отказался. И пришлось делать всё заново.
Ставил все по Васиному мануалу на Ubuntu 14.04.
Никаких проблем (правда, снес Apache за ненадобностью), кроме того, что Reg.ru однозначно медленней, чем Linode, на планах, сопоставимых по ценам.
У линоды, на сколько я знаю, нет серверов в России.
Ну а кто еще нет — тот уже наказан, конечно.
Но. Мне как разработчику/сеошнику/спец.по контексту/дизайнеру/верстальщику менеджеру по продажам и ген.директору (без шуток, такой набор) — реально некогда заниматься дополнительными рисками. Я делаю на года — один раз настроил — и оно работает. Иначе ни хрена ничего не успею. Дополнительная юридическая волокита мне, как владельцу хоть какого-то бизнеса, даже в далёком будущем — ни к чему.
Риски каждый выбирает для себя сам. Такие дела.
Логинюсь по ssh под обычным юзером.
Потом вбиваю
Ввожу пароль от root и не пускает — пишет «Sorry, try again».
Потом вбиваю пароль от этого самого обычного пользователя и вуаля — я под рутом! Это нормально?
Т.е. чтобы через sudo войти из под рута мне нужно ввести не рутовский пароль, а пароль обычного юзера!
Вот что за хрень? И вроде руки ведь ровные — явных патологий и искривлений нет, а всё-равно какая-нибудь фигня каждый раз всплывает.
Вот скрин (лишнее замазал):
Ты — не root, ты пользователь с привелегиями. Чтобы стать root, тебе нужно набрать su и тогда уже потребуется пароль от root, а когда ты используешь sudo — ты вводишь свой пароль.
Эта система нужна для того, чтобы раздать юзерам особые права, но не говорить им пароль от суперюзера, ферштейн?
А почему тогда раньше после sudo нужно было вбивать пароль от рута?
На данный момент у меня
В этом дело?
Если раньше тебе нужно было для sudo вводить пароль root, значит у твоего юзера и у root были одинаковые пароли.
Потом отчаялся и попробовал на Ubuntu 12.04.4 x32 — все стало идеально, ни одной ошибки!
Выяснилось, что после reboot nginx не стартует автоматически. (раньше работало)
Попробовал sudo update-rc.d nginx defaults — написало, что всё уже есть
в boot.log про nginx ни слова
Что нужно прописать, чтобы nginx стартовал автоматически при запуске?
Пользователя с местом добавил скриптом, phpmyadmin в папку www пользователю залил
Теперь, если я ввожу в браузере testsite.mydomen.myhoster.ru то пишет, что веб-страница недоступна. Если я ввожу IP (который мне хостер присвоил) в браузере, то он меняется на строку testsite.mydomen.myhoster.ru и опять пишет, что страница недоступна.
Я так понимаю, что когда заходишь по IP, то на сервер я к себе всё же попадаю, так как IP меняется на адрес тестового сайта. Но, почему-то не переходит в папку www с дистрибутивом phpmyadmin
Куда копать?
UPD. Добавил еще одного пользователя и прописал ему реальное имя сайта. Теперь, по какому бы имени я не заходил (IP сервера, или testsite.mydomen.myhoster.ru, или realsitename.ru) все равно попадаю на адрес testsite.mydomen.myhoster.ru с надписью о невозможности найти страницу. И еще, посмотрел по адресу /var/run и нашел там только один файл php5-user1.sock
Я так предполагаю, что должен быть еще такой php5-user2.sock
Вопрос остается прежним: Куда копать? :-)
Если есть желание разбираться — перечитывай\пересматривай инструкции, и разбирайся. Серверов по ним настроено уже несколько сотен, так что они проверены много раз.
Если нет желания разбираться — добро пожаловать на готовый рабочий хостинг.
Теперь имеем следующее:
1. Сайт с реальным адресом (realsitename.ru) работает. По крайней мере phpMyAdmin запустился
2. Сайт testsite.mydomen.myhoster.ru по-прежнему не стартует. Но это не важно. Я так понимаю, что с этой же проблемой столкнулся господин СикретНаме.
Будем разбираться дальше :-)
Попробую еще поддомен на реальный адрес поставить.
GZip
Создание и распаковка GZip архивов требует наличия функций (gzencode), которые недоступны на данной системе.
И чего делать?
Тут или
— php собран без поддержки zlib
— функция gzencode отключена в конфиге php.ini
— какой-то непонятный глюк
Подозреваю, что ты устанавливаешь не Ubuntu на сервер, и там php скомпилирован без zlib.
Подробности в поисковике.
Что прописать в /etc/hostname и /etc/hosts. Ну и в /etc/mail/sendmail.mc соответственно.
Соответственно имеем:
/etc/hostname
127.0.0.1 localhost
195.167.123.115 name.hoster.ru name
/etc/mail/sendmail.mc
define(`MAIL_HUB', `name.hoster.ru.')dnl
define(`LOCAL_RELAY', `name.hoster.ru.')dnl
так?
В гугле ответа не нашел, при попытке зайти на phpmyadmin, показывает 502 Bad Gateway
В логе nginx
В этой строке идет
Сайт встает, только скрипт не удаляет папку setup, и не создает assets
Причем конкретно виснет, по графику в панели линода видно что CPU работает на максимуме.
yadi.sk/i/9uIVtvrObsfZn
А в картинках очень важная инфа была, я полагаю
С версии php-5.5 акселераторов и вовсе нет — всё вшито сразу в ядро.
Сервер зависает и его не отпускает до перезагрузки.
В чем может быть проблема?
Я все сделал по инструкции, у меня есть domain.ru. При установке phpmyadmin я прописываю так же юзер pma, домен pma.domain.ru. У меня ничего не работает…
Переделывал 3 раза. Сносил и делал по новой. Сам домен работает, страница «503» модекса отображается. Может надо что-то еще сделать, чтобы поддомен заработал?
Возникла проблема при установке связки Nginx+PHP5-FPM на Ubuntu 14.04.1.
Проблема заключается в том, что сервис php5-fpm не хочет перезапускаться и останавливаться командами
Приходится «убивать» каждую копию процесса через htop. После этого запускать сервис. Только после таких манипуляций он считывает конфигурацию нового сайта. Может быть Вы сможете подсказать как исправить данную проблему. С Ubuntu 12.04 таких проблем не было.
Проверь системные настройки кэширования.
Хочу настроить сервак на digitalocean по этой инструкции. Вроде все понятно и все сделал, но застрял на установке pma. Создал место под сайт, залил туда все файлы… Пытаюсь запустить pma.сайт.ru и ни в какую… ns адреса я менял, и домен вроде к серверу привязался… но с поддоменами какая-то беда… они почему то снова страницу старого хостинга отдают…
Пробую создавать другой поддомен — та же картина… просто не работают… Основной домен отдает стандартную заглушку truthisonlyone.ru
помогите понять в чем дело… с меня деньга или пиво) как договоримся)
но при этом получается так: если пользуюсь скриптом addsite, то все нормально… modx на поддомене заводится.
Но если запустить addplace, то на поддомен не пускает и выдает ошибку старого хостинга…
бред какой-то…
Скажите, сервер настроенный по этой инструкции подвержен этой уязвимости?
Переношу сайт, заливаю базу данных. Выскакивает 504 Gateway Time-out.
Наверняка можно увеличить время ожидания в настройках nginx
Или SSH
mysql -u user -p dadabase < /path-to-sql.sql
Будет предложено ввести пароль от пользователя, и все.
Для идущих по моим граблям:
1. Заходим в MySQL: mysql -uLogin -pPassword (вместо Login и Password вводим данные для авторизации пользователя БД)
2. Выбираем базу данных: use db_name (вместо db_name вводим название БД)
3. Делаем импорт файла в выбранную бд: source db_name.sql (вместо db_name.sql вводим название файла дампа БД или путь до файла, если вы находитесь не в той папке, где лежит файл)
Подскажите, как на стороне сервера заблочить переходы с этих ресурсов? Буду признателен за подробный ответ, что куда вписать. В благодарность пополню счет мобильного телефона на 200р. Спасибо!
2. Можно написать правило в nginx, чтобы отдавать запросам с определённым referrer код 403.
1) Вся фишка в том, что это не люди. По статистике средняя длительность сеанса по этим переходам равна 00:00:00, показатель отказов 100% и так далее.
2) Мусор в статистике мешает реально оценивать эффективность по продвижению сайта.
3) Всем известно, что поисковики учитывают поведенческие факторы и кто знает, насколько такой трафик может навредить (особенно если сайт молодой).
Можно конечно отфильтровать такой трафик в статистике, но, по-моему, лучше проблему решить в корне и заблочить такие сайты.
Вчера настроил блокировку по этому гайду eclecticquill.com/2014/12/11/use-nginx-to-block-referrer-spam-from-semalt/ Посмотрим, поможет ли. О результатах отпишусь.
Полтора года работы сервера настроенного по данному материалу было блестящим, но с месяц назад сервер стал регулярно падать, примерно раз в 4-6 часов. В панели ленойда показывало большую нагрузку на процессор и большие объемы записи на диск.
Как найти проблему когда не являешься профессионалом в данном деле?
1. Начал отключать сайты по очереди, выявляя в каком из них проблема и что бы понять являются ли они вообще проблемой. К сожалению даже полное удаление всех сайтов не помогло, сервер продолжал падать.
2. Решил все переустановить, но вот незадача, сервер все так же продолжал падать. Переустанавливал со сменой паролей, сменой директорий множество раз, но все было четно.
3. Смотрел все возможные логи, но это как темный лес, до сих пор не понимаю, как их расшифровывать (хотя иногда все таки помогают).
В конечном итоге хотел просить о помощи на этом сайте, но перед этим решил как можно дольше понаблюдать еще раз за программой htop. Эта утилита показывает все процессы системы в реальном времени. Заметил частую активность Sendmail. Стал копать в эту тему и выяснил, что он создает очередь писем из файлов, что бы их отправлять постепенно, а не всем скопом, но если очередь очень большая, то сервер будет падать из за постоянной нагрузки (в моем случаи 4-6 часов).
Sendmail создает очередь в директории «/var/spool/mqueue», пошел туда и обнаружил таких файликов на 3.5гиг (то есть очень много).
Оказалось, что сайт друга на joomla был взломан, и отправлял кучу спама, а снос всех сайтов не помогал, потому что огромная очередь уже была создана и без самого сайта просто не росла, но уже созданные файлики роняли сервер.
Понимаю, что все это на детском уровне, но на мой взгляд такие тексты очень полезны людям которые хотят обучаться, но из за статей на птичьем языке не могут это сделать.
С него и почта лучше доходит, и спам фильтруется, и при высокой нагрузке тебя сразу отключат и предупредят.
Но так или иначе лично мне не нравиться что то делегировать на сторонние ресурсы.
Была история с яндекс диском, который я настраивал для бекапа, который в конечном итоге положил весь сервак и множество компов (не помню где, но яндекс извинялся за происшествие и выдал много гиг бесплатно, у меня например сейчас 210гиг).
Как то использовал комментарии от вк, которые исчезли из за каких то нарушений прав, даже разбираться не стал, просто их не использую.
Понимаю, что smtp это далеко не то, что в примерах, но все же взял курс на как можно меньшее делегирование чего либо. Хотя именно с smtp еще надо подумать, идея звучит действительно не плохо.
То почта перестает отправляться.
Ошибка, если использую AjaxForm:
При FormIt:
Может здесь нужно другой порт указывать?
Всё работает, проблем нет.
А с modx.pro, так же письма уходят?
И что выбрать если установлен Sendex, наверное у Яндекса есть ограничения?
Все нормальные дополнения используют системные настойки. Ограничения, наверное, есть, но мне они пока не мешали.
1. Настроил почтовый клиент — принимает и отправляет почту через smtp.yandex.ru замечательно.
2. Перепробовал все настройки почты в MODX — тоже результат нет.
3. Менял хостинги, на modhost.pro поставил последние версии MODX, AjaxForm и FormIt — пока не включаешь mail_use_smtp — да, почта отправляется, как только включишь сразу же ошибка:
Даже уже и не знаю, что и где еще можно сделать.
Василий, может у тебя есть идеи, почему он вдруг начинает писать Неверный адрес отправителя?
Хотя на Линоде по другому ошибку пишет:
Это «от кого не соответствует smtp юзеру». Почта должна отправляться от имени юзера Яндекса — они не любят спамеров.
В поле REPLY_TO можно писать кого угодно, а FROM может быть только только smtp юзер.
Не будет работать с smtp.yandex.ru, нужно еще что-то донастраивать?
Сейчас все работает, как надо!
Перенес сайт, который исправно отправляет почту через smtp.yandex.ru с хостинга modhost.pro на хостинг настроенный по этой инструкции на Линоде, почта перестала отправляться, в итоге ошибка:
(ERROR @ /index.php) [FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером
Василий, а в чем здесь может быть причина?
Делаю уже не первый раз, всё делалось на сервере 20 сайтов, полностью всё на сервере убивал и перезапускал, все основные конфигурации проверил всё отлично.
В имени тире или нижнее подчёркивание не использую
Помогите пожалуйста!
Измени имя юзера или удали существующего.
Хочу чтобы добавлялся ко всем урлам закрывающий слеш (как на modx.pro), но не пойму как правильно это прописать. Нагуглил вот такую конструкцию:
Вставляю ее вот сюда:
Все хорошо срабатывает, но вот когда встречается например pdf файл, он отдает 404 ставя слеш в конце /name.pdf/
Приходится всевозможные форматы перечислять тут:
Это правильный подход, или есть способ и конструкция проще?
Он смотрит id в начале url и перенаправляет на верный адрес.
the Match block was not added just before the UsePAM line. Instead, the Match block was appended to the file and the UsePAM line was somewhere earlier.
«Взломали» один сайт на хостинге и стали спамить, я всё нашел и вычистил, но sendmail упорно пытается отправлять письма.
В логах nginx по только обращения к уже несусществующим файлам, то есть отдает 404.
В самих письмах никакой толковой информации нет, а в var/spool/mqueue постоянно создаются файлы с содержанием писем и строкой,
x-php-originating-script: 1008:inc.php, но такого файла в каталоге этого пользователя уже давно нет (это один из внедренных файлов, занимавшихся рассылкой). Откуда sendmail его берёт?
Проблема в том, что sftp пользователь не может подцепиться, потому что «This service allows sftp connections only». Каким образом, если это возможно, можно разрешить этим пользователям SSH?
Но тогда встанет куча других вопросов, что можно юзерам, а что нельзя — это всё непросто. Пользуйтесь хорошими хостингами, типа modhost.pro, там уже это сделано.
Навскидку я вижу только один путь решения: пушить на сервер через пользователя git, дав ему ssh и после этого уже раскидывать куда надо, но это, безусловно, не дело. Куда копать в сторону конфигурации sftp/sshd на предмет того, чтобы не настраивать «с нуля» всё, а подружить с уже имеющейся, построенный по вашим лекалам структурой?
Дальше сами копайте.
Сейчас оно отключено, но если у тебя старый скрипт и конфиг — там включено, проверяй.
Там увидишь .conf своих сайтов.
Открываешь нужный конф и ищешь строчку, начинающуюся с
php_admin_value[disable_functions]
Вот здесь и поправь.
Не сразу получилось, но спасибо всем за коменты очень помогли, информации здесь предостаточно.
СУПЕР!!!
хотя видимо это не то что нужно…
Прикрепил к шаблону доп. переменную, на странице заполняю поле, сохраняю. Ошибок нет, но данные не пишутся в таблицу site_tmplvar_contentvalues.
Подстажите, пжлст, с чем это может быть связано, куда копать? Ресурсы, шаблоны, чанки, сниппеты и сами переменные создаются.
Что искать в логах? И в каких конкретно? Вот лог /var/log/mysql/error.log — file.modx.pro/files/8/2/4/824a0e78dec53d334dba2b138b9230a0.txt
Устанавливал следующие пакеты:
mysql-server
php-fpm php-mysql php-bz2 php-curl php-db php-gd php-gettext php-imagick php-mbstring php-mcrypt php-memcache php-tidy php-xml php-xmlrpc php-zip unzip zip htop
nginx
JS также никаких ошибок не дает. Возможно, кто-то озвучит решение
mysql -u root -p
SET GLOBAL sql_mode = '';
quit
Можно еще так: SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
Видел в мануалах по настройке сервера.
Сайт установил, все но пароль от админки не подходит(((
Походу поменяли шифрование паролей в базе и что теперь делать не ясно.
hosts:
hostname:
Результат выполнения команды # echo -e «To: myemail@ya.ru\\nSubject: Test\\nTest\\n» | sendmail -bm -t -v
На этом останавливается и больше ничего не происходит. Уже 3-й день не могу ничего с этим поделать.
ping smtp.yandex.ru и ping mx.yandex.ru проходит.
Ответ QuickEmail:
Также нужно по ssh выполнить команду sudo poweroff. После чего, через несколько секунд, в панели управления сервером выполнить Hard Reboot.
Сейчас выдает такую ошибку при переходе на https:// сайт. рф
nginx-конфиг:
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04
Пункты 1,4 и 5.
Решил попробовать настроить по этой инструкции Ubuntu 18,04 + php7.2
И ничего у меня не получается. Все пакеты установились, кроме php-mcrypt, но он вроде как входит в состав PECL, а он вроде как установлен. (Я правда не сильно понимаю о чем пишу)
Из ручных настроек только конфиг nginx:
Но сайт не поднимается.
Подскажите куда смотреть, что делать?
Сам спросил, сам отвечу. Может кому и пригодится (такому же «специалисту», как я)
Нужно просто немного поправить пути в скриптах Василия. И все работает!
Вот только в скрипте addsite.sh есть закомметированная строчка:
на нее ругался php-fpm и не хотел стартовать, поэтому я ее удалил.
Ну, и есть нюанс с настройкой mysql, он не спрашивает пароль при установке, поэтому действовал по этой инструкции.
Да, еще при установке пакетов убираем версию php:
iptables и sendmail не настраивал.
Не претендую на оригинальность, но надеюсь, кому-то поможет.
Замечания приветствуются.
Сделал вот так:
проверяю:
python -V
Python 2.7.9
Однако, тот же Let`s Encrypt всё равно ругается и не хочет обновляться.
Полностью переустанавливать и перенастраивать весь сервер как-то неинтересно было бы :-(