Хороший знакомый обратился, попросил помочь решить проблему: не записывает внешний USB диск из-под Debian. Диск NTFS.
Мозговой штурм с коллегами выдал решение: надо поставить ntfs-3g - это вариант ntfs драйвера с поддержкой записи.
Все заработало =)
Хороший знакомый обратился, попросил помочь решить проблему: не записывает внешний USB диск из-под Debian. Диск NTFS.
Мозговой штурм с коллегами выдал решение: надо поставить ntfs-3g - это вариант ntfs драйвера с поддержкой записи.
Все заработало =)
Блин, у меня что-то накопилось много материалов по Linux. В общем, прорвало - пока они не кончатся, буду писать. Тактм образом, на некое число постов это будет блог про Linux=) Но ничего, уже подбирается материла на альтернативвные темы...
Итак, родилась задача - нужно для отладки скриптов сделать заглушку, которая бы принимала почту, которая отправляется php функцией mail() и складывала бы ее в отдельную директорию. Почему заглушка? Ставить и настраивать ради такого полноценный почтовый сервер ну никак не хотелось. Тем более, что в том же Денвере под винду все решено - значит, и под Linux решение есть.
Итак, погуглив, нашел решение на Хабре: http://habrahabr.ru/post/49665/
А погуглив еще - нашел дополение на форуме php http://php.ru/forum/viewtopic.php?t=12140
А теперь по шагам, для памяти:
1) Создаем скрипт, который будем эмулировать sendmail:
sudo nano /usr/bin/sendmail-www.sh
содержание:
#!/bin/sh prefix="/home/alexander/WWW-mail/new" numPath="/home/alexander/WWW-mail" if [ ! -f $numPath/num ]; then echo "0" > $numPath/num fi num=`cat $numPath/num` num=$(($num + 1)) echo $num > $numPath/num name="$prefix/letter_$num.txt" cat >> $name chmod 777 $name /bin/true [pre] примечание: содержание взято с форума php - как более кошерное, по моему мнению. примечание 2: смысл скрипта очень прост, на самом деле - перенаправление стандартного потока вывода 2) делаем скрипт исполнимым: [pre] sudo chmod +x /usr/bin/sendmail-www.sh
3) в скрипте есть две перемменных - prefix и numPath. Надо выставить на эти папки права 777 (ну, строго говоря, дать права на запись в них всем, но я не парился, тк. локальная машина, то и 777 сойдет):
sudo chmod 777 /home/alexander/WWW-mail sudo chmod 777 /home/alexander/WWW-mail/new
4) ну вроде все хорошо, приступаем ко второй части марлезонского балета. Настраиваем php, чтобы он использовал наашу заглушку для работы
открываем на редактирование php.ini:
sudo nano /etc/php5/apache2/php.ini
(путь для Mint - ну и соответственно для Убунты)
Находим секцию [mail function]
там раскоментируем и изменяем строку с sendmail_path:
sendmail_path = /usr/bin/sendmail-www.sh
и заодно включаем логирование отправки почты из php:
mail.log = /home/alexander/WWW-mail/mail.log
5) перезагружаем apache:
sudo /etc/init.d/apache2 reload
(не забываем про Sudo, а то можно налететь на ошибки вида
* Starting web server apache2 /usr/sbin/apache2ctl: 87: ulimit: error setting limit (Operation not permitted)
(13)Permission denied: make_sock: could not bind to address [::]:80
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:80
что естественно - прав-то не хватает)
Профит, все работает как надо.
Пост для памяти. Посмотреть, как выглядит сайт в разных версиях Internet Explorer, можно на этом сайте: http://netrenderer.com/index.php
Итак, пройден еще один этап из вечной пьесы «я и Linux» - на смену Open SuSe 12.3 пришел Linux Mint 15. Почему я это сделал? Да очень просто — заменил винчествер в ноутбуке на SSD, перенес туда при помощи CloneZilla все имеющееся хозяйство... вроде бы все было хорошо, но — чего-то не хватало. В общем, я пришел к тому, что поменять ОС — это правильное решенеи, тем более, что как раз вышел 15ый Mint.
14ый, кстати, не содержал в себе драйверов для моей Intel GMA X3600 — соответственно, был отправлен при тестировании в отбраковку. 15Ый уже имел драйвера для этой ОС. Кроме того, на работе не десктопе у меня Ubuntu (deb) — а Suse rpm, кроме того, Mint — наследник Ubuntu, в смысле, что я его рассматриваю как Ubuntu + много мелких полезных фишек (драйверов, софта — тот же скайп, например, изначально в репоозитории Mint'a есть, а на SuSe он скачивался отдельно)... В общем, Mint'у — быть!
Заодно я рассматривал дистрибутив на Xfce — SuSe же у меня была на LXDE. Почему XFCE? Увидел у коллеги :) - маленький, легкй, классный в плане настройки — в штатный набор входит довольно много элементов. А если поискать по репозиториям — то можно найти несколько интересных апплетов (то есть, пардон — плагинов), типа того же прогноза погоды. В общем, решено было попробовать Xfce. Заодно решил настроить дистр с нуля — так как старый вполне мог оказаться несовместимым, и (с моей точки зрения) проще было сконфигурировать «с нуля», чем пытаться перетаскивать конфиги из одного дистрибутива в другой.
За этими мыслями приступил к установке.
[CUT Читать далее...]
Что сказать? Сам процесс установки прошел штатно и быстро — в итоге я получил нормальный рабочий Linux, который надо было «чуть настроить». Об этом — чуть подробнее.
Первое, что я сделал — настроил lock screen по Ctrl-Alt-L. Делается это просто: Меню - Настройки — Клавиатура, там добавляем комбинацию клавиш (Ctrl-Alt-L), вводим в Action команду xflock4, сохранямся и вуаля - «золотой ключик» наш! Потом поставил xfce4-taskmanager из пакета goodies (вообще, этот пакет ставит еще несколько интересных вещей под Xfce) и повесил вызов xfce4-taskmanager на Ctr0-Alt-Del (Хотя, надо сказать — я им почти не пользуюсь, как-то привычнее терминал и ps & kill).
Затем настраиваю двойной клик: чтобы он нормально работал (например, на на окне — то есть на заголовке), надо увеличить время двойного клика до 500 мс (штатно 250). Делается это тут: настройки - Мышь и тачпад.
Дальше попробовал заменить вечный thunderbird на claws — но увы и ах, при приеме multipart message claws, как не бился — не показывает html часть (в части писем). Так что остался на thunderbird — несмотря на то, что вещь сия довольно прожорлива до ресурсов.
Дальше поставил wine... и задумался, а зачем я это сделал? :) Реально давно уже не использую нативных Windows-приложений (нашел даже три аналога Notepad++ - JuffEd, SciTe и Geany. Последняя вообще позиционируется как мини IDE). Но в общем — пусть будет, хуже-то никому от этого не будет. Вдруг когда-то понадобится :)
Кстати, специально для любителей Np++: его наиболее полный аналог, это JuffEd (и более удобный, кстати). Единственное, что бесит «нипадеццки» - это то, что он порой кривовато работает с кодировками файлов. В Geany, кстати, очень удобно работать с большими проектами: она умеет строить список функций, ну и вообще, плюшек в ней побольше, консоль встроенная, например :)
Раз уж речь зашла о софте, то приведу список того, чем пользуюсь «каждый день»:
И все, по большому счету мне особо и не надо больше ничего.
Теперь подробности, «для памяти».
Установка GSM модема. У меня это Hyawei E155. Собственно, особо ничего не пришлось делать — вставил, и все.
Lsusb показала, что модем видится:
alexander@alexander-1225C ~ $ lsusb Bus 002 Device 009: ID 12d1:14ac Huawei Technologies Co., Ltd. alexander@alexander-1225C ~ $ ls -l /dev/ttyUSB* crw-rw---- 1 root dialout 188, 0 авг. 24 11:54 /dev/ttyUSB0 crw-rw---- 1 root dialout 188, 1 авг. 24 12:04 /dev/ttyUSB1 crw-rw---- 1 root dialout 188, 2 авг. 24 11:54 /dev/ttyUSB2
Доставил я единственное Modem Manager GUI (морда управления модемом):
sudo add-apt-repository ppa:linuxonly/modem+manager+gui sudo apt-get update sudo apt-get install modem-manager-gui
Единственный момент: чтобы морда заработала надо того пользователя, от которого она запускается, добавить в группу dialout:
alexander@alexander-1225C ~ $ sudo gpasswd -a alexander dialout Adding user alexander to group dialout
Все. Все работает.
Далее настройка VPN.
Тут все не так просто — VPN сервер L2TP, соответственно штатный NetworkManager с ним не работает. Спасает специальный плагин к нему: http://seriyps.ru/blog/2012/01/31/plagin-l2tp-dlya-networkmanager/
С ним все чудесно заводится и авторизуется.
Настройка SSH-клиента.
Со старой системы скопировал весь /home — так что мне не пришлось перегенерировать ключи. Просто использовал старые, что лежат в ~/.ssh
Для начала попробовал подконнектиться к ssh со соим старым ключем:
alexander@alexander-desktop ~ $ ssh -i "~/.ssh/mkey" alexander@fhost Warning: Identity file ~/.ssh/mkey not accessible: No such file or directory. Permission denied (publickey).
Прикол ssh в том, что он жестко требует выставленных 600 прав на приватный фал ключа для того пользователя, от имени которого запускается ssh. Ну ok, пробуем:
alexander@alexander-desktop ~ $ chmod 600 "/home/alexander/.ssh/mkey"
И переподключаемся:
alexander@alexander-desktop ~ $ ssh -i "/home/alexander/.ssh/mkey" alexander@fhost Enter passphrase for key '/home/alexander/.ssh/mkey': Last login: (тут неинтересно) alexander@fhost:
Удовольствие каждый раз вводить эту команду невеликое, так что пропишем алиас:
alexander@alexander-desktop ~ $ alias ssh-g='ssh -i "/home/alexander/.ssh/mkey" alexander@fhost'
Все это хорошо, но чтобы каждый раз при вызове консоли не вводить алиас заново, пропишем его в ~/.bashrc:
alias ssh-g='ssh -i "/home/alexander/.ssh/mkey" alexander@fhost'
Что еще? Крайне редко, но использую tor:
sudo add-apt-repository ppa:upubuntu-com/tor sudo apt-get update && sudo apt-get install tor-browser sudo chown alexander -R /usr/bin/tor-browser/
Теперь настраиваем вечную связку LAMP - apache/php/mysql
Ставим их через синоптик (он же - «Управление пакетами»).
Настройку расскажу на примере одного хоста (http://a-cms/), остальные аналогичны
Прописываем хост в hosts:
alexander@alexander-1225C ~ $ sudo nano /etc/hosts(добавляем сюда строку 127.0.0.1 a-cms ), проверяем, что все хорошо:
alexander@alexander-1225C ~ $ cat /etc/hosts 127.0.0.1 localhost 127.0.1.1 alexander-1225C 127.0.0.1 a-cms # 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
Важный момент
в файл /etc/apache2/conf.d/vhosts.conf прописываем
ServerName localhost
Домашний каталог для всего этого безобразия у меня ~/WWW, соответственно, сайты располагаются в нем. Создаем этот каталог, в нем — каталог корня сайта (~/WWW/a-cms)
Создаем /etc/apache2/sites-available/a-cms (логика апача «1 сайт == 1 конфиг в директории /etc/apache2/sites-available/)
<virtualhost *:80>
ServerAlias a-cms
ServerAdmin webmaster@localhost
DocumentRoot /home/alexander/WWW/a-cms/www
<directory /home/alexander/www/a-cms>
AllowOverride All
</directory>
ErrorLog /home/alexander/WWW/a-cms/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /home/alexander/WWW/a-cms/access.log combined
</virtualhost>
«Включаем» только что созданный сайт, создав жесткую ссылку на него:
sudo ln /etc/apache2/sites-available/a-cms /etc/apache2/sites-enabled/a-cms
(Логика апача в том, что 1 ссылка в каталоге /etc/apache2/sites-enabled/ - это один работающий сайт. В принципе, логично с позиции управления).
Перезапускаем апач
alexander@alexander-1225C ~ $ sudo /etc/init.d/apache2 reload * Reloading web server config
По идее, все после этого должно заработать.
Проверяем: идем по адресу http://a-cms, и смотрим что все работает (можно туда положить, например, файл index.php с phpinfo() для проверки).
Замечание — следим за опечатками - особенно в конфигах апача! :)
Дальше, чтобы все было совсем хорошо - включаем в апаче mod_rewrite (по умолчанию он выключен):
sudo a2enmod rewrite sudo nano /etc/apache2/sites-enabled/000-default
и меняем AllowOverride None на AllowOverride All
Перезапускаем апач еще раз:
alexander@alexander-1225C ~ $ sudo /etc/init.d/apache2 reload
Теперь действительно все! (Php и mysql в такой комбинации трогать не надо — работают «из коробки»).
Теперь немного полезностей:
Калькулятор. Я ставлю два всегда:
sudo apt-get install apcalc - консольный C-style калькулятор
sudo apt-get install gnome-calculator - модный гномовский калькулятор
По умолчанию xfce выставляет размер значков 48 px. На небольшом экране (11,6") это крупно. Чтобы сменить размер значков, правой кнопкой на рабочем столе, там "настройка рабочего стола", там вкладка "значки", и исправляем значение на нужное (я себе поставил 24, стало сильно лучше).
Ну и финальным штрихом: печать.
У меня роутер Dlink 2750 и принтер Brother 2140. Роутер по идее обладает встроенным принт-сервером, но блин — принетр и роутер не хотят работать в связке с Linux (локально все прелестно, на старом Dlinke тоже все работало) — в итоге решено отдельным принт-сервером Tp-Link PS110U, повешенном на отдельный порт роутера. Да, и опусканием встроенного порта принт-сервера на роутере :)
В общем, это первая часть большой саги про Linux Mint. Писалась отчасти как «пост для памяти». Вторая часть будет... позже :) и, наверное, меньше — там уже частности и мелочи.
ПС. Писал все это естественно, не за раз, а по ходу настройки и после свел в один текст.
В общем, менял диск в ноутбуке на SSD. Перенастраивать ОС ну очень не хотелось, в итоге решил поискать. Поискал. и нашел :)
Называется это чудо Clonezilla, живет по адресу http://www.clonezilla.org/ - и умеет... умеет почти все. Например, умеет склонировать раздел с одного диска на другой. Иди клонировать дис целиком. Умеет работать с USB дисками (под старый диск был куплен внешний usb-box). В общем, вещь, в хозяйстве однозначно полезная.
Более того, выяснилось, что Clonezilla входит в последнюю сборку Parted Magic (http://www.alib.spb.ru/blog/page/razbivka-diska-besplatno-parted-magic) - то есть, достаточно просто скачать Parted Magic, развернуть образ на флешку, загрузиться с него... и делай, что хочешь :)
В общем, вещь.
Да, компик после переезда на SSD стал заметно резвее и более экономным по отношению к батарее. И если первое - вполне планируемо, то второе - очнеь даже приятно.
Пост для памяти.
В общем, раз пошла такая пьянка, решил посмотреть, а что есть в мире из андроидных WebDav клиентов. Как оказалось - есть, много и интересно. Не буду утомлять описанием процесса, скажу лишь, что конкурс со значительным отрывом выиграл незамысловатый такой клиент, с говорящим названием WebDav File Manager. Как следует из названия, назначение этого шедевра программистской мысли одно - работать с чем-угодно по протоколу WebDav. С чем он и справляется на "отлично". Попробую описать, чем же меня купила эта вещь: