воскресенье, 24 апреля 2016 г.

Восстановление столбца из бекапа MySQL

Пришел клиент с задачей восстановить определенный столбец в определенной таблице MySQL с тем вариантом, что бы добавленные данные со времени бекапа остались в базе.

Пишу краткую заметку для себя.

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

Берем бекап таблицы users.sql.
Столбец нужно восстановить - status.
Переименовываем в дампе таблицу с users на users2:
# sed -i 's/users/users2/g' users.sql

После чего в нашей базе есть таблица users (актуальная версия таблицы) и users2 (версия таблицы из бекапа).

пятница, 22 апреля 2016 г.

Установка PHP 5.2 и PHP 5.3 DirectAdmin

Потребовалось доставить PHP 5.3 на сервер с DirectAdmin. Что бы по умолчанию остался PHP 5.2, вот как это делается:

# cd /usr/local/directadmin/custombuild
# ./build set custombuild 1.2
# ./build update
# mkdir -p custom/suphp
# cp -pf configure/suphp/configure.php5 custom/suphp/configure.php6
# perl -pi -e 's/php53/phprep/' versions.txt
# perl -pi -e 's/php6/php53/' versions.txt
# perl -pi -e 's/phprep/php6/' versions.txt
# ./build set php5_ver 5.2
# ./build set php6_cgi yes
# ./build set php5_cgi no
# ./build set php5_cli yes
# ./build php n

воскресенье, 10 апреля 2016 г.

Закрыть доступ к файлу/папке с помощью .htaccess

Что бы запаролить вход к директории, необходимо в директории создать файл .htaccess с таким содержимым:
AuthType Basic
AuthName "Restricted area"
AuthUserFile /path/to/folder/where/.htpasswd
Require valid-user

Если необходимо запаролить отдельный файл, то так:
<FilesMatch "filename.php">
AuthType Basic
AuthName "Restricted area"
AuthUserFile /path/to/folder/where/.htpasswd
Require valid-user
</FilesMatch>

И сгенерировать файл .htapssswd:
# htpasswd -nmb username password >/path/to/folder/where/.htpasswd

Где /path/to/folder/where/.htpasswd - Ваш путь к файлу, где лежит файл с логином и паролем.

четверг, 7 апреля 2016 г.

Установка SOCKS5 прокси SS5 на CentOS 7


1. Подготовим каталог:
# mkdir /opt/ss5
# cd /opt/ss5

2. Скачаем SS5:
wget http://sourceforge.net/projects/ss5/files/ss5/3.8.9-8/ss5-3.8.9-8.src.rpm
wget http://sourceforge.net/projects/ss5/files/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

3. Установим зависимости:
# yum groupinstall 'Development Tools'
# yum install gcc automake autoconf libtool make pam-devel yum-utils openldap-devel openssl-devel

суббота, 2 апреля 2016 г.

Ansible в примерах. Часть 1

В данный момент я изучаю замечательный инструмент Ansible.

Ansible — сравнительно молодая система управления конфигурацией, его история насчитывает чуть более четырех лет. Но, несмотря на это, он стремительно и быстро ворвался в мир систем управления конфигурацией, потеснив Chef, Puppet и SaltStack.

Давайте посмотрим на него внимательно, чтобы понять, почему он так любим технарями.

Итак, чем же хорош ansbile:
- низкий порог входа;
- декларативный язык описания конфигурации;
- на управляемые узлы не нужно устанавливать никакого дополнительного ПО;
- просто написать дополнительный модуль.

Установку я описал чуть ранее: http://blog.asidorov.name/2016/02/ansible-ubuntu-1204.html

пятница, 1 апреля 2016 г.

Вопросы с собеседований на позицию Системного Администратора Linux

Добрый день.

Так как я работаю системным администратором Linux (в основном хостинг, виртуальные сервера, выделенные сервера). Бывает, что я собеседуюсь в те или иные компании.
Мне нравится само прохождение собеседования, так как частенько задают вопросы, которые заставляют подумать и узнать что-то новое. Вот я и решился наконец выложить вопросы, которые мне задавали на собеседованиях. По ясным причинам я не буду указывать названия компаний, а просто буду их нумеровать.
Так же в силу того, что я специалист не самого высокого класса, я не буду писать свои ответы, но если Вы захотите, я бы с радостью обсудил возможные ответы в комментариях или по почте.
Так же тут будут, как и вопросы, так и тестовые задания. Некоторые вопросы довольно абсурды и очень мало информации, но что же поделать? Какие есть.
Буду рад если Вы скинете вопросы, которые задавали Вам при собеседовании на ту или иную вакансию.

Хорошая репа с большим количеством вопросов:
https://github.com/chassing/linux-sysadmin-interview-questions

И так, поехали.

среда, 30 марта 2016 г.

Установка Nagios 4.1.1 на Ubuntu 14.04


Опишу установку Nagios 4.1.1, Nagios Plugins 2.1.1 NRPE 2.15 на Ubuntu 14.04 на nginx, php-fpm и fcgiwrap:

1. Установка nginx:
Обновим пакеты:
# apt-get update
# apt-get upgrade
# apt-get install build-essential

Подключим репозиторий nginx:
# cat /etc/apt/sources.list.d/nginx.list
deb http://nginx.org/packages/ubuntu/ trusty nginx
deb-src http://nginx.org/packages/ubuntu/ trusty nginx

Получим ключ репозитория nginx:
# wget http://nginx.org/keys/nginx_signing.key
# apt-key add nginx_signing.key

вторник, 29 марта 2016 г.

Debian squeeze backport репозиторий

Стал получать такую ошибку при подключении бэкпортов к Debian Squeeze:
E: Release file for http://backports.debian.org/debian-backports/dists/squeeze-backports/Release is expired (invalid since 9d 21h 41min 25s). Updates for this repository will not be applied.

Чинится просто:
# vim /etc/apt/apt.conf.d/10no--check-valid-until
Acquire::Check-Valid-Until "0";

И все.

Установка nginx на cPanel

Клиент попросил установить nginx на cPanel, краткая заметка:

# cd /usr/local/src
# wget http://nginxcp.com/latest/nginxadmin.tar
# tar xf nginxadmin.tar
# cd publicnginx
# ./nginxinstaller install
access key doesn't exist
go to WHM > Cluster/Remote Access > Setup Remote Access Key
and click on the Generate New Key button

Смена пароля cPanel

Получилось так, что зашел на сервер по SSH, а в панель попасть не могу, смена пароля в cPanel:
# /scripts/chpass root '2n_sXaJ1BM4!SG'

Однако тут получил ошибку:
ERROR: /usr/local/cpanel/scripts/realchpass
Invocation changes only the system
password and does not have any effect
on other services associated with your
cPanel account, including FTP, SSH,
WebDAV, and FrontPage.  It is strongly
encouraged for you to change the
password via the WHM & cPanel
interface. You can force a password
change through this script by setting
the environment variable
'ALLOW_PASSWORD_CHANGE=1'.

Добавим переменную:
# export ALLOW_PASSWORD_CHANGE=1

Теперь все ок:
# /scripts/chpass root '2n_sXaJ1BM4!SG'
warn [realchpass] Insecure passing of password on ARGV
Password for root has been changed

среда, 23 марта 2016 г.

Настройки подключения к базе данных CMS

Краткая заметка о том, где в каких CMS находятся настройки подключения к базе данных:
Joomla - configuration.php
WordPress - wp-config.php
Drupal 6 - site/default/settings.php
Drupal 7 - site/default/settings.php
DLE (DataLife Engine) - engine/data/dbconfig.php
Shop-script - cfg/connect.inc.php
ShopCMS - core/config/connect.inc.php
WebAsys - dblist/логин.xml, kernel/wbs.xml, temp/scdb/.settings.логин
PretaShop - config/settings.inc.php
MODx - manager/includes/config.inc.php
Bitrix - bitrix/php_interface/dbconn.php
CMS PHPShop - phpshop/inc/config.ini
CMS Opencart - config.php, admin/config.php
CMS Magento - app/etc/local.xml
ImageCMS - application/config/database.php

вторник, 22 марта 2016 г.

Установка nginx proxy

Краткая заметка по установке nginx прокси сервера, для скрытия IP-адреса backend'а (20.20.20.20), Frontend имеет IP 10.10.10.10.

Установим nginx:
# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

# yum install nginx
# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

Не включается квота ISPmanager 4/5

Столкнулся с проблемой, что на сервере с OpenVZ в контейнере не активируется дисковая квота для пользователей, в логе панели видим такую ошибку:
Mar 22 21:19:40 [961:86161] proc EXTINFO Run '/bin/sh -c setquota\ -g\ 504\ 20480000\ 20480000\ 2343750\ 2343750\ /' pid 19638
Mar 22 21:19:40 [961:86161] proc EXTINFO Process 19638 finished with status 1
Mar 22 21:19:40 [961:86161] quota ERROR Failed to set quota: 'setquota: Cannot stat() mounted device simfs: No such file or directory
setquota: Mountpoint (or device) / not found or has no quota enabled.
setquota: Not all specified mountpoints are using quota.


Фиксится очень просто.
ISPmanager 5:
# ln -s /simfs /usr/local/mgr5/simfs

ISPmanager 4:
# ln -s /simfs /usr/local/ispmgr/simfs


DirectAdmin обновить PHP с 5.3 до 5.4

Краткая заметка по обновлению:
# cd /usr/local/directadmin/custombuild
# ./build update
# ./build set php5_ver 5.4
# ./build php n

Стырено

суббота, 19 марта 2016 г.

DirectAdmin dataskq много процессов

Обратился знакомый с проблемой, что сайты перестали работать. Зашел на сервер с панелью управления DirectAdmin и увидел очень много процессов dataskq и LA 1200.
Прибил данные процессы и решил поправить крон, что бы такого более не повторялось:

Отредактируем файл /etc/cron.d/directadmin_cron:
# vim /etc/cron.d/directadmin_cron

И строку * * * * * root /usr/local/directadmin/dataskq заменим на:
* * * * * root if [ "`ps ax | grep -v grep | grep -c dataskq`" -eq 0 ]; then /usr/local/directadmin/dataskq; fi;

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

Ссылки:
http://help.directadmin.com/item.php?id=246
http://directadminguru.com/directadmin-command-line-tasks-dataskq/
http://help.directadmin.com/item.php?id=402

понедельник, 14 марта 2016 г.

Fatal: Error in configuration file /etc/dovecot/sni.conf

Появилась ошибка на сервере с cPanel:
Запускается Dovecot Imap: doveconf: Fatal: Error in configuration file /etc/dovecot/sni.conf line 2: ssl_cert: Can't open file /var/cpanel/ssl/installed/certs/domain_com_ce349_bba83_1486628878_23fec30cbb1f26d45d0cd436432e395c.crt: No such file or directory

Такого сертификата и правда не было на сервере по указанному пути, решается ребилдом mail sni:
# /scripts/build_mail_sni --rebuild_map_file --rebuild_dovecot_sni_conf
[*] Rebuilding SNI map file for mail services...
[+] Successfully built SNI map file: /etc/mail_sni_map
[*] Rebuilding Dovecot SNI configuration file...
[+] Successfully built Dovecot SNI configuration: /etc/dovecot/sni.conf

Теперь все гуд.

суббота, 12 марта 2016 г.

Проблема с translate data yii2

Вообщем понадобилось завести сайт на yii2 и для отображения комфортной записи, когда были обновлены данные, однако вместо этого отображалось что-то вроде:
{delta, plural, =1{день} one{день} few{дня} many{дней} other{дня}}

На сервере используется панель управления CentOS Web Panel и установка производилась для одной из версий php.

Пришлось долго повозиться, но рецепт был найден:

Удаляем пакет с древней версией:
# yum remove libicu

Компилим новую версию ICU:
# yum install gcc gcc-c++ php-devel php-pear
# cd /tmp
# wget http://download.icu-project.org/files/icu4c/54.1/icu4c-54_1-src.tgz
# tar -xvf icu4c-54_1-src.tgz
# cd icu/source/
# ./configure --prefix=/opt/icu4c-54_1 && make && make install

После чего, необходимо пересобрать PHP с опцией:
 --with-icu-dir=/opt/icu4c-54_1


Ставим модуль intl для PHP 5.4:
# pecl download intl
# tar xvfz intl-3.0.0.tgz
# cd intl-3.0.0
# /opt/alt/php54/usr/bin/phpize
# ./configure --with-php-config=/opt/alt/php54/usr/bin/php-config
# make
# make install
# vim /opt/alt/php54/usr/php/php.d/intl.ini
extension=intl.so

# /etc/init.d/httpd restart

Полезные ссылки:
http://nitinsharma.info/linux/libicui18n-so-42-cannot-open-shared-object-file-while-enabling-multiple-php-versions-in-parallels-plesk-for-linux/
http://yiiframework.ru/forum/viewtopic.php?t=22716#p135719

четверг, 3 марта 2016 г.

ISPmanager 4 ошибка "Имя базы уже существует"

Бывает так, что в панели управления базы данных нет, но при попытке ее создания получаем ошибку "Имя базы уже существует", при этом в ispmgr.log видна ошибка:
ERROR Exception 2: 'name' already exists

Сначала проверим, есть ли данная база:
# mysql -uroot -p -e "SHOW DATABASES;" | grep database_name

Если и тут ничего нет, то смотрим так:
# mysql -uroot -p
mysql# use mysql;
mysql# SELECT Db FROM db WHERE Db = 'database_name';

Тут скорее всего и будет наша пропавшая база данных. Удалим просто эту строку:
mysql# DELETE FROM Db WHERE Db = 'database_name'; 

После чего, спокойно создаем базу данных в панели управления.

ERROR 1273 (HY000) at line 25: Unknown collation: 'utf8mb4_unicode_ci'

Частая ошибка, когда, к примеру дамп с MySQL 5.5+ пытаются влить в MySQL 5.1.

Обновить MySQL до 5.5 на CentOS 6 легко:
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
# yum install mysql.`uname -i` yum-plugin-replace
# yum replace mysql --replace-with mysql55w

стырено

вторник, 1 марта 2016 г.

Установка модуля nginx ngx_pagespeed на CentOS 6

Клиенту с CentOS 6 и ISPmanager 5 понадобилось установить модуль nginx pagespeed.
Краткая заметка по установке:

Установим зависимости, свежий gcc:
# rpm --import https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/slc6X/i386/RPM-GPG-KEY-cern
# wget -O /etc/yum.repos.d/slc6-devtoolset.repo https://linux.web.cern.ch/linux/scientific6/docs/repository/cern/devtoolset/slc6-devtoolset.repo
# yum install devtoolset-2-gcc-c++ devtoolset-2-binutils

# PS_NGX_EXTRA_FLAGS="--with-cc=/opt/rh/devtoolset-2/root/usr/bin/gcc"

Установка GitLab 7.4 на CentOS 6

В основе моей установки была запись:
https://github.com/gitlabhq/gitlab-recipes/tree/master/install/centos

Однако, во время установки были некоторые НО.

1. Для работы с Percona необходимо установить не mysql-devel, а:
# yum install Percona-Server-devel-56

2. И установка GitLab Shell, там ошибка с версией.
Вместо:
# sudo -u git -H bundle exec rake gitlab:shell:install[v2.1.0] REDIS_URL=unix:/var/run/redis/redis.sock RAILS_ENV=production


Ошибка при импорте MySQL дампа с полем VARCHAR > 255

Понадобилось импортнуть дамп, где в таблице было такое поле и движок MyISAM:
  `title` varchar(400) NOT NULL
ENGINE=MyISAM AUTO_INCREMENT=33525 DEFAULT CHARSET=utf8;

Однако столкнулся с такой ошибкой:
ERROR 1071 (42000) at line 1817: Specified key was too long; max key length is 1000 bytes

Решил проверить, поможет ли уменьшение поля title до 255:
  `title` varchar(255) NOT NULL

И вуаля дамп загрузился, однако - это плохой вариант ибо могут потеряться данные.

После поисков в интернете решил попробовать поменять ENGINE на InnoDB и получил ошибку:
ERROR 1709 (HY000) at line 1817: Index column size too large. The maximum column size is 767 bytes.

понедельник, 29 февраля 2016 г.

Error: rpmdb open failed

Появилась ошибка:
# yum
error: rpmdb: BDB0113 Thread/process 12457/140165805504320 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed


среда, 24 февраля 2016 г.

Анализ логов Postfix

Очень удобный скрипт для получения статистики и анализа лога почтового сервера Postfix.


Устанвока:
# wget http://jimsun.linxnet.com/downloads/pflogsumm-1.1.1.tar.gz
# tar -zxf pflogsumm-1.1.1.tar.gz
# cd pflogsumm-1.1.1

Запуск:
# cat /var/log/maillog | ./pflogsumm.pl

Примерный вывод:

вторник, 16 февраля 2016 г.

Сброс статистики трафика ISPmanager

Пришел очень странный запрос на сброс трафика в ISPmanager.

Делается это просто.
Идем в конфигурационный файл ISPmanager:
# vim /usr/local/ispmgr/etc/ispmgr.conf 

И для каждого пользователя правим поле:
BandwidthUsage 0

После чего перезапускаем ISPmanager:
# killall -9 -r ispmgr

понедельник, 15 февраля 2016 г.

OpenVZ создание произвольного образа ОС для установки контейнера

Краткая заметка о создании кастомного образа для установки контейнера.

1. Создадим контейнер с нужной нам операционной системой.
2. Установим или удалим нужные и ненужные пакеты из системы
# vzctl enter CTID
# apt-get remove package
....

3. Удалим IP-адрес у контейнера:
# vzctl set CTID --ipdel all -save

4. Остановим контейнер
# vzctl stop CTID

5. Перейдем в каталог установленного контейнера
# cd /var/lib/vz/private/CTID

6. Сохраним содержимое файловой систему с нужным нам именем:
# tar -czvf /var/lib/vz/template/cache/<template name>.tar.gz ./

Установка Ansible на Ubuntu 12.04

Краткая заметка по установке свежей версии:

Обновим кеш пакетов:
# apt-get update

Установим нужные пакеты:
# apt-get install python-pip python-dev git -y

Установим нужные библиотеки:
# pip install paramiko PyYAML Jinja2 httplib2 six

Склонируем Ansible из репозитория:
# git clone git://github.com/ansible/ansible.git --recursive

Установим Ansible:
# cd ./ansible
# make install
# mkdir /etc/ansible
# cp ~/ansible/examples/hosts /etc/ansible

Ansible Proxmox

Добрый день.
Сегодня краткая заметка и описание работы ansible модуля для Proxmox.
Модуль Proxmox для Ansible стал доступен с версии 2.0.0 (Описание)

Был создан файл hosts с содержимым:
[pve]
192.168.0.125


И пара playbook:
- crate_ct_manual.yml
- remove_ct_manual.yml

воскресенье, 14 февраля 2016 г.

Время ответа сайта с помощью curl

Очень удобный способ, получить информацию, где же затык.

Создаем файл curl_format.txt с содержимым:
    time_namelookup:  %{time_namelookup}\n
       time_connect:  %{time_connect}\n
    time_appconnect:  %{time_appconnect}\n
   time_pretransfer:  %{time_pretransfer}\n
      time_redirect:  %{time_redirect}\n
 time_starttransfer:  %{time_starttransfer}\n
                    ----------\n
         time_total:  %{time_total}\n


После чего, выполняем:
$ curl -w "@curl_format.txt" -o /dev/null -s "http://blog.asidorov.name"
    time_namelookup:  0,126
       time_connect:  0,200
    time_appconnect:  0,000
   time_pretransfer:  0,200
      time_redirect:  0,000
 time_starttransfer:  0,813
                    ----------
         time_total:  1,128

суббота, 13 февраля 2016 г.

Системные вызовы Linux небольшой справочник

Знание системных вызовов очень облегчает работу программистов (для написаний программ на языке программирования С) и системным администратором при дебаге какой-либо программы, с помощью таких инструментов, как: strace/gdb и пр. Вот небольшое описание системных вызовов Linux.


среда, 10 февраля 2016 г.

MySQL Master-Slave репликация

Master-Slave репликация в MySQL часто используется для обеспечения отказоустойчивости или распределения нагрузки на сервер баз данных. Например, можно запросы на изменение данных направлять на Master-сервера, а запросы на чтение выполнять на Slave-сервере. Пример о применении репликации.

Есть 2 сервера:
1. 192.168.1.10 - Debian squeeze Mysql 5.5 - Master
2. 192.168.1.15 - Centos 6 Mysql 5.5 - Slave

Необходимо настроить репликацию с Master сервера на Slave сервер базы данных repl.

воскресенье, 7 февраля 2016 г.

Установка JIRA и Confluence + nginx + MySQL на Debian

В данной заметке рассмотрена установка JIRA и Confluence на Debian с nginx и MySQL.

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


Примеры применения nmap


Установка:
Debian/Ubuntu:
# apt-get install -y nmap

CentOS/RedHat
# yum install -y nmap

Сохранить вывод в файл:
# nmape 192.168.1.1 > output.txt
# nmap -oN output.txt 192.168.1.1

Установка MemSQL на Ubuntu 14.04

MemSQL - это типичная база данных в памяти, которая может читать и писать данные быстрее традиционных баз данных.
Использует MySQL протокол.
MemSQL владеет новейшими возможностями MySQL, такие, как поддержка JSON. Одно из самых больших преимуществ MemSQL над MySQL - он умеет отдельный запрос распределять по нескольким серверам, известный как параллельная обработка запроса, что приводит к гораздо быстрому чтению данных.
В этой заметке мы установим MemSQL на Ubuntu 14.04. Проведем тестирование нагрузки и попробуем работу с JSON из MySQL клиента.

Установка Graylog на Ubuntu 14.04

Graylog - бесплатная open source система централизованного сбора, хранения и анализа информации, которая пишется в syslog.

Graylog состоит из таких компонент:
- Graylog server node - Java TCP/UDP лог-коллектор;
- Elasticsearch node - хранение сообщений/логов;
- MognoDB - хранение конфигурации и метаданных;
- Web Interface - пользовательский веб-интерфейс.

вторник, 2 февраля 2016 г.

Dotdeb signatures couldn't be verified

Понадобилось поставить PHP 5.6 на Debian Wheezy, добавил репу DotDeb https://www.dotdeb.org/instructions/
При apt-get update вылезло:
W: GPG error: http://packages.dotdeb.org wheezy-php56-zts Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E9C74FEEA2098A6E


Перенос писем из почтового ящика с сервера на сервер

Появилась необходимость перенести почту с одного сервера на другой на домене.
Для этого была найдена довольно старая, но работающая утилита imapsync.

На старом сервере имеем почтовый ящик mail@domain.com. Создаем аналогичный почтовый ящик на новом сервере. Клиент работает с почтой через Roundcube.

После чего нам необходимо синхронизировать папки и письма со старого сервера на новый.
Действие происходит на операционной системе CentOS 6.

Установим репозиторий rpmforge
# wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
# rpm -Uhv rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

И собственно установим сам пакет:
# yum install imapsync


воскресенье, 31 января 2016 г.

PhpMyAdmin cPanel Unable to establish a PHP session

Добрый день.
Бывает, что на сервере с панелью управления cPanel при переходе из пользовательского аккаунта в PhpMyAdmin клиент получает сообщение об ошибке:

Access Denied
Unable to establish a PHP session.
If you believe that this is in error on inadvertent, contact your system administrator and ask them to review your server settings.

На самом деле данная проблема решается очень просто.
Заходим на сервер по SSH и в домашнем каталоге проблемного пользователя создаем каталог /tmp:
# mkdir /var/www/username/tmp
# chown username:username /tmp

И все, теперь все будет работать корректно.