DirectAdmin - это удобная панель управления хостингом. Легкость в настройке, легкость в использовании!
ДиректАдмин - это самая быстрая и нересурсоемкая панель из всех существующих коммерческих панелей управления для хостинга. Бесплатные и регулярные обновления версии панели DirectAdmin на протяжении всего времени ее использования заметно выделяют ее среди других.



Нет доступа к файлам в /tmp из Php-FPM?

02.04.15 16:11

Вероятно вы заметили, что на сервере под управлением CentOS 7 некоторые PHP скрипты, которые работали ранее, могут не работать: причиной тому отсутствие доступа до файлов сессии, временных файлов, размещенных в /tmp. Так же может не работать php_uploadscan.sh скрипт Directadmin, с помощью которого загружаемые через веб-форму файлы проверяются ClamAV на предмет наличия злонамеренного кода, что в свою очередь ломает полностью загрузку файлов.

Причиной всему этому является особенность CentOS 7:

PrivateTmp=true

Что эта опция делает - это монтирует /tmp и /var/tmp в режиме приватной файловой системы, видимой и доступной только тому процессу, для которого она смонтирована. Так что, когда php-fpm пишет в /tmp, это не та же временная директория /tmp, которую вы видите из консоли даже как root, - это виртуальная директория, доступная только php-fpm.  И как только вы остановите процесс или он сам завершит свою работу, то созданная для него виртуальная /tmp со всем содержимым будет удалена.

Информация из документации по systemd.exec:

PrivateTmp=
          Takes a boolean argument. If true, sets up a new file system 
          namespace for the executed processes and mounts private /tmp 
          and /var/tmp directories inside it, that are not shared by 
          processes outside of the namespace. This is useful to secure 
          access to temporary files of the process, but makes sharing 
          between processes via /tmp or /var/tmp impossible. All temporary 
          data created by service will be removed after service is stopped. 
          Defaults to false.

Для того, чтобы это исправить нужно отредактировать файл (или другой по номеру версии PHP):

/etc/systemd/system/php-fpm55.service

и установить

PrivateTmp=false

затем перезапустить процесс.

Аналогично и для clamd.

Защищаем изменения от перезаписи

Каждый раз при обновлении PHP или ClamAv внесенные ранее изменения будут терятся. Для сохранения их скопируйте измененные файлы из /etc/systemd/system/ в /usr/local/directadmin/custombuild/custom/systemd/.




Рубрики: Решение проблем CustomBuild 2 php-fpm CentOS 7 PrivateTmp php_uploadscan.sh


« Как обновить версию PHP на сервере с Directadmin?  | В начало |  Защита от Brute-Force атак на Wordpress сайты посредством Directadmin »



Вам нужна помощь или консультация по данному руководству?! Задайте свой вопрос на форуме. Вам нужен профессионал?! Воспользуйтесь услугами системного администратора для работ по вашему серверу. Мы поможем вам с переездом, настройкой, оптимизацией сервисов, равно как и с другими вопросами по части Linux/Unix.







   Все права на панель управления Directadmin принадлежат разработчику © DirectAdmin, JBMC Software, Canada
   К вашим услугам плагины для Директадмин - панели управления хостингом
   Лучшее предложение по установке, поддержке Directadmin на CentOS/RedHat, Debian/Ubuntu, FreeBSD.
   Профессиональное абонентское обслуживание серверов: выделенных и виртуальных на базе Linux/Unix.
   Услуги системного администратора по настройке WEB сервера Apache (NGINX), DNS службы, POP3 (IMAP) и SMTP, FTP.
 Copyright, 2017 © DAHELP.RU, all rights reserved.
Работает на Amiro CMS - Free