UbuntuUbunutu 16.04 и F2FS

Установил на ноутбук последнюю LTS версию Убунты в экспериментальных целях и был слегка разочарован тем, что не обнаружил в инсталляторе возможность выбора файловой системы F2FS, которая изначально разрабатывалась для flash-памяти и просто доктор прописал использовать её с SSD-накопителями. Однако немного поразмыслил и решил поместить домашнюю директорию на отдельный раздел с F2FS, ведь почти все мои файлы и манипуляции с ними происходят именно в этой папке.

Для начала нужно загрузиться с LiveCD, или, скорее, с LiveUSB, и отбить свободное место от основного корневого раздела, если это не было сделано при инсталляции. Делается довольно просто с использованием того же GParted. Сразу отформатировать в F2FS, скорее всего, не получится. Я оставил раздел неотформатированным. После перезагружаемся обратно в установленную Ubuntu.

PHP + PAM

PHPАутентификация через системных пользователей линукс

Предположим, что возникла потребность аутентифицировать пользователей PHP-приложения посредством уже существующих в системе пользователей. Тогда для решения этой задачи можно заюзать PAM (Pluggable Authentication Modules). Если в двух словах, то через эту систему производятся манипуляции с пользователями и их паролями такими программами, как login, passwd или su. Если нужно больше информации, тогда вам сюда, например.

Описываемые ниже действия происходят в Ubuntu 14.04. В той же убунте 12.04 имелся готовый пакет php5-pam-auth, но позже его не стало.

Ставить расширение будем из PECL, вот оно. Предварительно доустановим пару пакетов, если они ещё не установлены. Приступим:

1
2
sudo apt-get install php5-dev libpam0g-dev
sudo pecl install PAM

Без php5-dev будет ругаться, что нету phpize, а без libpam0g-dev будет появляться гадостная ошибка install the the PAM library or use --with-pam=DIR to specify the location.

После успешной компиляции добавляем пару строк в php.ini

1
2
extension=pam.so
pam.servicename="php"

И добавляем соответствующий сервис для PAM

1
2
3
4
sudo su

cd /etc/pam.d
ln -s login php

Готово :)

P.S. Возможен ещё такой момент. При работе, например, через Apache или другой веб-сервер, функция pam_auth будет возвращать ложный результат независимо от правильности логина/пароля. Связано это с тем, что пользователь, от которого работает веб-сервер, не имеет доступ к файлу /etc/shadow. Возможно, что можно каким-то образом донастроить сервис php для PAM, с этим я разбираться не стал, а применил более простое решение - добавил пользователя апача в группу shadow, хоть и понимаю, что почти наверняка этим действием проделал ещё одну дыру в безопасности :)

1
sudo usermod -aG shadow www-data

UbuntuNode.js версии 0.12 и убунта

Как-то раньше я уже описывал установку последней версии Node.js на Ubuntu, но приключилась печалька. Беда, собственно, заключается в том, что в описанном репозитории последняя версия ноды 0.10.37, а проект требует минимум 0.12.

Но выход есть всегда :) Node.js уже установлен, нужные переменные окружения прописаны, поэтому чтобы исключить возню с поисками других репзиториев, просто скачаем одну папочку и поправим пару симлинков:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
wget http://nodejs.org/dist/v0.12.7/node-v0.12.7-linux-x64.tar.gz
tar xvzf node-v0.12.7-linux-x64.tar.gz

sudo su
cd /usr/bin

mv npm npm_old
mv nodejs nodejs_old
ln -s /path/to/node-v0.12.7-linux-x64/bin/node nodejs
ln -s /path/to/node-v0.12.7-linux-x64/lib/node_modules/npm/bin/npm-cli.js npm

На этом пока всё.

UbuntuУстановка последних версий Node.js и npm

Просто памятка. Надоело уже искать по интернету.

Делаем раз:

1
2
3
4
5
6
7
8
# ниже по ситуации, в зависимости от дистрибутива,
# если нет команды apt-add-repository
#
# sudo apt-get install python-software-properties
# sudo apt-get install software-properties-common

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get update

Делаем два:

1
sudo apt-get install nodejs

И готово. Проверено на Ubuntu 14.04 LTS и 12.04 LTS :) Если не ошибаюсь, то npm установится автоматически с nodejs. Ежели не установился, то ещё одна строчка в консоли:

1
sudo apt-get install npm
отладка

IDEPhpStorm и Xdebug - установка и настройка

Думаю, нет нужды объяснять про такой важный инструмент PHP-разработчика, как Xdebug. Знал о нём и я. Только вот руки всё никак не доходили, что бы просто взять и попробовать. Длилось это больше года. А в один прекрасный момент таки испробовал и очень доволен.

Для начала необходимо установить сам Xdebug. На убунте это довольно просто, на макинтоше - тоже. Напишу одну команду под другой, чтобы не растягивать (предполагается, что на маке используется MacPorts)

Ubuntu/Debian:

1
sudo apt-get install php5-xdebug

Mac:

1
sudo port install php5-xdebug

В операционной системе Windows всё может зависеть от ситуации. У меня, например, используется XAMPP, и заветная php_xdebug.dll обнаружилась в директории с остальными расширениями, оставалось только раскоментировать его в php.ini

ApacheНастройка HTTPS в Apache

Нового здесь ничего не будет, всё это миллионы раз описано в документации и подобных записях по блогам. Так что оставлю здесь эту заметку для себя, чтобы не искать каждый раз, когда это потребуется.

В двух словах - что такое HTTPS и с чем его едят.

HTTPS - это расширение протокола HTTP, поддерживающий шифрование. Данные, передаваемые подобным образом, шифруются с использованием SSL или TLS.

В данной заметке будет создаваться самоподписанный сертификат и хотя браузеры начнут ругаться, что такой сертификат не является доверенным, но свою задачу выполнять он всё таки будет, т.е. если и не исключит возможность прослушивания при помощи тех же снифферов, например, но, по меньшей мере, сильно затруднит жизнь некоторых хацкеров. И что немаловажно - такой сертификат не будет стоить ни копейки, в отличии от сертификатов, подписанных компаниями-сертификаторами :)

UbuntuУдаление драйвера nVidia из командной строки

Не успел я ещё нарадоваться этой операционной системе, как после очередного обновления приключился облом. Обновляюсь, перезагружаюсь и чёрный экран с бесконечно мигающим курсором. Обновилось много чего, включая ядро, и происходил сей процесс довольно долго, но внутренний голос подсказал, что проблему надо искать в видеодрайвере. И не ошибся, как выяснилось спустя час колупаний.

Всех произведённых манипуляций описывать не буду, только вкратце о тех, что привели к оживлению системы.