root 0 PHP Linux Ubuntu Tweaks Фриланс Без комментариев
|
Одна из причин не использовать Plesk
Картина Репина:
Plesk. Поменял версию PHP для одного домена на VPS. Ответ: Information: The settings were successfully updated. The website settings will be applied in 30 minutes. Вопрос: Нахуй так жить ? В 2017-м году хостинговая панель управления не умеет менять версию PHP чаще, чем раз в 30 минут ? Вывод: Plesk не нужен.
|
root 0 Linux Ubuntu Tweaks 1 комментариев
|
x264_cpu_detect: Assertion `!(cpu&(0x0000040|0x0000080))' failed
Sometimes ffmpeg users could meet following error message when decoding something using ffmpeg with x264 codec... ffmpeg: common/cpu.c:248: x264_cpu_detect: Assertion `!(cpu&(0x00000400x0000080))' failed. Or ffmpeg: common/cpu.c:251: x264_cpu_detect: Assertion `!(cpu&(0x00000400x0000080))' failed. This means that your CPU doesn't supports real hardware decoding, and could be slow during this process. Unfortunately bad developer guys decided to interrupt entire process if CPU doesn't support this feature. Even if you will re-compile ffmpeg from source - you will get this error message. I spent few hours before understood how to fight and win this problem.
So, let's compile ffmpeg from scratch using Ubuntu (other distro could be different with package names, but process of compilation is the same):
1. Install required packages. apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev 2. mkdir ~/ffmpeg_sources 3. cd ~/ffmpeg_sources 4. Compile x264 codec: wget http://download.videolan.org/pub/x264/snapshots/last_x264.tar.bz2
tar xjvf last_x264.tar.bz2
We should find part of code similar to this:
if( model == 9 model == 13 model == 14 )
That's all. Then we must save file and continue compilation.
PATH="$HOME/bin:$PATH" make 6. Enjoy. If this manual will not work for you, please google for another, but please understand trick to make x264 working with your PC: edit file "common/cpu.c" and comment/remove from it CPU checking. Hope I helped you. If so, please say thanks :))
|
root 0 Tweaks pfSense Сетевое железо Mikrotik Домашний хостинг 5 комментариев
|
Подключение к внешнему IP-адресу из внутренней сети для роутера Mikrotik
Пил сегодня кофе у друга на работе в гостях, общались о том о сем, и друг мне поведал об интересной проблеме: у него на работе стоит неплохой сервер, где хостятся их сайты, но эти сайты недоступны изнутри. Пока в чашке был кофе, мы немножко помучали его "роутер", как он называл свою коробку на базе PfSense, но к сожалению кофе закончилось раньше, чем мы успели найти решение. Этот PfSense отлично решал эту проблему ранее, но очередное обновление изменило интерфейс настроек, и мой друг-любитель ГУЁв, теперь сидит с головной болью в поисках большой галочки "Сделать все" :) Ну да ладно, статья не о друге. Дома у меня творится примерно такая же ситуация, только в других масштабах. Точно такой же сервер, точно такая же организация сети, разве что железо поновее, и во главе стола сидит его величество Mikrotik. Поскольку у меня и у жены (а мы - основные потребители наших сайтов) на устройствах стоят Linux, то проблема была решена относительно бескровно, хотя и костыльно: при помощи записи в /etc/hosts. А теперь, мудаки с просторов интернета, советующие делать подобные костыли нормальным людям - разбежитесь и ударьтесь об стенку! Это не решение. И сегодня я осознал, почему... 1) Представьте что у вас ноутбук. Как у меня, да, с которого иногда можно поработать, или написать статью на своем сайте, подобно этой. Все хорошо, /etc/hosts, и все работает вроде как. А теперь берем этот самый ноутбук, и идем к другу хвастаться своим сайтиком. Садимся, а сайтик-то не работает! Несколько минут смеха, а потом судорожное открывание консоли, и комментирование записи в /etc/hosts. Была бы на месте моего друга какая-нибудь девушка, она бы наверное не дала такому неудачнику. 2) А представьте себе что у вас Wordpress, но нету домена, что вполне логично, ибо вы оттачиваете свой сайт, для того чтобы на днях купить под него какое-нибудь интересное доменное имя. И ведь логично, что для открытия этого сайта мы будем использовать прямой IP-адрес сервера, ну например http://192.168.1.2, кой и будет внесен как SITE URL в настройках Вордпресса. И это будет работать. А теперь представляем, что получится если на наш сайт попытаться зайти извне? Мудак, которого я раньше упоминал, может спросить "а зачем это делать?" А затем, мудак, что можно попросить друга открыть твой сайт у него из дому, потому что...у него в отличие от тебя, дома есть экзотический Windows с Internet Explorer, только у него есть монитор с каким-нибудь идиотским разрешением 1280х1024, и только он сможет зайти на твой сайт с планшетика на Android, о котором кстати мы еще поговорим. А еще можно пользоваться всякими интересными утилитами вроде Google Pagespeed Insights. Итак, если мы зайдем на наш сайт извне, первый запрос будет успешным, и первый ответ нашего сервера будет тоже успешным. И это будет редирект 301. Куда ? Мудак наверное не догадается, но я подскажу: на http://192.168.1.2, который мы прописали в Вордпрессе. 3) Ну а что будем делать с телефонами, планшетами, на Андроидах и Виндовсах, с которых тоже хочется и сайтики свои потестить, да и просто в них поработать ? Будем рутовать, костылить, ломать ?
В общем задумался я о том, что у меня появилась проблема, такая же как и у друга. Правда ребята из Mikrotik предоставили более адекватное решение, нежели ребята из условно-OpenSource PfSense, по крайней мере на поиск этого решения мне понадобилось полчаса и гронка винограда. Итак, как зайти по внешнему IP-адресу из локальной сети?
1) Заходим на страницу настройки IP->Firewall->NAT 2) Создаем новое правило 3) Chain выбираем dstnat 4) Src address указываем нашу внутреннюю сеть с маской, например 192.168.88.0/24 5) Dst address указываем наш адрес, который виден извне, например 74.90.54.2 6) Dst port конечно же ставим 80. Для каждого порта нужно будет делать свое правило 7) Опускаемся ниже, и в Action выбираем dstnat 8) В поле To Addresses прописываем внутренний IP-адрес нашего сервера, например 192.168.88.2 9) На этом все. Поднимаемся вверх, жмем Apply/Ok, наслаждаемся.
Отдельно хочу отметить, что удивлен сложившейся ситуацией: в самом нищебродском старом TP-link, в самом убогом ddwrt, есть галочка для решения этой проблемы проброса. В монстрах от Mikrotik, pfSense, и прочих Smoothwall - приходится лезть в дебри, и включать разные фичи с переменным успехом. Или заходить из своей сети на свои же сайты - очень не популярно?
Кстати буду благодарен если в комментариях напишут как настроить этот NAT Loopback на PfSense последней версии. Рабочее решение, пожалуйста :) |
root 0 Умный дом Сделай сам Печатные платы ESP8266 Без комментариев
|
ESP8266 прошивка по WiFi
ESP8266 - маленькое устройство для DIY. В этой статье мы разберем, как можно красиво прошивать устройство на лету, в те моменты когда оно не подключено физически к ПК. Да да, через WiFi. Таким образом мы можем изменять и дополнять функционал тех девайсов, которые уже находятся в работе.
Создавать свой способ перепрошивки мы будем на основе популярной прошивки NodeMCU, поэтому я подразумеваю что у вас есть уже готовый девайс, подключенный к ПК через UART. Разбирать, где скачать NodeMCU и как перепрошивать - я не буду, мануалов в сети масса. Перейдем к самой сути.
Основная идея прошивки на лету - возможность NodeMCU вставлять и исполнять файлы .lua на лету. Это означает что мы можем создать один статический файл (пусть это будет init.lua), в который можем вставлять другой файл (например test.lua), который в свою очередь будет динамическим и содержать нашу "прошивку".
Много ерунды писать не буду, а сразу приведу полный скрипт.
Теперь вкратце разберем что какой блок делает. -- 1: Создаем веб-сервер. Все как обычно. -- 2: Все GET запросы передаем в переменную vars -- 3: Если в GET запросе получаем строку "fwstart", то открываем файл test.lua на запись. Файл пересоздается. -- 4: Если в GET запросе получаем строку "fwend", то сбрасываем буферы, и закрываем файл test.lua -- 5: Если получаем POST запрос, и при этом в GET запросе есть строка "fw", то считываем то что пришло в POST-запросе, и пишем в файл test.lua -- 6: Конец веб-сервера. И запускаем файл test.lua Это все.
Теперь как этим пользоваться, в картинках.
Интерфейс ESPlorer. Еще ничего не прошито, ESP8266 - девственно чиста
Теперь прошито. Файл test.lua не найден. Ведь мы еще ничего не создавали.
Теперь открываем линуксовую консоль (проще всего делать там, главное поймите принцип)
Собственно процесс прошивки таков: curl 'http://192.168.88.223?fwstart'
curl --data 'print("This is a test!!")' http://192.168.88.223?fw
После перезапуска ESP8266, видим что прошивка подхватилась, и вывела в консоль наши три предложения
Собственно на этом все, далее можно модернизировать программу по своему усмотрению.
|