Авг 192014
 

Потратил на чтение документации достаточно времени, заставляя Samba работать с символическими ссылками. Предлагаю Вам свое решение.

Открываем конфигурационный файл:

sudo nano /etc/samba/smb.conf

В начале секции [global] пишем.

unix extensions = no
wide links = yes
follow symlinks = yes

Не забываем перезагрузить демон:

service smbd restart
/etc/init.d/samba restart

Данное решение очень удобно если Вам надо работать с файлами в разных частях системы.
Не забывайте про безопасность, она очень важна в системе.

Июл 162014
 

Решение проблемы с обрезанными массивами в PHP

 

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

post_max_size = 512M

Максимально допустимый размер данных, отправляемых через методом POST. Этот параметр влияет на объем передаваемых данных методом POST, так же важно учитывать его при реализации загрузки файлов через скрипты, в частности на размер файла эта директива и влияет. По умолчанию данный параметр стоит 8Мб.

post_max_vars = 2000

Если про post_max_size все хорошо описано в мануале и он есть по умолчанию в конфигурации php, то про параметр post_max_vars глухая тишина. Так что же это такой за параметр. Post_max_vars указывает интерпретатору сколько будет обрабатываться строк в POST запросе, ограничение стоит по умолчанию 200 строк.
Для крупных проектов, особенно реализованных на таких тяжеловесах как Битрикс это довольно мало.
Поэтому, если вы столкнулись с проблемой, когда при сохранении данных вы получается обрезанный POST массив или массив в котором только часть передаваемых строк, значит вам нужно не искать ошибку в вашем скрипте, а менять параметры на сервере. Если такой возможности нет, значит надо переделывать скрипт так, что бы он не превышал лимитов.

max_input_vars = 2000

Сколько входных переменных может быть принято в одном запросе (ограничение накладывается на каждую из глобальных переменных $_GET, $_POST и $_COOKIE отдельно). Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий. Если входных переменных больше, чем задано директивой, выбрасывается предупреждение E_WARNING, и все последующие переменные в запросе игнорируются. Это ограничение применяется к каждому уровню вложенности входного многомерного массива.
Ограничение стоит по умолчанию 200 строк.

Поменяем в php.ini.
Параметр post_max_size уже там указан, и достаточно найти его поиском и поменять, тогда как post_max_vars придется дописать, например под post_max_size, с max_input_vars мы поступим таким же образом.

Июн 062014
 

Как сделать перезагрузку (re-read) таблиц партиций (Partition Table) в Debian или Ubuntu Linux

Иногда случается ситуация когда необходимо перечитать таблицу партиций. Переразбил диск, а перегружать сервер не хочется, да и не надо этого делать, нарушается правило стабильности сервера.
Так как же я перезагружаю таблицу партиций (partition table) без перезагрузки системы?

В первую очередь необходимо установить пакет parted, сделаем мы это вот так:

# sudo apt-get update
# sudo apt-get install parted

Работаем с диском /dev/sdb.

# ls /dev/sdb*

Вывод:

/dev/sdb1 /dev/sdb2

После установки можно экспериментировать, разбиваем диск и используем следующую команду для перезагрузки партиций:

# sudo partprobe

После установки повторяем проверку:

# ls /dev/sdb*

Вывод:

/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb4

Очень удобная программа. После ее использования уже можно работать с дисками, используя команду fdisk или cfdisk, форматировать диски mkfs.

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

Июн 062014
 

Исправляем ошибку 413 Request Entity Too Large

Ошибка появляется когда объем файла превышает допустимый размер. Одна из основных причин — это настройки по умолчанию nginx, а именно параметра client_max_body_size, который по умолчанию равен 1m.

Директива client_max_body_size задаёт максимально допустимый размер
тела запроса клиента, указываемый в строке "Content-Length" в
заголовке запроса. Если размер больше заданного,
то клиенту возвращается ошибка "Request Entity Too Large" (413).
Следует иметь в виду, что браузеры не умеют корректно показывать
эту ошибку.

Решение
В конфигурационном файле nginx.conf, добавить директиву если нет client_max_body_size или увеличить значение:

Пример:

client_max_body_size 512M
Янв 072014
 

NTP Client (NTP Клиент синхронизации с сервером точного времени) Debian/Ubuntu

Установка и Конфигурированние

Установка самого клиента на компьютер:

apt-get install ntp

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

ntpq -p

Если вывело подобное примеру снизу, значит сервер не запустился:

No association ID's returned

Для перезапуска службы ntp, необходимо запустить команду:

dpkg-reconfigure ntp

Пробуем снова работоспособность сервера, с помощью команды ниже:

ntpq -p

И получаем результат, подобный вот этому:

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 ntp.pbx.org     xx.xxx.xxx.xxx   2 u    -   64    1   33.763  1799619   1.054
 xray.metadom.co xx.xxx.xxx.xxx   2 u    1   64    1   40.367  1799619   0.001
 hydrogen.cert.u xx.xxx.xxx.xxx   2 u    -   64    1   64.740  1799619   0.001
 mirror          .INIT.          16 u    -   64    0    0.000    0.000   0.001

Проверяем время:

date -R

Незабываем проставлять правильный часовой пояс.