Установка Magento в Ubuntu

На тесте установлю Magento в Ubuntu Server 16.04 & PHP 7.

Сначала обновим систему и установим необходимые компоненты:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2 php mysql-server mysql-client openssl libcurl3 php-curl php-gd php-mcrypt php-xml php-intl php-zip php-mbstring php-soap php-mysql php-cli php-json libapache2-mod-php php-xsl composer

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

sudo nano /etc/php/7.0/apache2/php.ini

И установим или убедимся что memory_limit не меньше 512M:

memory_limit = 512M

Активируем необходимые модули:

sudo a2enmod rewrite
sudo phpenmod mcrypt

В конфигурации apache2 добавим сайт или отредактируем стандартный:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Добавим внутри тегов VirtualHost параметры:

<Directory /var/www/html/magento_test>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
</Directory>

Перезапустим apache2 чтобы применить изменения:

sudo service apache2 restart

Подключимся к MySQL серверу, создадим базу и пользователя:

mysql -u root -p
CREATE DATABASE magento;
CREATE USER magento@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON magento.* TO magento@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit

Скачаем архив с последней версией Magento и распакуем его:

cd /tmp/
wget https://github.com/magento/magento2/archive/2.2.3.tar.gz
tar xzvf 2.2.3.tar.gz

Переместим файлы в директорию веб-сервера:

sudo mv magento2-2.2.3 /var/www/html/magento_test

Выполним команду:

cd /var/www/html/magento_test
sudo composer install

Установим на файлы права, владельца и группу под которым работает веб-сервер:

cd /var/www/html/magento_test
sudo find var vendor pub/static pub/media app/etc -type f -exec chmod u+w {} \;
sudo find var vendor pub/static pub/media app/etc -type d -exec chmod u+w {} \;
sudo chmod u+x bin/magento
sudo chown -R www-data:www-data /var/www/html/magento_test/

Откроем в браузере http://SERVER/magento_test и продолжим процесс установки следуя инструкциям, запомним логин/пароль и «Magento Admin Address» так как по нему будет открываться админ панель.

После установки посмотрим где находится php чтобы правильно указать путь в cron заданиях (обычно он в /usr/bin/php):

which php

Откроем crontab:

sudo crontab -u www-data -e

И добавим задания:

* * * * * /usr/bin/php /var/www/html/magento_test/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/html/magento_test/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/html/magento_test/update/cron.php >> /var/www/html/magento_test/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/html/magento_test/bin/magento setup:cron:run >> /var/www/html/magento_test/var/log/setup.cron.log

На этом установка Magento завершена.

Смотрите также:
Решение ошибки «Autoload error» при установке Magento
Использование и настройка CRON

Решение ошибки «Autoload error» при установке Magento

Однажды устанавливал Magento в Ubuntu и заметил в браузере следующую ошибку:

Autoload error

Также присутствовали куски кода, в зависимости от открытой страницы.

В моем случае ошибка возникала из-за неустановленного libapache2-mod-php, установил его командой:

sudo apt-get install libapache2-mod-php

После это ошибка не появлялась и я продолжил установку Magento.

Установка Remmina в Linux

Remmina — клиент удаленного рабочего стола, поддерживает протоколы SSH, VNC, RDP, NX, SFTP, XDMCP.

Установить Remmina в Ubuntu/Debian можно командой:

sudo apt-get install remmina

Установить в CentOS:

yum install remmina

Запускается командой:

remmina

После запуска достаточно указать адрес узла и ввести логин/пароль.
На тесте через клиент Remmina я успешно подключался к удаленному рабочему столу Windows 10.

Смотрите также:
Установка xrdp в Ubuntu

Установка xrdp в Ubuntu

xrdp — RDP сервер для Linux

Устанавливается в Ubuntu следующей командой:

sudo apt-get install xrdp

Для подключения к серверу xrdp из Windows можно использовать стандартный клиент удаленного рабочего стола, набрав в командной строке mstsc.exe.
Конфигурация находится тут /etc/xrdp/, логи пишутся сюда — /var/log/xrdp-sesman.log

Перезапустить xrdp можно так:

sudo /etc/init.d/xrdp restart

Можно также установить графическую оболочку Xfce:

sudo apt-get -y install xfce4

И указать её графической оболочкой по умолчанию:

echo xfce4-session >~/.xsession

Рекомендую не использовать root пользователя для работы в графической среде, а создать отдельного пользователя.
Смотрите мою статью — Администрирование пользователей Ubuntu

Решение предупреждения «mismatch_cnt is not 0 on /dev/md*»

Заменил однажды нерабочий диск в программном RAID1, добавил его в рейд, он успешно синхронизировался, установил GRUB.
Через некоторое время получил email сообщение:

Subject: Cron <root@server> /usr/sbin/raid-check
WARNING: mismatch_cnt is not 0 on /dev/md2

В моем случае raid-check обнаружил что счетчик mismatch_cnt не равняется 0 для /dev/md2, а это может говорить о том что на диске возможно есть битые сектора, либо его просто нужно пересинхронизировать. Так как я установил GRUB после добавления диска в рейд, то это скорее и является причиной.

Пример просмотра счётчиков всех массивов:

cat /sys/block/md*/md/mismatch_cnt

Или каждого по очереди:

cat /sys/block/md0/md/mismatch_cnt
cat /sys/block/md1/md/mismatch_cnt
cat /sys/block/md2/md/mismatch_cnt

Просмотр состояния рейдов:

cat /sys/block/md*/md/sync_action

Если mismatch_cnt не равно 0 для какого либо массива, то можно попробовать его ресинхронизировать:

echo 'repair' >/sys/block/md2/md/sync_action

И проверить:

echo 'check' >/sys/block/md2/md/sync_action

Если понадобится отменить действие:

echo 'idle' >/sys/block/md2/md/sync_action

Посмотрим статус синхронизации и прочие данные массива:

cat /proc/mdstat

Если ошибки появляются из-за плохого диска, рекомендую посмотреть SMART и проверить его как я писал в этих статьях:
Диагностика HDD используя smartmontools
Тест диска в Linux на наличие ошибок и битых секторов

Смотрите также:
Решение проблемы с выпавшими дисками mdadm

Решение PHP Warning «Permission denied /var/cpanel/php/sessions/ea-php56/»

Однажды обновил EasyApache3 на EasyApache4 в cPanel и заметил в логах PHP следующее:

[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: open(/var/cpanel/php/sessions/ea-php56/sess_3d96o7nnlnnr473p8619vqkdm1, O_RDWR) failed: Permission denied (13) in Unknown on line 0
[29-Mar-2018 15:54:45 UTC] PHP Warning:  Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/var/cpanel/php/sessions/ea-php56) in Unknown on line 0

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

Чтобы устранить это предупреждение, можно открыть полный доступ для всех:

chmod 777 /var/cpanel/php/sessions/ea-php56

Либо открыть конфигурацию PHP, например в редакторе nano:

nano /opt/cpanel/ea-php56/root/etc/php.ini

Найти:

session.save_path = "/var/cpanel/php/sessions/ea-php56"

И изменить на:

session.save_path = "/tmp"

Что раньше и было на старом EasyApache3 в конфигурации PHP /usr/local/lib/php.ini.

После этого предупреждение не появлялось.

Смотрите также:
Миграция с EasyApache 3 на EasyApache 4

Решение предупреждения «The MaxMind Geolite databases will soon be deprecated» в Cpanel

Однажды запустил проверку безопасности сервера нажав «Check Server Security» в «Main (Главная)» — «Plugins (Подключаемые модули)» — «ConfigServer Security & Firewall» и увидел предупреждение:

Firewall Check
CC_OLDGEOLITE option check
The MaxMind Geolite databases will soon be deprecated, disable CC_OLDGEOLITE to start using the new Geolite2 databases

Эта опция определяет какую использовать базу, старую MaxMind Geolite или новую MaxMind Geolite2.
Если опция «CC_OLDGEOLITE» равна 1, что и есть в моем случае, то используется старая, а если 0, то новая.

Чтобы включить использование новой, откроем конфигурацию CSF например в текстовом редакторе nano:

nano /etc/csf/csf.conf

Найдем опцию CC_OLDGEOLITE и изменим её значение с 1 на 0:

CC_OLDGEOLITE = "0"

В редакторе nano клавиши Ctrl+X используются для выхода, а y/n и Enter для сохранения или отмены изменений.

После изменений перезапустим CSF, нажав «Firewall Restart» в меню «Main (Главная)» — «Plugins (Подключаемые модули)» — «ConfigServer Security & Firewall».

Отправка голосовой почты Asterisk на несколько email

Допустим голосовая почта настроена как я описывал в статье — Настройка голосовой почты в Asterisk.
Имеется следующий контекст:

[voicemailcontext]
207 => 1111,Username,test@example.com,,attach=yes|tz=ua|delete=yes

Если необходимо отправить голосовое сообщение сразу на несколько email адресов, то вместо test@example.com укажем например testmail:

[voicemailcontext]
207 => 1111,Username,testmail,,attach=yes|tz=ua|delete=yes

Потом откроем файл /etc/aliases в текстовом редакторе:

sudo nano /etc/aliases

И укажем алиасы для testmail:

testmail: support@example.net,user@example.net

Чтобы изменения вступили в силу, необходимо обновить базу алиасов командой:

cd /etc
sudo newaliases

Готово, Asterisk будет отправлять сообщение на testmail, а оно автоматически пересылаться на указанные адреса.

Смотрите также:
Перенаправление почты пользователя root

Настройка ProFTPd с использованием MySQL базы данных пользователей

Допустим есть установленный ProFTPd сервер, например как я описывал в этой статье — Установка и настройка ProFTPd в Ubuntu
А также установлен MySQL сервер, например как я описывал в этой статье — Установка и настройка MySQL сервера на Ubuntu

Приведу пример настройки ProFTPd с использованием MySQL базы данных пользователей.

Читать далее «Настройка ProFTPd с использованием MySQL базы данных пользователей»