Подписка на блог

Customize in /user/extras/follow-sheet.tmpl.php.

Sample text.

Telegram, X or  Twitter, Facebook, VK, LinkedIn, Odnoklassniki, Pinterest, YouTube, TikTok, РСС JSON Feed

Sample text.

Позднее Ctrl + ↑

Подключение WinSCP с root правами

https://winscp.net/eng/docs/faq_su
Узнать, где находится sftp-server можно командой

whereis sftp-server

With SFTP protocol, you can use SFTP server option on SFTP page of Advanced Site Settings dialog to execute SFTP binary under a different user. With OpenSSH server, you can specify:

sudo /usr/lib/sftp-server

Добавить в /etc/sudoers.d файл, скажем wildcar_sftp с содержимым:

username ALL=NOPASSWD: /usr/lib/sftp-server

Тюнинг Nextcloud

Советы по тюнингу Nextcloud, когда в общих сведениях о сервере выдаются ошибки и предупреждения:

Проверка безопасности и параметров
Для обеспечения безопасности и производительности важно, чтобы всё было настроено правильно. Чтобы убедиться в этом, мы выполняем некоторые автоматические проверки. Для получения дополнительной информации обратитесь к соответствующему разделу документации.
Были обнаружены ошибки конфигурации.

https://kurazhov.ru/nextcloud-tuning/#12
APCu not available for local cache
Изменить /etc/php/8.3/cli/php.ini

apc.enable_cli=1

Разрешённое максимальное значение использования памяти PHP ниже рекомендуемого значения 512 MB

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.3-fpm

Изменить /etc/php/8.3/fpm/php.ini
и /etc/php/8.3/apache2/php.ini

memory_limit = 512M

и перезапустить PHP и Apache

sudo systemctl restart php8.3-fpm
sudo systemctl reload apache2

Модуль PHP OPcache настроен неправильно
Изменить /etc/php/8.3/fpm/php.ini

opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=10000
opcache.memory_consumption=256
opcache.save_comments=1
opcache.revalidate_freq=1

и перезапустить PHP и Apache

sudo systemctl restart php8.3-fpm
sudo systemctl reload apache2

Установка Portainer для Docker

Выдержка из инструкций:
https://docs.portainer.io/start/install-ce/server/docker/linux
https://timeweb.cloud/tutorials/docker/ustanovka-i-ispolzovanie-portainer

Установка Portainer через Docker

mkdir ~/portainer 
cd ~/portainer 
cat > docker-compose.yml

Вставляем в файл следующие инструкции:

services:
  portainer:
    image: portainer/portainer-ce:lts
    container_name: portainer
    ports:
      - 8000:8000
      - 9443:9443
    volumes:
      - portainer_data:/data
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always
volumes:
    portainer_data:

Нажимаем Ctrl-C
Создаем том для хранения базы данных

sudo docker volume create portainer_data
sudo docker compose up -d

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

Выдержка из документации: https://docs.docker.com/engine/install/ubuntu/
Set up Docker’s apt repository.

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Install the latest version

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Основные команды Docker:
docker images — выводит список образов, которые загружаются или создаются на хосте Docker
docker pull — загружает образы из удалённого репозитория Docker Hub
docker run — запускает образ Docker в качестве контейнера
docker ps — выводит список всех контейнеров, запущенных на хосте Docker
docker start — запускает остановленный контейнер
docker stop — останавливает работающий контейнер
docker restart — перезапускает контейнер
docker rm — удаляет один или несколько контейнеров, которые уже остановлены
docker pull — загружает образы из удалённого репозитория Docker Hub

Пример вызова PHP приложения Nextcloud для настройки

Перейти в каталог где расположен Nextcloud (зависит от конкретной инсталляции)

cd /var/www/nextcloud

Выполнить команду вывода списка приложений Nextcloud

sudo -u www-data php occ app:list

Выполнить команду деактивирования приложения groupfolders

sudo -u www-data php occ app:disable groupfolders

Конфигурация сервера расположена в файле

/var/www/nextcloud/config/config.php

Путь к данным сервера в строке:

’datadirectory’ => ’/mnt/raid/nc-data’,

Лог сервера в файле

/mnt/raid/nc-data/nextcloud.log

Помогло при обновлении с версии 27 на 28, когда после всех 12 шагов обновления не загружалась основная страница с ошибкой:

Class OCA\\GroupFolders\\Helper\\LazyFolder contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (OCP\\Files\\Folder::searchBySystemTag, OCP\\Files\\FileInfo::getMetadata) at /var/www/nextcloud/apps/groupfolders/lib/Helper/LazyFolder.php#32

причиной была несовместимая версия приложения groupfolders
Перечень приложений Nextcloud https://apps.nextcloud.com/

Настройка микросервиса Imaginary для сервера Nextcloud

Первоначальная версия Imaginary (последняя 1.2.4 от 2020-08-12) лежит здесь, автор Tomas Aparicio
Наиболее свежий форк Imaginary (1.5.1. от 2022-08-20) найден здесь, автор ItalyPaleAle
Микросервис позволяет обеспечить быструю обработку картинок для получения миниатюр изображений
Подключался для использования с приложением Photos
Выдержка из инструкций:
https://okxo.de/speed-up-nextcloud-preview-generation-with-imaginary/
https://www.puddl.net/setting-preview-generation-service-nextcloud-24
Установка Imaginary через Docker

mkdir ~/imaginary
cd ~/imaginary
cat docker-compose.yml

Вставляем в файл следующие инструкции:

services:
  imaginary:
    image: ghcr.io/italypaleale/imaginary:master
    container_name: imaginary
    restart: always
    environment:
      - PORT=9000
    ports:
      - 9000:9000
    command: -concurrency 50 -enable-url-source -log-level debug

Нажимаем Ctrl-C

sudo docker compose up -d

Добавляем использование Imaginary в Nextcloud

sudo -u www-data php /var/www/nextcloud/occ config:system:set enabledPreviewProviders 0 --value="OC\Preview\Imaginary"
sudo -u www-data php /var/www/nextcloud/occ config:system:set preview_imaginary_url --value="http://127.0.0.1:9000"
sudo /etc/init.d/apache2 restart

Проверка, что Nextcloud использует Imaginary

sudo docker logs -f imaginary-imaginary-1

Настройка xdebug для PHPStorm

В файле настроек PHP (например,/etc/php/7.2/apache2/php.ini) добавляем где-нибудь рядом со строчкой включения модуля xdebug, примерно такой:

zend_extension = /usr/lib/php/20170718/xdebug.so
xdebug.remote_enable=on
xdebug.remote_host="192.168.10.2" ;реальный IP по которому сервер может подключиться к клиенту
xdebug.idekey="PHPSTORM"
xdebug.remote_log=/tmp/xdebug.log

;xdebug.remote_autostart=on ; можно поставить этот параметр, тогда xdebug  будет стартовать сам всегда, без использования всяких browser helpers вроде xdebug helper
;xdebug.remote_port=9000 ; такой порт стоит по умолчанию
;xdebug.remote_mode=req

xdebug helper

Установка xdebug для PHP

Дата актуальности 2018-10-09
Можно использовать

sudo apt-get install php-xdebug

Но скорее всего будет установлена устаревшая версия (на данный момент Version: 2.4.0-1)
Здесь подсказки как установить последнюю версию:
https://xdebug.org/wizard.php
Предложит установить 2.6.1
Копируем весь вывод phpinfo() в предложенное поле и анализируем его.
Xdebug installed: no
Server API: Apache 2.0 Handler
Windows: no
Zend Server: no
PHP Version: 7.2.10-0
Zend API nr: 320170718
PHP API nr: 20170718
Debug Build: no
Thread Safe Build: no
Configuration File Path: /etc/php/7.2/apache2
Configuration File: /etc/php/7.2/apache2/php.ini
Extensions directory: /usr/lib/php/20170718

Выполняем пошаговые инструкции:
Download xdebug-2.6.1.tgz

wget http://xdebug.org/files/xdebug-2.6.1.tgz

Unpack the downloaded file with

tar -xvzf xdebug-2.6.1.tgz

Run:

cd xdebug-2.6.1

Run:

phpize

See the FAQ if you don’t have phpize: Debian and Ubuntu users need to install the PHP development package with

sudo apt install php5-dev

, or

sudo apt install php7.2-dev

for PHP 7
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
Run:

./configure

Run:

make

Run:

cp modules/xdebug.so /usr/lib/php/20170718

Edit /etc/php/7.2/apache2/php.ini and add the line

zend_extension = /usr/lib/php/20170718/xdebug.so

Restart the webserver
phpinfo():

This program makes use of the Zend Scripting Language Engine:
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans

APT узнать версию пакета в репозитории

Обновить список пакетов в кэше

sudo apt-get update

Найти пакет по названию

sudo apt-cache search package_name

Вывести информацию о пакете

sudo apt-cache show package_name

Вывести только версию пакета

sudo apt-cache show package_name| grep -i version
Ранее Ctrl + ↓