LINUX.ORG.RU

Сообщения k0ttee

 

Suspicious symbols NGINX

До перехода на HTTPS у меня все работало «без WWW». Теперь пришла пора добавить еще немного инструкций склейки.

Вот конфиг для «любой сервер_нейм» (чтоб каждому домену не писать).

server {
        server_name _;

        #раньше только "с WWW" отправлял на "без WWW"
        if ($host ~* ^www\.(.+)$) {
                set $newhost $1;
                return 301 https://$newhost$request_uri;
        }

        #теперь нужно с "HTTP" направлять на "HTTPS"
        if ($scheme != "https") {
                return 301 https://$host$request_uri;
        }

}

Домены у меня описаны такими блоками

server {
        listen 80;
        listen 443 ssl http2;
        server_name https://site.ru;

        root /var/www/site.ru/folder;
        index index.php;

        ssl on;
        ssl_certificate     /etc/letsencrypt/live/site.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        }
}

И когда я делаю тест конфигов (nginx -t) на выхлопе варнинг.

nginx: [warn] server name "https://site.ru" has suspicious symbols in /etc/nginx/sites-enabled/site.ru:17
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Оно работает, но «подозрительные символы» :))

Лишних пробелов нет, точки с запятыми на концах строк есть... Что ему в символах не нравится то?

Если убрать из имени сервера протокол https, тогда редирект http://site.ru => https://site.ru перестанет исполняться.

 , ,

k0ttee
()

Как монтировать RamDisk без возможности извлечения?

На борту имеется SSD, а чтоб снизить износ - кэши с говнами переселены на RamDisk.

Но есть проблема - в файловом менеджере есть кнопка извлечения рамдиска.

Как примонтировать диск так, чтоб система видела его не съемным (без возможности извлечения)?

 , ,

k0ttee
()

Возможно ли программно изменить распиновку?

Имеется мини-джек, в который подходят уши с распиновкой «как делала Нокия». Если вставить уши «как делает Apple», послушать звук не удается.

Возможно ли программно развернуть земля и сигнал у мини-джека?

 

k0ttee
()

Что флаг npci=0x2000 делает?

Ну или npci=0x3000

Гуглил RU&EN запросами, но дока не встретилась. Находил только бездумное «попробуй загружаться с флагом если не загружается или паника ядра».

Интересует ссылка на доку (желательно русскоязычную).

man grub не подойдет (у меня загрузчик Clover).

 ,

k0ttee
()

WEBP против BPG и WTF

WTF это не формат... это WhatAfuck :(

В 2010 году появился WEBP... Еще в каком-то году вылез открытый BPG... На дворе 2016, а побеждает WTF (вебмастеры срались на тему «какой лучше», девелоперы выкатили полифилы).

Потратив часок на webpJS, так и не заработали гуглокартинки в моем Safari 9.1.1 (в системе macOS 10.10.5)

Собственно. Нужен какой-то легкий формат с рабочим полифилом, чтобы картинки открывались в хром+хромиум+опера+лиса+сафари.

IE не браузер. Apple обещали добавить WEBP в Safari (но только в macOS 10.12.X и iOS 10.X.X)

 , ,

k0ttee
()

Шум в USB-звуковой карте

По идее «изолированное» звуковое оборудование (USB-микрофон) начинает пищать после включения записывающих приложений.

Когда устройство играет роль внешней звуковой карты (играет системные звуки или молчит) писка нет... Но, стоит запустить диктофон, как тут же начинает.

Образец писка http://dl.waix.ru/58d972802.mp3

 , ,

k0ttee
()

Чем разобрать и собрать TIFF многостраничные?

Дано: груда иконок (icns & tiff), желание их облегчить.

Для icns уже написал скрипт пересборки:
1.) расколдовывает icns-файл в папку с набором png'шек
2.) оптимизирует вес (на 30-70% облегчает)
3.) заколдовывает обратно в icns-файл

Вопрос:
Чем расколдовывать многостраничный TIFF в набор картинок и заколдовать обратно? Разумеется через консоль.

 

k0ttee
()

Ищу VDS в Сан-Франциско

Нужен хостер (в идеале русскоговорящий) с размещением в Сан-Франциско.
...Или наставление на правильный поиск подходящих.

Лос-Анджелес далековато будет.

Поиск по дата-центрам есть (и вроде SVTIX подходит)
http://www.datacentermap.com/usa/california/san-jose/svtix.html
Но как найти непосредственно хостеров, размещающих VDS/VPS там?

Сан-Хосе вроде не сильно далеко от Сан-Франциско, но может найдутся варианты ближе?

 , ,

k0ttee
()

Что за «лицензии на контент» в Chrome?

В хроме теперь можно чистить кроме кэша & кукисов & истории & паролей еще и какие-то «лицензии на контент»...

Вот сертификаты в браузере - это понятно. А «лицензии на контент» чем в браузере занимаются?

Поверхностное гугление не дало ответов, а рыться особо некогда - сильно занят микроразметкой и rich snippets.

Скринец http://ruseo.net/download/file.php?id=4361

 ,

k0ttee
()

Как писать путь относительно файла bash-скрипта?

Написал костыль, чтобы подсветка регулировалась с клавиатуры. Два файла (один прибавляет, другой убавляет) привязал к нужным хоткеям. И текущее значение сохраняю в файл.

Вот убавляющий:

#!/bin/bash
step=5 #шаг подсветки
current=$(</home/k0ttee/Костыли/backlight-fix/cache.txt) #читаем сколько сейчас
let new=$current-$step #вычитаем один шаг
xrandr --output eDP1 --brightness 0.$new #меняем подсветку
cp /dev/null /home/k0ttee/Костыли/backlight-fix/cache.txt #выпилить старое из файла
echo $new >> /home/k0ttee/Костыли/backlight-fix/cache.txt #новое значение в файл

Как писать, чтобы пути были относительными?

 

k0ttee
()

Kernel Extensions для Atheros AR5BWB222

Карточка Atheros AR5BWB222.

В убунтах работает (BT & WiFi). В FreeBSD не работает, но говорят MadWiFi помогает. В OS X Mavericks нет для неё kext'а.

Последнего хотелось бы, а сам быдлокодер php'ист.

Платформа «не шибко открытая» (смотри абзац после содержания) в википедии https://ru.wikipedia.org/wiki/Qualcomm_Atheros

Если вообще возможно написать/портировать для Qualcomm Atheros AR5BWB222 расширение ядра под макось, пишите сколько будет стоить.

k0ttee
()

Какие косяки в железе вызваны жадностью?

Сам я веб-быдлокодер и в железе не шарю, но вот стало интересно «как проектировать на помойку» и «возможен ли комп как холодильник Зил»? Нагуглил только про твердотельные конденсаторы - они увеличат стоимость, но не вздуются и не высохнут.

А что еще? Предлагайте даже безумно дорогие и технически сложные идеи вроде замены медных дорожек зототыми. Жду ликбеза, а то за быдлокодом заскучал. Очень интересно, возможен ли комп с 20-летней гарантией как на советский холодильник Зил.

k0ttee
()

NGINX теряет данные из GET

В условиях VDS трудятся NGINX и php-fpm. Статика отдается, php вроде выполняется, но данные из урлов куда-то теряются.

На хостинге все работало (пишем к любой странице ?in и подгружается формочка входа):
http://dodge4.pp.ua/?in
http://dodge4.pp.ua/bez-kategorii/?in
http://dodge4.pp.ua/davaite-bez-davaite-a-davaite.html?in

На хостинге был такой .htaccess

#включить перенаправление
RewriteEngine on

#база для перенаправления
RewriteBase /

#для доменов site.ru (c WWW и без WWW)
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

#для поддоменов (*.site.ru или www.*.site.ru)
RewriteCond %{HTTP_HOST} (www\.)?(.*)\.*\.*$

#правило для направления всех запросов на файл index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

А вот на VDS моя движуха не заводится (не подгружает форму входа) http://derminator.tk/?in Если фаербагом поглядеть, то видим примерно такое [HTTP/1.1 404 Not Found 14мс]

Этапы колдовства с вирт-хостом таковы...

Вирт-хост сначала был такой:

server {
	server_name derminator.tk;
	root /var/www/cms;
	index index.php;

	location ~ \.php$ {
		try_files $uri =404;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}
Так php переваривал только главную страницу, остальные - 404 ошибка от сервера.

Потом дописал такой location:

server {
	server_name derminator.tk;
	root /var/www/cms;
	index index.php;

	location / {
		try_files $uri /index.php;
	}

	location ~ \.php$ {
		try_files $uri =404;
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
	}
}
И php уже смог собирать все страницы. А 404е ошибки отдавала уже cms.

Но вот если в урле ?in то до index.php он так и не доходит. Что-то у меня не так, но не понимаю что...

Ежели сделать файлик test.php и в него написать

<?php echo $_GET['in']; ?>
То видим, что данные он из GET получает: http://derminator.tk/test.php?in=tell_me_whats_wrong

А вот index.php никак не видит ?in в адресе :( даже не знаю как сделать чтоб увидел...

P.S: с NGINX познакомился недельку назад и вот уже первый секс!

 , , , ,

k0ttee
()

Как проверить фокус для <div contenteditable=«true»>?

DIV в роли визуального редактора. На него я тяну картинку с десктопа. Вставка происходит не куда я попал картинкой, а туда где стояла каретка. Вставка идет не дефолтным действием браузера, а через exec('код_картинки_как_мне_надо').

<div ondrop="su_upload_img(event)" contenteditable="true" style="overflow:hidden">Контент</div>
И функция под это дело
function su_upload_img(event){
	event.stopPropagation() //редирект на картинку не надо
	event.preventDefault() //дефолтные действия браузера не надо
	var obj=event.dataTransfer.files[0] //перетянутый объект в переменную

//пока проверяю фокус вставкой картинки через exec, которая не сработала бы без фокуса
//но вот в чем отстой: картинка вставляется до аплоада и в Chrome я получаю отвалившуюся картинку
//Opera и FireFox пока справляются (на локалке)
	if(!document.execCommand('InsertHTML',false,'<img src="http://'+document.domain+'/images/'+obj.name+'">')){
			alert('Редактор вне фокуса!') //ругаемся, что редактор не в фокусе
			return false //и на выход
		}
//надо как-то иначе проверить фокус на DIV'е редактора

		//а если вставилось, то готовим на отправку
		var up=new FormData()
		up.append('type','img')
		up.append('file',obj)
	}
	//отправка
	$.ajax({
		type:'POST', //метод пост
		name:'uploadfile',
		url:'/script-upload.php', //кто на сервере принимает
		data:up, //данные
		processData:false, //мониторинг аплоада
		contentType:false, //пока х.з. и false
			//успех
			success:function(data){
			console.log(data)
			alert('успех')
			},
			//ошибка
			error:function(data){
			console.log(data)
			alert('провал')
			}
	})
}

Ну и php-приемник на сервере (файл script-upload.php)

<?php
move_uploaded_file($_FILES['file']['tmp_name'], '/images/'.basename($_FILES['file']['name']));
?>

 , , ,

k0ttee
()

Метод устарел... И чем же заменить?

Засел писать страничку в админке, а после драг-н-дропа картинка на сервер не попала...

Обновил FireFox на свою голову...

Теперь в отладчике (который по F12 или Ctrl+Shift+i вызывается) вижу:

Синхронный XMLHttpRequest в основной нити является устаревшим из-за его пагубного влияния на работу конечного пользователя. Для получения дополнительной помощи обратитесь к http://xhr.spec.whatwg.org/

Сходил куда послали, но читать доки не стал. Вот скажите, чем мне вместо XMLHttpRequest() пользоваться?

k0ttee
()

Как писать в две машины?

Дано:
1.) ноут на Core i3 3120m.
2.) cтарый нэтпук на Intel Atom первого поколения.
3.) ethernet-кабель || wlan || в крайнем случае VGA-кабель (который придется купить)
4.) жара +30

Найти:
Способ захвата скринкаста вспомогательным нэтпуком.

С попытками стримить уже успел попариться. Да и по нагрузке стрим хавает соизмеримые ресурсы.

Сам думаю, что по VGA должно работать:
На первой машине сделать --force вывод на собственный экран ноута и на VGA-выход.
На вспомогательном нэтпуке брать с VGA и писать в файл.
Вот только VGA-шнурок покупать очень не хочется. И не факт что получится. Обойтись бы изернетом...

k0ttee
()

Неуловимый focus() на

Есть DIV, в котором абзацы, картинки, объекты. Область редактора, проще говоря...

<div ondrop="su_upload_img(event)" id="editor" style="overflow:hidden;z-index:auto"><p>#</p></div>

Есть функция, которая при падении картинки на DIV загружает её на сервер и вставляет в позицию курсора.

function su_upload_img(event){

event.preventDefault() //запрещаем делать браузеру что он хочет
//event.stopPropagation(); //или так

if(document.getSelection()!=''){ //если что-то выделено
alert('Отпусти выделение') //просим отпустить (чтобы не заменять выделенное картинкой)
return false
}

if(event.dataTransfer.files.length<=0){ //Если в редактор перетянут "не файл"
alert('Тяни файл или картинку!') //текст надо вставлять по Ctrl+V, а не драг-н-дропать
return false
}

if($('#editor').blur()){ //если DIV вне фокуса
alert('Поставь курсор в место вставки картинки!')
//тут пока без return
//даже если фокус есть и картинка успешно ставится в область редактора, всё равно лезет алерт о потере фокуса
}

var file=event.dataTransfer.files[0] //хватаем первый дропнутый файл в переменную

//тут аяксом заливаем файл на сервер

//вставка картинки в DIV редактора
document.execCommand('InsertHTML', false,'<img onclick="su_format_picture(this)" src="content/<?php echo $_SERVER['HTTP_HOST']; ?>/images/'+file.name+'">')

}

Проверка фокуса всегда орёт, что DIV вне фокуса (возможно, это потому что в фокусе дочерний абзац, а не сам DIV).

Как бы проверить фокус на DIV'е редактора, чтобы фокус определялся?

P.S: jQuery приветствуется.

 , , ,

k0ttee
()

Apache2.4.7: как подружить VirtualDocumentRoot с «www-зеркалами»?

Возжелал вчера доменных зон в локалке. Чтоб не писать каждый раз в /etc/hosts поставил Dnsmasq и добавил в /etc/dnsmasq.conf доменные зоны:

address=/raz/127.0.0.1
address=/dva/127.0.0.1
address=/tri/127.0.0.1

Запустил модуль, чтоб виртуальные докруты заработали

sudo a2enmod vhost_alias

Потом в /etc/apache2/sites-enabled/000-default.conf попытался рассказать Apache2 что от него хотят:

<VirtualHost *:80>
	ServerName raz
	ServerAlias *.raz
	VirtualDocumentRoot /var/www/raz/%0
	LogLevel warn
		<Directory "/var/www/raz/">
			AllowOverride All
			Options -Indexes
			Order allow,deny
			Allow from all
			Require all granted
		</Directory>
</VirtualHost>

Получилось так:

#я доволен
Адрес site.raz смотрит в папку site.raz (ок)
Адреса вида subdomain.site.raz смотрят в свои папки (ok)

#я не доволен
Адрес www.site.raz отдает 404 (а я хочу в папку site.raz)
Адреса вида www.subdomain.site.raz отдают 404 (а я хочу в папки вида subdomain.site.raz)

Проще говоря, нужно «с WWW» на локалке. А если одним словом, то нужно VirtualDocumentRootAlias. Но в доках такого не обнаружил.

Список использованной литературы: (ru) http://www.softtime.ru/info/apache.php?id_article=103 (en) http://httpd.apache.org/docs/2.2/mod/mod_vhost_alias.html

k0ttee
()

RSS подписка на новые темы