gladilov.org.ru 

1316 заметок с тегом

ОС

Позднее Ctrl + ↑

Установка и настройка Nginx + PHP в режиме FastCGI [Debian 9]

Начал новую линейку заметок по теме обучения на системного администратора. Учусь не я, а моя жена, хотя и я тоже многое оттуда воспринял (на самом деле нет ;-). Это не конспекты лекций, не пошаговые руководства, а просто заметки на память, чтобы ей легче было повторять пройденный материал. Помечаться будут тегом ’учёба’ и в начале страницы будет стоять маленький логотипчик . В квадратных скобках указывается ОС, в которой производились настройки/тесты/манипуляции.

Итак, первая заметка.

Показать


 Поставить  nginx и  PHP.

sudo apt-get install nginx php-fpm

В файле */etc/nginx/nginx.conf* убрать коментарий в строке

multi_accept on

и дописать index.php в определении индексных файлов

index index.php index.html index.htm index.nginx-debian.html;

В файле */etc/nginx/sites-available/default* изменить путь к индексному файлу

root /var/www/html/site1

и разрешить FPM, убрав коментарий

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}

Также запретить доступ к файлам, имя которых начинается с префикса .ht

location ~ /\.ht {
deny all;
}

Создать индексный файл сайта

sudo mkdir -p /var/www/html/site1
sudo touch /var/www/html/site1/index.php
sudo echo "<?php phpinfo(); ?>" > /var/www/html/site1/index.php

В файле */etc/php/7.0/fpm/php.ini* исправить значения в строках

memory_limit = 256M
default_socket_timeout = 360

и раскомментировать строки

;user_agent="PHP"
;cgi.fix_pathinfo=1

Отключить уязвимость, поставив значение 0:

cgi.fix_pathinfo=0

Затем перегружаем nginx (любым способом)

systemctl reload nginx
nginx -s reload


Задача решена

Настройка DebWrt на DIR-320 после установки

В качестве продолжения статьи Установка DebWrt на DIR-320 аппаратных ревизий A1/A2.

Показать

Следует иметь в виду, что у свежеперепрошитого устройства на LAN-интерфейсе настроен IP-адрес 192.168.1.1/24. Если используются другие сети, то правим сетевые настройки (возможно, сеанс удалённого входа отвалится, если изменился IP-адрес). Для этого необходимо удалить /etc/network/interfaces (это симлинк на /etc/network/interfaces.firstboot), создать его с необходимым содержимым и перегрузить службу networking:

rm /etc/network/interfaces
touch /etc/network/interfaces
cat << EOF > /etc/network/interfaces
auto lo eth0
iface lo inet loopback

iface eth0 inet dhcp

iface wlan0 inet dhcp
wpa-ssid <имя WiFi-сети>
wpa-psk <ключ WiFi-сети>
EOF
service networking restart
echo "<DNS-сервер>" > /etc/resolv.conf

Изначально настроен только один пользователь — root с паролём debwrt. Из-за того, что при старте таймер времени равен нулю, то есть системные время и дата установлены на полночь 1 января 1970 года (Thu Jan 1 00:00:00 UTC 1970),то при входе ssh’ем (или telnet’ом) система потребует смену пароля. Необходимо выставить правильное время.


Способ I. Применим даже с ненастроеной сетевой подсистемой.

date --set="<дата> <месяц> <год> <часы>:<минуты>:<секунды>"
date --set="<номер месяца>/<дата>/<год> <часы>:<минуты>:<секунды>"

Например, на дату опубликования этой заметки актуальной была команда:

date --set="16 January 2018 17:57:00"
date --set="01/16/2018 17:57:00"


Способ II. Правим время с помощью ntpdate (требуется доступ в сеть Интернет):
Останавливаем сервис ntp и синхронизируем время с любым рабочим NTP-сервером.

service ntp stop
ntpdate time.nist.gov
service ntp start


Команды

hwclock -w
hwclock --hctosys

не сработают, так как у системы нет аппаратных часов.


Меняем репозиторий с ftp.debian.org на archive.debian.org и обновляем систему:

echo "deb http://archive.debian.org/debian squeeze main" > /etc/apt/sources.list
apt-get update
apt-get upgrade

Донастраиваем систему и устанавливаем нужные пакеты:

passwd
hostname <имя узла>
echo "<имя узла>" > /etc/hostname
echo -e "127.0.0.2\t<имя узла>" > /etc/hosts
apt-get install mc sudo most locales bash-completion nload htop ccze telnet wpasupplicant
dpkg-reconfigure locales
dpkg-reconfigure tzdata
adduser <пользователь>
echo -e "<пользователь>\tALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers
apt-get install apache2 php7 mysql-server

2018   D-Link   Linux   ОС   роутер   софт

Новая виртуальная ОСь — 14.01.2018

 Pearl Linux 6.0 (Artful)

Поставил ещё одну систему в виртуалбоксе —  Pearl Linux 6.0 (Artful).

 Pearl Linux

Показать

При установке в  Virtualbox (как с UEFI, так и без) в самом конце, после заливки всех файлов, когда возникает надпись "Извлеките установочный диски и затем нажмите ENTER" — нажатие этой клавиши (да и любой другой) не даёт эффекта. А в  VMware всё работает.

Новая виртуальная ОСь — 12.01.2018

 LuninuX OS 17.04 (Zulu)

Быстрый, стабильный и удобный дистрибутив GNU/Linux, основанный на  бубунте. Пилится с декабря 2010 года (тогда проект был известен как  Sn0wL1nuX) разработчиком  Эммануэлем Аппиа (Emmanuel Appiah). С первого января 2019 года проект заморожен. Оконный менеджер —  GNOME. Размер файла образа винта после установки — 5,7 гигов.

 LuninuXOS

Показать

Неплохой современный дистр, похож на  Deepin чем-то, хотя их сейчас много лепят с однотипными инсталляшками.

Новая виртуальная ОСь — 11.01.2018-2

 Metamorphose Linux 8.5.7 (Panther)

Поставил ещё одну оську в виртуалбоксе —  Metamorphose Linux 8.0.

Обновление от 3 декабря 2021 года: Linux-дистрибутив на базе тестовой ветки  Дебиана. Дистр предоставляет простую и полную ОСь с приятным графическим интерфейсом для начинающих и опытных пользователей. Разработчик проекта —  Аилтон Насименто де Матос (Ailton Nascimento de Matos). Дистр пилился с 2008 года. Последняя версия (эта) вышла 24 ноября 2016 года. Графическая среда —  KDE Plasma. Файл образа винта после установки стал размером 7,4 гигабайта.

 Metamorphose

Детали: Показать

Инсталлятор тоже не маленький — около трёх гигабайт. И самая изюминка инсталляшки этого дистра (скачанного с SourceForge, кстати) — она на португальском!

Но ничего, разобрался, поставил, локализовал, снял скрин... Только не обновил, время не хотелось терять. Я с SourceForge 60 гигов разных дистрибутивов скачал вчера. Правда, все Линуксы, походу школота современные делатели дистров другого не умеют, сложно...

P. S. Старая версия: Показать

Уже делал скрин версии 8.0.4:

Новая виртуальная ОСь — 11.01.2018

 BackSlash Linux Kristoff

Поставил сегодня в виртуалбоксе новую ось —  BackSlash Linux Kristoff.

 BackSlash

Показать

Установщик без режима UEFI глючил, при двух гигабайтах памяти система тормозила, пришлось настроить выделение её четырёх гигов. Без заранее созданных разделов на винте программа установки выхватывает ошибки, пришлось запускать GParted перед процессом инсталляции. В /var/log/syslog ничего не пишет, хотя инсталлятор при сообщении об ошибке рекомендует ознакомиться с деталями сей досадной неприятности именно в нём
Ну и хостится проект на не вызывающей большого доверия площадке SourceForge.

Интересно, чем руководствовался разработчик дистра, заставляя пользователя при загрузке с инсталляционного LiveCD входить в систему под именем юзера backslash с пустым паролём (причём пароль могут спросить несколько раз) и запускать руками иксы командой startx, чтобы начать установку?

P. S. Блин, инсталляционный образ весит 4 (четыре) гига! ЧЕТЫРЕ, Карл!.. Распаковывается/скачивается это счастье в 12 гигабайт места.

P. P. S. А, да, при выборе русского языка установщик тоже ошибки генерит.

Разные операционки

С конца сентября 2016 года решил ставить виртуалки (и не только) с разными ОС (Linux, BSD, вобщем — все *nix). Прокачиваю, так сказать, свой скил... Заодно анализирую некоторую инфу, полезную для распознавания типа и версии ОС. Снимаю скриншот с инфой, выведеной в BASH’е, в основном — вывод uname, собержимое разных /etc/*release* и /etc/*version*, lsb-release (если это Linux-based distro), всякие kern.osrelease и kern.ostype (это если BSD). С новыми дистрибутивами проблем обычно нет (их большинство), но с устаревшими, про которые мало инфы (как  plan9 или  XENIX386), снятыми с поддержки (как  Moblin 2, для которого не могу найти рабочую копию репозитория в сети), или трансформировавшимися в другие (как  LindowsOS / Linspire / Freespire / Xandros или  Mandrake / Mandriva / Mageia / OpenMandriva).

Показать

На сегодня сделал 110 осей (это которые дошли до процесса снятия скрина, но много пока не доделаны).

 Линуксы:

 Бэ Эс Дэ:

 Андроиды:

 БиОСь и клоны:

 Солярка:

 МакОси:

 Всякая экзотика:

Переменные среды для локализации пользовательского интерфейса

 *nix-системы предоставляют развитые средства настройки пользователюской среды под различные потребности. Одна из задач такой настройки — указание регионального стандарта, с которым хочет оперировать пользователь. Например — чтобы графический системный интерфейс отображал сообщения на родном пользователю языке (был локализован), а ввод осуществлялся на английском. Локализация означает приспособление программы или операционной системы к кодировке и стилям печати времени, даты, денежных единиц принятых в данной стране. Иногда применяют сокращение «l10n». Буквы «l» и «n» — начало и окончание слова «localization», а цифра 10 — количество букв между ними. Есть ещё сокращение i18n — «internationalization».

Показать

POSIX-совместимые системы имеют специальный стандарт (RFC 3066) определения локали — идентификатора, определяющего региональные настройки пользовательского интерфейса, такие как язык, страна, часовой пояс, набор символов и т. п. Он имеет следующий вид:

[language[_territory][.codeset][@modifier]]

Например — ru_RU.CP1251, el_GR.UTF-8 или en_US.iso88591. Существует особое имя для региональных настроек POSIX: C — нейтральное значение по умолчанию, C.UTF-8 — для новых POSIX-систем с поддержкой UTF-8.

Многие системные программы для определения языка сообщений и вида кодировки используют установленные переменные окружения. По умолчанию переменные LC_ALL и LANG имеют пустые значения, а все остальные — значение «POSIX». В русифицированных системах при настройке локали указывается определенная кириллическая кодировка, например, UTF-8 (Unicode) или реже CP1251 (русскоязычная кодировка Microsoft Windows) или KOI-8 (русскоязычная кодировка UNIX).

Имя переменной

Описание

LC_ALL

Переменная LC_ALL, если установлена, определяет всё сразу: язык сообщений, кодировку, вид даты и т. п.

LANGUAGE

Переменная LANGUAGE используется в основном программами из проекта GNU

LC_CTYPE

Переменная LC_CTYPE, если не установлена LC_ALL, определяет кодировку символов. В отсутствии LC_CTYPE и LC_ALL, для определения типа кодировки используется переменная LANG

LC_COLLATE

Переменная LC_COLLATE используется в отсутствии LC_ALL для определения алгоритма сортировки. В отсутствии LC_COLLATE для этого используется переменная LANG

LC_MONETARY

Переменная LC_MONETARY используется, если отсутствует LC_ALL, для определения вида денежной единицы. Если LC_ALL и LC_MONETARY не установлены, то используется переменная LANG

LC_NUMERIC

Переменная окружения LC_NUMERIC используется, если не установлена переменная LC_ALL, для определения национального формата печати чисел (например, с плавающей точкой или запятой). Если не установлены LC_ALL и LC_NUMERIC, то используется переменная окружения LANG

LC_TIME

Переменная окружения LC_TIME используется, если не установлена LC_ALL для определения формата даты и времени. Если не установлены переменные LC_ALL и LC_TIME, то используется переменная LANG

LC_MESSAGES

Переменная LC_MESSAGES используется в отсутствии LC_ALL для определения языка информационных и диагностических сообщений и интерфейса. Если LC_ALL и LC_MESSAGES не установлены, то используется переменная LANG

LC_PAPER

Переменная LC_PAPER, если не установлена LC_ALL, определяет размер бумаги при печати. В отсутствии LC_PAPER и LC_ALL, для определения размера бумажного листа используется переменная LANG

LC_NAME

Переменная окружения LC_NAME используется, если не установлена переменная LC_ALL, для определения формата отображения имён (фамилия пишется первой или последней и т. д.). Если не установлены LC_ALL и LC_NAME, то используется переменная окружения LANG

LC_ADDRESS

Переменная LC_ADDRESS, если не установлена LC_ALL, определяет информацию о местоположении и формат адреса (страна указывается в начале или в конце адреса, где расположен почтовый индекс и т. д.). В отсутствии LC_ADDRESS и LC_ALL, для определения формата указания адреса используется переменная LANG

LC_TELEPHONE

Переменная LC_TELEPHONE используется в отсутствии LC_ALL для определения формата телефонных номеров. Если LC_ALL и LC_TELEPHONE не установлены, то используется переменная LANG

LC_MEASUREMENT

Переменная LC_MEASUREMENT используется, если отсутствует LC_ALL, для определения системы единиц измерения (метрическая, имперская и т. д.). Если LC_ALL и LC_MEASUREMENT не установлены, то используется переменная LANG

LC_LC_RESPONSE

Переменная LC_RESPONSE используется в отсутствии LC_ALL для определения того, как на локальном языке отобрадаются ответы (типа Да и Нет, Y/N, и т. п.). В отсутствии LC_RESPONSE для этого используется переменная LANG

LC_IDENTIFICATION

Переменная LC_IDENTIFICATION используется в отсутствии LC_ALL для определения общих метаданных о языковой информации. Если LC_ALL и LC_IDENTIFICATION не установлены, то используется переменная LANG

LANG

Переменная окружения LANG используется для всего, что не установлено ранее переменными вида LC_*

NLSPATH

Задаёт путь к файлам локализованных сообщений и справки

TZ

Задаёт временную зону, используемую системой

Из командной строки управление переменными осуществляется с помощью команд export и env. Чтобы увидеть, какие переменные из вышеописанных и как установлены, можно использовать программу locale. Посмотреть, какие файлы для локализации имеются в системе можно в каталоге /usr/share/locale/, а также выполнив команду locale -a.

[soul@etcetera:~]$ locale
LANG="ru_RU.UTF-8"
LANGUAGE="ru_RU.UTF-8"
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL="ru_RU.UTF-8"
[soul@etcetera:~]$ locale -a
C
C.UTF-8
POSIX
ru_RU.utf8
[soul@etcetera:~]

Проекты OpenWrt и LEDE объявили о слиянии

Проекты  OpenWrt и  LEDE, развивающие дистрибутивы для различных сетевых устройств, таких как маршрутизаторы и точки доступа, объявили о воссоединении (ссылка). В соответствии с ранее согласованным планом, Git-репозиторий OpenWrt заменён на содержимое репозитория LEDE, который послужит основой для дальнейшей совместной разработки.

Показать

Разработка объединённого проекта будет вестись под именем OpenWrt, но в соответствии с правилами LEDE, подразумевающими открытый процесс принятия решений с привлечением сообщества, прозрачность взаимодействия разработчиков, регулярный предсказуемый цикл подготовки релизов, первоочередное внимание стабильности дистрибутива, более либеральные правила приёма изменений и получения права коммита. Деятельность, связанная с решением юридических вопросов, сбором пожертвований и распоряжением активами (например, доменом и торговой маркой) нового совместного проекта OpenWrt делегирована некоммерческой организации SPI (Software in the Public Interest), которая также курирует такие проекты, как Debian, Arch Linux, X.Org, 0.A.D, FFmpeg, freedesktop.org и OpenEmbedded.

Старое содержимое репозитория OpenWrt перемещено в архив, но отсутствующие в LEDE патчи, отвечающие требованиям к качеству кода LEDE, будут перенесены в новый репозиторий. Сервисы и элементы инфраструктуры, запущенные в рамках домена lede-project.org, теперь доступны и через домен openwrt.org. Форумы и wiki пока остаются как есть, решение по ним ещё не утверждено.

Поддержка старых выпусков OpenWrt (до 15.05) будет прекращена, а для OpenWrt 15.05 будут предоставляться обновления с исправлением уязвимостей и серьёзных проблем. Поддержка LEDE 17.01 будет обеспечена в полном объёме. В ближайшие несколько месяцев ожидается формирование нового значительного релиза, который выйдет уже под именем OpenWrt.

Выбор в пользу кода LEDE сделан, так как последнее время все новшества и изменения создавались в данном проекте, а разработка OpenWrt практически остановилась после создания форка в 2016 году, когда из проекта ушла группа активных разработчиков, желающих поднять стабильность дистрибутива на новый уровень и избавиться от организационных проблем. Создатели ответвления, которое получило название LEDE, попытались воплотить в жизнь предсказуемый цикл разработки, более либеральные правила приёма изменений и прозрачный процесс принятия решений с привлечением сообщества и проведением публичных обсуждений. Весной 2017 года состоялся первый значительный релиз LEDE, который показал состоятельность проекта.

Новость с Опёнка

Отправка сообщения на почту, когда количестве запросов на порт превысит предел

Пишем скрипт, содержащий код:

#!/usr/bin/env bash
MAILTO=somebody@example.com
WATCHPORT=80
TRESHOLD=500
NUMCONN=`netstat -antpu4 | grep :$WATCHPORT | wc -l`
if [[ $NUMCONN -ge $TRESHOLD ]]; then
DATE=`date`
MAILBODY="Datestamp: $DATE\nServer port $WATCHPORT usage overload!\nCurrent port $WATCHPORT connections: $NUMCONN."
echo -e $MAILBODY | mail -s "Server port $WATCHPORT usage overload!" $MAILTO
fi

Скрипт циклически запускаем с помощью cron’а, например — каждую минуту:

* * * * * /path/to/script.sh
Ранее Ctrl + ↓
Наверх