|
|
|
|
|
|
Проблема с UDMA33 при установке FreeBSD
Мало наверное кто знает про баг FreeBSD при установке на жесткий диск, включенный в режиме UDMA33. В режиме UDMA33 жесткий диск работает, будучи подключенным к IDE контроллеру “non-80 pin” шлейфом. Такой шлейф использовать лучше для включения CD/DVD привода. Кстати, установка Windows на HDD в режиме UDMA33 проблем не вызывает. Тем не менее, на днях, почитав еще раз вот эту публикацию, взвесив все “за” и “против” я тоже решил окончательно избавиться от Windows дома и поставить на домашнюю машину BSD как десктоп, поскольку действительно в настоящий момент не использую никакого программного обеспечения для Windows, аналогов которого не было бы в BSD.
Вообще, ранее на домашней машине на одном из разделов уже была фряшка, но этот раздел умер - однажды я его по ошибке на нетрезвую голову отформатировал под NTFS. Теперь пришлось делать все сначала с нуля. Что-ж, все что не делается, делается к лучшему. Можно будет начать все сначала, не повторяя прежних ошибок. Повторение, как говорится, мать учения.
PC-BSD и Frenzy рассматривались как варианты для установки, но оба были отброшены. Естественно, тут тебе уже все готово и настроено. Но ведь так же не интересно. Я люблю все сделать для себя так, как мне нравится, а не переделывать уже сделанное кем-то.
Ставить я собрался, естественно, последний релиз 7.0. В наличии на CD “семерки” не оказалось, но имелся диск с версией 6.2 и доступ в сеть Интернет. Этого вполне достаточно, чтобы установить любую версию FreeBSD.
FreeBSD как настольная система
Предпосылки:Как и миллионы других пользователей ПК я всегда работал под OS Windows считая, что настольный домашний ПК должен работать именно под windows и ни под чем иным. Однако со временем обнаружил, что собственно говоря “ценность” такого утверждения можно подвергнуть большим сомнениям.
В итоге я задумался, а для чего мне все-таки нужна именно эта операционная система? Если переформулировать, то получится вопрос: “Зачем мне компьютер?”.
Вот список моих ответов:
Все. Больше я ничего за компьютером не делаю и по всей видимости никогда делать не буду. Были небольшие сомнения насчет игр, но один час игрового времени в год не стоил того, чтобы на этом останавливаться.
Хитрый Апач или алфавит на первом месте
Встретился сегодня с довольно интересной особенностью веб-сервера Apache (ветка 1.3), которую раньше не встречал никогда. И пусть, возможно, она “стара как мир” хотел бы о ней рассказать. Может кому-то в будущем пригодится.
Началось с того, что я решил слегка разобрать и привести в более удобоваримый вид файл конфигурации httpd.conf на этом сервере. Ранее все виртуальные хосты были описаны непосредственно в нем, но со временем их стало многовато и перемещаться по конфигу стало не очень удобно. Я решил избавиться от этого, путем выноса конфигураций виртуалхостов в отдельные (для каждого хоста) текстовые файлы, а в httpd.conf воспользоваться директивой Include для подключения скопом всех VirtualHost. Кстати, кто еще не знает такого приема - возьмите на заметку. Очень удобно добавлять/редактировать/удалять виртуальные хосты поскольку при этом нет необходимости лазить в httpd.conf Собственно, как это выглядит на деле, покажу на примере ниже.
Изначально httpd.conf выглядел традиционно вот так:
########## Виртуальные хосты ############ NameVirtualHost *:80 <VirtualHost> ServerName localhost AddType application/x-httpd-php .php .php3 .php4 .phtml AddType application/x-httpd-php-source .phps </VirtualHost> <VirtualHost> ServerName server.com ServerAdmin bla_-_bla_-_bla@server.com DocumentRoot /path/to/htdocs ... CustomLog /path/to/custom/log.log combined ErrorLog /path/to/error/log.log ServerName site1.server.com ...
И так далее перечисляются все остальные виртуальные хосты. Уходя от такого метода, поступаем так:
Немного о циклах и условиях в PHP (модифицируем Wordpress шаблон)
Говорю сразу, что в PHP я не шибко силен. Так, по мелочам что-либо (для себя) могу подправить, синтаксис языка знаком. Однако, творить какие-то более или менее сложные вещи это не для меня. Потому, знающих этот язык на хорошем уровне, просьба меня не пинать, а лучше поправить или дополнить, если есть что сказать.
Так же следует отметить, что я никогда не использовал и наверное не буду использовать плагины WP для вставки кода Google Adsense в публикации. Гораздо удобнее и быстрее (как по мне) делать это руками, вставляя блоки непосредственно в шаблон темы оформления.
Значит сегодня заинтересовался блогом товарища Brim’а. Просмотрел практически все публикации в нем, обнаружив интересные для меня заметки. Среди прочего встретились рекомендации, как в полосе комментариев пронумеровать список оставленных комментариев, а так же как выделить те комменты, которые оставил автор обсуждаемого материала. Это мне напомнило то, что я хотел давно сделать у себя…
Собственно, ничего сложного и нет. Использование PHP цикла дает возможность нумеровать комментарии. Условие, которое проверяет соответствие e-mail адреса комментатора адресу автора публикации, вставляет в код необходимый стиль css, если эти параметры равны.
~/.forward - почему может не работать пользовательская переадресация почты
Обычно, если почтовый smtp сервер на FreeBSD настроен с использованием аккаунтов системных пользователей (из /etc/passwd) и не используется какая-либо специфическая конфигурация вроде “почтовых каталогов” (maildir), то вся входящая почта отдельного пользователя складывается в “почтовый ящик” формата mbox, представляющий собой обычный текстовый файл. Письма в нем, вместе с RFC заголовками будут записываться последовательно один за одним. Располагается этот файл в каталоге /var/mail/. mbox файлы называются обычно так же, как и имя пользователя. Для каждого пользовательского mbox выставляются права “user:user -rw——-”, чтобы обычные пользователи могли получать доступ только к своему файлу почты.
Для того, чтобы почта не складывалась в mbox пользователя, а перенаправлялась на сторонний почтовый сервер, можно настроить переадресацию. Для sendmail (а на тестовом сервере у меня работает именно он) это делается через указание алиаса в файле /etc/mail/aliases. Но изменить в нем что-либо может только root. Обычный пользователь может сам изменить адрес перенаправления, создав в своем домашнем каталоге файл .forward и указав в нем всего лишь адрес электронной почты, куда нужно передать всю почту для этого пользователя. Можно указать несколько адресов, каждый из которых (если я не ошибаюсь) должен начинаться с новой строки.
screen - оставляем процессы в фоне и идем спать (пример файла .screenrc)
Вспомнилась одна очень удобная и полезная программка для FreeBSD - screen называется. Screen - это полноценный консольный оконный менеджер, объединяющий физический терминал c (возможно) несколькими интерактивными, виртуальными шеллами, которые могут открепляться от физического терминала и продолжать "жить своей жизнью". Каждый виртуальный терминал предоставляет использование возможностей терминала DEC VT100 по стандартам ISO2022 (такие как вставка/удаление строки и поддержка различных кодировок). Также поддерживается сколлинг буфера для просмотра истории команд и механизм "копировать-вставить", что позволяет перемещать фрагменты текста между отдельными окнами.
Screen’ы удобны тем, что в них можно оставить любые запущенные процессы и уйти, закрыв физический терминал (если Вы ходите на сервер с помощью putty, например), а позднее, войдя в систему вновь, можно подключиться к висящему в фоне скрину и продолжить в нем работу. Скрины не раз выручали меня когда приходилось запускать на сервере процессы компиляции чего-либо надолго. Компьютер (рабочая станция) не может работать круглые сутки. К тому же, запуская что-то из дому, требуется потом проверить с работы как обстоят дела. Последний раз я вспомнил о screen, когда после обновления FreeBSD до 7.0 запускал обновление пакетов (–all). Процесс длился почти пару десятков часов, а сидеть возле монитора постоянно я, понятное дело, не мог… Да что там говорить. Это просто надо попробовать. В screen’е даже ту же самую аську можно запустить в фоне и свалить с машины. Рекомендую: Screen == Must Have!
Cистемные сетевые утилиты через интерфейс Wordpress (ping, whois, dig и т.д.). Простые PHP скрипты
Понадобилось мне как-то дать возможность пользователям локалки, сидящих естественно, под Win, использовать всякие dig, whois, traceroute… Давать всем подряд SSH доступ на роутер - нет смысла. Хотя бы даже потому, что многие просто не знают что такое командная строка. Выход нашелся просто. На внутреннем сайте этой самой локалки наваял на скорую руку странички буквально в несколько строк. Вставил в них элементарные скрипты на PHP, которые производят передачу параметров запроса $_POST к программе в системе, а потом выводят на страницу результаты того, что ответила команда.
Оговорюсь сразу: в целях безопасности эти скрипты лучше использовать только в личных целях или же для ограниченного числа людей, которым Вы доверяете (например, нескольким пользователям в локальной сети). На весь мир лучше эти страницы не демонстрировать. По этой причине и я не стану показывать здесь демо-страницу.