Показаны сообщения с ярлыком основы. Показать все сообщения
Показаны сообщения с ярлыком основы. Показать все сообщения

суббота, 11 августа 2012 г.

Просмотр списка жестких дисков в FreeBSD

Меня довольно долго волновал вопрос, как узнать какие физические жесткие диски установлены в системе, но еще не смонтированы и ответ никак не находился, но недавно нужная информация случайно попала мне в руки и, как всегда, оказалось, что все просто.

Просмотреть список жестких дисков установленных в системе в ОС FreeBSD можно командой:

fdisk -s

воскресенье, 24 июня 2012 г.

Как включить вывод ошибок в php

Лучший способ - включить вывод ошибок php с помощью файла .htaccess. Простой вариант:

php_value display_errors on
php_value display_startup_errors on
Расширенный вариант:
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag track_errors on
php_flag display_errors on
php_flag display_startup_errors on
php_flag log_errors on
php_flag mysql.trace_mode on
php_value error_reporting -1
php_value error_log /path/to/site/php-errors.log
Таким образом ошибки php будут выводиться на экран, а также логироваться в файл php-errors.log

Кроме того, можно включить вывод ошибок прямо из php скрипта:

Как изменить командную оболочку

Узнать, какая сейчас используется командная оболочка можно командой:

echo $SHELL
Изменить текущую оболочку можно с помощью команды vipw. Данная команда открывает содержимое файла passwd в редакторе vi. Для перехода в режим правки нужно нажать клавишу с символом i. Затем внести правку. К примеру, в строке вида:
root:$1$faKI$/PhoNgxjbCibJ3/:0:0::0:0:Charlie &:/root:/bin/сsh
изменить последний параметр на путь к необходимой оболочке. К примеру: /usr/local/bin/bash.

После этого необходимо сохранить изменения, для этого нажмите клавишу Esc, затем наберите с клавиатуры :wq и нажмите клавишу Enter.

Также можно использовать команду вида:
chpass username
которая откроет тот же vi, но парметры будут снабжены комментариями и не будет отображатся информация, относящаяся к другим пользователям. То есть информация выдается в более удобоваримом и безопасном виде. Также можно использовать команду chpass без параметров, тогда откроются параметры для текущего пользователя.

Но, наиболее простым способом изменить командную оболочку, на мой взгляд, является следующая команда:
pw user mod username -s /usr/local/bin/bash
То есть не нужно мучаться с vi и напрямую указать на какой путь необходимо изменить путь к оболочке и для какого пользователя. Вообще говоря, команда pw достойна отдельной статьи, но она дает не плохие подсказки в процессе использования.

Теперь при повторном входе в систему будет запущена новая, указанная вами, оболочка.

P. S. Менять оболочку пользователю root не рекомендуется, во избежание ошибок и последующей невозможности войти в систему. Если Вы хотите иметь привилегии пользователя root, но пользоваться другой оболочкой в FreeBSD предусмотрен пользователь toor. По умолчанию он отключен. Чтобы активировать пользователя toor, зайдите под пользователя root и выполните команду passwd toor и задайте пароль.

суббота, 19 мая 2012 г.

Быстрое обновление FreeBSD

Если нет желания перекомпилировать все компоненты системы, долго ждать и совершать много операций, то можно провести быстрое бинарное обновление системы, то существует волшебная утилита freebsd-update.

Действуем:

freebsd-update fetch
freebsd-update -r 9.0-RELEASE upgrade

Система проинформирует о том, что будет обновлено. Нужно будет согласиться с предложением.

freebsd-update install

Затем требуется перезагрузка для установки нового ядра. Ставится новое GENERIC ядро. Как следствие, внесенных вами изменений в нем не будет, то есть, может отвалиться файрволл, поллинг и прочее. Это может быть особенно неприятно, если вы используете сервер в качестве роутера. В этом случае в сетке не будет интернета, хорошо если вообще останется удаленный доступ к серверу. Будьте осторожны.

reboot
freebsd-update install

Далее, при необходимости пересобираем ядро:

Добавляем необходимые параметры в файл  /usr/src/sys/amd64/conf/GENERIC (для 64 разрядной версии, для 32 разрядной: меняем amd64 на i386), затем:

cd /usr/src
make -j4 buildkernel
make installkernel
reboot

Если обновление прошло не так, как вам хотелось бы, то можно откатиться к предыдущему состоянию:

freebsd-update rollback

Последнее замечание. Система использует конфигурационный файл /etc/freebsd-update.conf
В нем можно указать, что конкретно вы хотите обновлять, где хранить файлы и ещё ряд параметров.

понедельник, 13 июня 2011 г.

Как узнать сколько свободного места на жестком диске?

Я нашел единственный способ узнать сколько свободного места осталось на жестких дисках. Это команда df -H

Если у вас несколько жестких дисков и вы хотите узнать сколько суммарно свободного места осталось, то выполните команду с параметром "-c", то есть df -Hc

понедельник, 6 июня 2011 г.

Настройка dhcp клиента dhclient в FreeBSD

DHClient в FreeBSD включен по умолчанию. Чтобы начать его использовать, следует прописать в файле /etc/rc.conf строку следующего вида:


ifconfig_fxp0="DHCP"

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

dhcp_program="/sbin/dhclient"
dhcp_flags=""

Также существует ряд параметров командной строки:


-b Заставляет dhclient перейти в режим фоновой работы.
-c file Определяет альтернативное положение конфигурационного файла.
-d Заставляет dhclient всегда работать на переднем плане.
-l file Определяет альтернативное положение файла с данными о предыдущих полученных конфигурациях.
-q Заставляет dhclient быть менее многословным при загрузке.
-u Заставляет dhclient не принимать конфигурации с неизвестными параметрами в них. По умолчанию, DHCP клиент принимает такие конфигурации.

Напомню, что настройки клиента по умолчанию находится в файле /etc/dhclient.conf А предыдущие полученные настройки сетевых интерфейсов в файлах /var/db/dhclient.leases.IFNAME, где IFNAME - имя интерфейса.

Более подробно о параметрах файла dhclient.conf можно прочитать в мане dhclient.conf(5).

Можете обратить своё внимание на мой пост про настройку DHCP сервера в FreeBSD.

воскресенье, 5 июня 2011 г.

Изменение mac адреса в FreeBSD

Для того чтобы изменить mac адрес сетевой карты я всегда прописывал команду
ifconfig re0 ether 00-00-00-00-00-01
в какой-нибудь стартовый скрипт, к примеру в /etc/rc.d/ipnat

Но оказалось все проще, можно задавать этот параметр прямо из /etc/rc.conf следующим образом
ifconfig_re0="ether 00:00:00:00:00:01"

суббота, 4 июня 2011 г.

Как узнать версию freebsd?

Чтобы узнать версию установленной операционной системы FreeBSD можно воспользоваться командой:

uname -a
Это может пригодится, к примеру, при обновлении ОС или для установки патчей.

четверг, 24 декабря 2009 г.

freebsd отключить sendmail

Собственно проблемма в том, что на моем сервере sendmail не нужен, а он ставится на фряху по умолчанию и мне хотелось бы его выключить, чтобы не валил кучу лишних уведомлений. Также может понадобиться отключить sendmail если вы хотите установить другой MTA, например postfix.

Итак, как написано в руководстве по freebsd, необходимо прописать следующие строки в файле /etc/rc.conf

sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"
ежели вы хотите использовать sendmail только для исходящей почты и не принимать входящую, то достаточно поставить только строку
sendmail_enable="NO"

среда, 12 августа 2009 г.

Установка и базовая настройка веб-сервера

24.07.2009
установка apache+nginx+mod_rpaf+mysql+php+eAccelerator

Вначале просто установим все необходимые компоненты. Естественно из портов. На всякий случай напомню нужные команды:

make
make install

Итак, вот список путей до портов, которые будем устанавливать:

/usr/ports/www/apache22 (текущая версия 2.2.11)
/usr/ports/www/nginx (0.7.61)
/usr/ports/www/mod_rpaf/ (видимо 0.6)
/usr/ports/databases/mysql50-server/ (5.0.83, уже существуют более поздние версии, ищите рядом)
/usr/ports/lang/php5/ (5.2.10)
/usr/porst/lang/php5-extension (следует выбрать необходимые пункты, не забыв про модуль для mysql)
/usr/ports/www/eaccelerator/(0.9.5.3)

Также может понадобиться:

/usr/ports/databases/mysql50-client/

Стоит установить и вот это тоже:

/usr/ports/databases/mysql50-scripts/

eAccelerator - система, которая ускоряет выполнение php скриптов вплоть до 10 раз за счет их компилирования и хранения в памяти.

mod_rpaf - так как у нас nginx стоит фронтэндом для apache, то запросы приходящие на апач имеют айпи адрес такой же как у самого сервера, что не позволяет нормально вести статистику посещений (например). mod_rpaf исправляет данную неприятность.

После установки, которая не должна вызвать проблем перейдем к настройке. Начнем с mysql:

1. Создаем конфигурационный файл для mysql на основе одного из типовых:

cp /usr/locale/share/mysql/my-small.cnf /etc/my.cnf

2. Добавляем в него строки для настройки ведения логов и в целях безоасности привязываем мускуль к локальному хосту:

[mysqld]
log=/var/log/mysql.log
bind-address=127.0.0.1

3. Создаем файл для лога и выставляем ему права:

touch /var/log/mysql.log
chown mysql:mysql /var/log/mysql.log

4. Стартуем MySQL:

/usr/local/etc/rc.d/mysql-server start

5. Используем скрипт для настройки безопасности мускуля:

/usr/local/bin/mysql_secure_installation

Все, mysql подвергнут базовой настройке и запущен. В случае возникновения проблем, ответы следует искать в логе, а затем в Яндексе.

Теперь перейдем к настройке mod_rpaf. Собственно, настраивать тут нечего, просто нужно добавить несколько строчек в конфигурационный файл апача:

1. Открываем файл /usr/local/etc/apache22/httpd.conf и дописываем в соответствующий раздел строку:

LoadModule rpaf_module libexec/apache22/mod_rpaf.so

не забываем проверить нет ли уже такой страки в конфиге.

2. Там же, чуть ниже вписываем следующее:

RPAFenable On
RPAFsethostname On
RPAFproxy_ips 84.238.71.16 # IP нужно сменить на адрес вашего сервера
RPAFheader X-Forwarded-For

С mod_rpaf покончено, переходим к PHP. Тут и того меньше, просто нужно создать файл /usr/local/etc/php.ini из файла /usr/local/etc/php.ini-recommended c помощью команды:

cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini

На очереди у нас стоит eAccelerator.

1. Для того, чтобы он заработал, в только что созданый php.ini добавляем следующие строки:

extension="eaccelerator.so"
eaccelerator.shm_size = "160"
eaccelerator.cache_dir = "/var/cache/php-eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.debug = 0
eaccelerator.log_file = "/var/log/eaccelerator_log"
eaccelerator.name_space = ""
eaccelerator.check_mtime = "1"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "3600"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "none"
eaccelerator.sessions = "none"
eaccelerator.content = "none"
eaccelerator.allowed_admin_path = ""

2. Создаем директорию для кэша и выставляем ей права:

mkdir /var/cache/php-eaccelerator
chmod 777 /var/cache/php-eaccelerator

Теперь настроим главных виновников торжества - nginx и apache. Начнем с апача. Как вам уже известно, его конфигурационный файл можно найти в директории /usr/local/etc/apache22/ и называется он httpd.conf. Нам необходимо добиться того, чтобы апач правильно понимал что делать с php-скриптами, а также повесить его на нестандартный порт, например на порт 8080. Итак, приступим:

1. Находим строку, начинающуюся с Listen и приводим её к следующему виду:

Listen 84.238.71.16:8080 # необходимо исправить на айпи-айдрес вашего сервера

2. Находим раздел начинающийся с и вставляем туда следующее:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

3. Находим раздел и добавляем к строке начинающейся с DirectoryIndex следующее: index.php index.phps

Все, начальная настройка апача закончена. Остался только nginx. Нужно выполнить следующие шаги:

1. Находим раздел server, в нем правим строки listen и server_name:

listen 84.238.71.16:80; # ip адрес вашего сервера и стандартный http порт 80
server_name gesundes.org.ru www.gesundes.org.ru; # ваш домен с www и без

2. Находим (или создаем) подраздел location (находится внутри раздела server) и вставляем туда:

location / {
proxy_pass http://84.238.71.16:8080/; # не забываем менять ip-адрес
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

3. Добавляем еще один подраздел:

location ~* \.(jpeg|jpg|gif|png|css|js|pdf|txt|tar)$ {
root /usr/local/www/apache22/data/; }

в первой строке указываем расширения файлов, которые будет обрабатывать nginx, остальные файлы будет обрабатывать апач. Во второй строке указывается путь до корневой директории, в которой хранятся файлы, относящиеся к вашему сайту. По умолчанию, апач использует директорию /usr/local/www/apache22/data/ поэтому в для nginx нужно указать такуюже.

Осталось только запустить все необходимые сервисы. MySQL уже запущен, теперь нужно позаботиться о apache и nginx. Выполним следующие команды:

/usr/local/sbin/apachectl start
/usr/local/etc/rc.d/nginx start

Стоит помнить, то апач пишет логи в файлы httpd-error.log и httpd-access.log в директории /var/log/. Nginx использует файлы nginx-error.log и nginx-access.log в той же директории.

Для того, чтобы при перезагрузке все установленые сервисы поднимались автоматически, в файл /etc/rc.conf нужно внести изменения:

mysql_enable="YES"
apache22_enable="YES"
nginx_enable="YES"

Веб-сервер установлен и готов к работе.

пятница, 3 июля 2009 г.

Начало

Описывать процесс установки особого желания нет, так как он элементарен, но поделиться тем где можно эту самую FreeBSD вполне себе хочется. Кроме официального сайта, дистриб фряхи можно найти в разделе яндекса mirror. Яндекс меня приятно удивил коллекцией дистрибутивов и скоростью их раздачи.

А теперь пару слов о том, что можно сделать сразу после установки новой системы. Лично я прежде чем что-либо устанавливать, предпочитаю обновить порты (коллекция программ, оптимизированых для FreeBSD). Для этого можно использовать команды:

portsnap fetch
- загружает дерево портов в заархивированном виде,
portsnap extract
- распаковывает и переписывает дерево портов.
В первую очередь стоит устанавливать файловый менеджер Midnight Commandeer (mc). Чтобы узнать где находится соответствующий порт, можно выполнить команду
whereis mc

однако, с большой долей вероятности, он окажется в директории /usr/ports/misc/mc. Переходим в эту директорию и выполняем команду
make

появится окошко с настройками, где все можно оставить по умолчанию. После того как вы выбирете OK, mc скомпилируется. Для окончательной установки нужно выполнить команду
make install

и немного подождать. Когда инсталляция закончится, этот удобный файловый менеджер можно будет запускать простой командой
mc