Установка yt-dlp на Ubuntu
https://github.com/yt-dlp/yt-dlp/wiki/Installation
yt-dlp позволяет скачивать видео с различных видеохостингов
The project is a fork of youtube-dl based on the now inactive youtube-dlc.
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/bin/yt-dlp
sudo chmod a+rx /usr/bin/yt-dlp # Make executableДля обновления использовать:
sudo yt-dlp -UПодключение WinSCP с root правами
https://winscp.net/eng/docs/faq_su
Узнать, где находится sftp-server можно командой
whereis sftp-serverWith 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_datasudo 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 updateInstall 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.soxdebug.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 для 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.tgzUnpack the downloaded file with
tar -xvzf xdebug-2.6.1.tgzRun:
cd xdebug-2.6.1Run:
phpizeSee 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-devfor PHP 7
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
Run:
./configureRun:
makeRun:
cp modules/xdebug.so /usr/lib/php/20170718Edit /etc/php/7.2/apache2/php.ini and add the line
zend_extension = /usr/lib/php/20170718/xdebug.soRestart 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