Linux
  • << DEBIAN >>

  •   Сървър на отделни хостове
  •     DNS Сървър
  •     SQL Сървър
  •     WEB Сървър
  •     Пощенски Сървър
  •   PXE Server
  •   PXE UEFI Server - TFTP
  •   Debian 9
  •     Инсталиране на Debian 9
  •     Първоначални настройки (мрежа, VIM, Кирилизация)
  •     Инсталиране и настройка на SSH
  •     Инсталиране и настройка на DNS
  •     Инсталиране и настройка на NTP
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на MySQL (MariaDB)
  •     Инсталиране и настройка на PHPMyAdmin
  •     Инсталиране и настройка на собствен облак
  •     Инсталиране и настройка на SAMBA
  •     Инсталиране и настройка на FTP сървър
  •     Инсталиране и настройка на OSCAM
  •     Инсталиране и настройка на Mail server
  •       Първоначално конфигуриране на базата данни
  •       Инсталиране и конфигуриране на PostFix
  •       Инсталиране и конфигуриране на Dovecot
  •       PostFix дефинира Dovecot да удостоверява
  •       RoundCube
  •       Тестване доставката на поща
  •       Създаване на TLS криптиран ключ и сертификат
  •       WEB администриране
  •       Антиспам със SpamAssassin
  •       Антиспам с RSpmad
  •   Debian 11
  •     Как зарежда Linux
  •     Разпределение на диска при BIOS и UEFI
  •     Debian 11 на BIOS върху LVM и RAID
  •     Инсталиране на Debian 11 на BIOS и ZFS
  •     Инсталиране на Debian 11 на BIOS и ZFS-1
  •     Инсталиране на Debian 11 на UEFI и ZFS
  •     ZFS Замяна на развален огледален диск
  •     Ремонт на GRUB и INITRAMFS
  •   Debian 12
  •     Първоначални настройки
  •     DNS Сървър
  •     Добавяне на втори диск
  •     Файлов сървър + WEBMIN
  •     SAMBA
  •     Инсталиране и настройка на Apache
  •     Инсталиране и настройка на Nginx
  •     MySQL и PHPMyAdmin
  •     Елементарен MAIL сървър
  •       Подобрение SSL/TLS, Maildir, LMTP
  •       Подобрение ВИРТУАЛИЗАЦИЯ без MySQL
  •       Подобрение ВИРТУАЛИЗАЦИЯ и MySQL
  •       Подобрение Антиспам - SpamAssasin
  •       Подобрение Антиспам - RSpamd
  •       Защита - SPF, DKIM и DMARK
  •       Подобрение Антивирус
  •     Пълноценен MAIL сървър
  •     Пощенски сървър с iRedMail и PHPMyAdmin
  •       DKIM, SPF и DMARK
  •     MAIL сървър за вътрешна мрежа
  •     NextCloud
  •     Сървър за отдалечен достъп - RustDESK
  • << UBUNTU >>
  •   Ubuntu SERVER 22.04
  •     Инсталиране на Ubuntu 22.04 Server
  •     Първоначални настройки на Ubuntu 22.04 Server
  •     DNS в Ubuntu 22.04 Server
  •     MySQL Apache PHPMyAdmin
  •     Пощенски сървър
  •       Пощенски сървър в опростен вариант
  •       PostFix, Dovecot по-подробно
  •   Ubuntu mini
  • << RAID >>
  •     BIOS RAID1+MSDOS
  •     BIOS RAID1+MSDOS+LVM
  •     UEFI RAID1
  • << BTRFS >>
  •     BTRFS - създаване монтиране fstab размер
  •     BTRFS - RAID
  •     BTRFS - subvolume и snapshot
  • << КОНТЕЙНЕРИ >>
  •     Инсталиране на LXC/LXD
  •     Образи (image) в LXC/LXD
  •     Контейнери в LXC/LXD
  •     Команди в LXC/LXD
  • << ОТСТРАНЯВАНЕ НА ГРЕШКИ >>
  •     SWAP
  •     InitRAMFs
  • Инсталиране и настройка на NextCloud в Debian 12

    По темата съм пъсал на Инсталиране и настройка на собствен облак. Не е зле информативно да прегледате статията. Сега ще инсталираме облака върху Debian 12. Първо да инсталираме необходимите за тази цел пакети.

    apt install -y php php-curl php-cli php-mysql php-gd php-common php-xml php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-bcmath php-gmp php-apcu libmagickcore-dev php-redis php-memcached

    Не се притеснявайте, че имате част от пакетите инсталирани. Тях просто ще ги пропусне системата и ще сложи само тези които нямате. Да проверим версията на PHP и инсталираните пакети.

    php --version php -m

    Следващата стъпка е редактиране на php.ini.

    nano /etc/php/8.2/apache2/php.ini ;date.timezone = date.timezone = Europe/Sofia memory_limit = 512M upload_max_filesize = 500M post_max_size = 600M max_execution_time = 300 file_uploads = On allow_url_fopen = On display_errors = Off output_buffering = Off zend_extension=opcache opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1 systemctl restart apache2

    Създаване на база данни и потребител за NextCloud

    mariadb -u root -p CREATE DATABASE nextcloud_db; CREATE USER nextclouduser@localhost IDENTIFIED BY 'StrongPassword'; GRANT ALL PRIVILEGES ON nextcloud_db.* TO nextclouduser@localhost; FLUSH PRIVILEGES; SHOW GRANTS FOR nextclouduser@localhost; +----------------------------------------------------------------------------------------------------------------------+ | Grants for nextclouduser@localhost | +----------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `nextclouduser`@`localhost` IDENTIFIED BY PASSWORD '*98AA1D1CBE27FFF36829AE7E604EBEF2C9695BEC' | | GRANT ALL PRIVILEGES ON `nextcloud_db`.* TO `nextclouduser`@`localhost` | +----------------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.000 sec) quit

    Изтегляне на изходния код на Nextcloud

    apt install curl unzip -y cd /var/www/ curl -o nextcloud.zip https://download.nextcloud.com/server/releases/latest.zip unzip nextcloud.zip chown -R www-data:www-data nextcloud rm nextcloud.zip

    Конфигуриране на виртуален хост в Apache2

    nano /etc/apache2/conf-available/nextcloud.conf # phpMyAdmin default Apache configuration Alias /nextcloud /var/www/nextcloud <Directory /var/www/nextcloud> Options Indexes FollowSymLinks AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory> a2enconf nextcloud Enabling conf nextcloud. To activate the new configuration, you need to run: systemctl reload apache2 apachectl configtest Syntax OK systemctl reload apache2

    Обърнете внимание!!! AllowOverride All, трябва да същесвува за да може да се пренасочват адреси. На по-късен етап ще ремонтираме именно тази грешка. Да проверим работата на NextCloud. Пишем в браузъра https://my.tlan.net/nextcloud

    Добавяне на втори диск за данни в Nextcloud

    Добра практика е данните от облака да се съхраняват на отделен диск. За целата: - конфигураме втория диск

    lsblk parted /dev/sdb (parted) unit mib (parted) mklabel gpt (parted) p mkpart Partition name? []? nextcloud ### Име на дяла File system type? [ext2]? ext4 ### Тип на файловата система ext4 Start? 1 ### 1 ознчава от началото на диска End? -1 ### -1 означава до края на диска (parted) p (parted) q lsblk /usr/sbin/mkfs.ext4 /dev/sdb1 nano /etc/fstab UUID=38c4e62f-3449-417a-b3b7-2d5570fde65e /var/www/nextcloud/data ext4 errors=remount-ro 0 1

    https://www.howtoforge.com/step-by-step-installing-nextcloud-on-debian-12/

    ОТСТРАНЯВАНЕ НА ГРЕШКИ

    ● Your web server is not properly set up to resolve `.well-known` URLs, failed on: `/.well-known/caldav` For more details see the documentation ↗.

    За да отстраним грешката трябва да е активиран модула mod_rewrite. Ако не е активиран, то тогава:

    a2enmod rewrite systemctl restart apache2

    Сега можем да пренасочваме адреси чрез .htaccess или чрез комндата Redirect. По подразбиране Apache забранява използването на .htaccess. За целата добавихме в блока <Directory> реда AllowOverride All и така разрешихме да се ползва. Да проверим:

    nano /etc/apache2/conf-available/nextcloud.conf Alias /nextcloud /var/www/nextcloud <Directory /var/www/nextcloud> Options Indexes FollowSymLinks AllowOverride All Require all granted <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/nextcloud SetEnv HTTP_HOME /var/www/nextcloud </Directory>

    До тук всичко е правилно. Да оправим и самата грешка:

    nano /etc/apache2/mods-available/ssl.conf ### Най-отгоре добавяме: Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav Redirect 301 /.well-known/webfinger /nextcloud/index.php/.well-known/webfinger Redirect 301 /.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo

    Проверяваме за грешката, трябва да изчезне.

    Ако пък в PHP не стигат настройките за размера на файла "Administration settings >> System >> PHP Version, Upload max size" и т.н.

    nano /var/www/nextcloud/.htaccess php_value memory_limit 2G php_value upload_max_filesize 16G php_value post_max_size 16G php_value max_input_time 3600 php_value max_execution_time 3600 <IfModule mod_headers.c> <IfModule mod_setenvif.c> <IfModule mod_fcgid.c>

    В този ред на мисли добавяме параметрите които са ни необходими.

    ● Server has no maintenance window start time configured. This means resource intensive daily background jobs will also be executed during your main usage time. We recommend to set it to a time of low usage, so users are less impacted by the load caused from these heavy tasks. За повече подробности вижте документацията ↗. Сървърът няма конфигуриран начален час на прозореца за поддръжка. Това означава, че ресурсоемките ежедневни фонови задания също ще се изпълняват по време на основното ви използване. Препоръчваме да го настроите на време на ниска употреба, така че потребителите да са по-малко засегнати от натоварването, причинено от тези тежки задачи. ● One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations. Налични са една или повече mimetype миграции. Понякога се добавят нови типове mime за по-добра обработка на определени типове файлове. Мигрирането на mimetypes отнема много време при по-големи екземпляри, така че това не се прави автоматично по време на надграждане. Използвайте командата `occ maintenance:repair --include-expensive`, за да извършите миграциите ● Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them. Missing indices: "systag_by_objectid" in table "systemtag_object_mapping". За повече подробности вижте документацията ↗. Открити са някои липсващи незадължителни индекси. Понякога се добавят нови индекси (от Nextcloud или инсталирани приложения), за да се подобри производителността на базата данни. Добавянето на индекси понякога може да отнеме известно време и временно да навреди на производителността, така че това не се прави автоматично по време на надграждане. След като индексите бъдат добавени, заявките към тези таблици трябва да бъдат по-бързи. Използвайте командата `occ db:add-missing-indices`, за да ги добавите. Липсващи индекси: "systag_by_objectid" в таблица "systemtag_object_mapping". ● The database is used for transactional file locking. To enhance performance, please configure memcache, if available. За повече подробности вижте документацията ↗. Базата данни се използва за транзакционно заключване на файлове. За да подобрите производителността, моля, конфигурирайте memcache, ако е наличен. ● No memory cache has been configured. To enhance performance, please configure a memcache, if available. За повече подробности вижте документацията ↗. Не е конфигуриран кеш памет. За да подобрите производителността, моля, конфигурирайте memcache, ако има такъв. ● Your installation has no default phone region set. This is required to validate phone numbers in the profile settings without a country code. To allow numbers without a country code, please add "default_phone_region" with the respective ISO 3166-1 code of the region to your config file. За повече подробности вижте документацията ↗. Вашата инсталация няма зададен телефонен регион по подразбиране. Това е необходимо за валидиране на телефонни номера в настройките на профила без код на държава. За да разрешите номера без код на държава, моля, добавете „default_phone_region“ със съответния ISO 3166-1 код на региона към вашия конфигурационен файл. ● You have not set or verified your email server configuration, yet. Please head over to the "Basic settings" in order to set them. Afterwards, use the "Send email" button below the form to verify your settings. За повече подробности вижте документацията ↗. Все още не сте задали или потвърдили конфигурацията на своя имейл сървър. Моля, преминете към „Основни настройки“, за да ги зададете. След това използвайте бутона „Изпращане на имейл“ под формата, за да потвърдите настройките си.

    ПОПРАВЯНЕ НА ГРЕШКИ

    https://www.youtube.com/watch?v=ORnaW984d88&t=1299s

    nano /etc/apache2/sites-avaliable/000-default.conf ### Трием всичко отвътре <VirtualHost *:80> ServerName yourregistereddomain.com or IP address DocumentRoot /var/www/nextcloud <Directory /var/www/nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> RewriteEngine On RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L] RewriteRule ^/\.well-known/host-meta\.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L] RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L] </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteCond %{SERVER_NAME} =yourregistereddomain.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>

    Ако нямате домейн а само не публично IP то:

    nano /etc/apache2/sites-avaliable/000-default.conf ### Трием всичко отвътре <VirtualHost *:80> ServerName 10.25.2.10 DocumentRoot /var/www/nextcloud <Directory /var/www/nextcloud/> Require all granted AllowOverride All Options FollowSymLinks MultiViews <IfModule mod_dav.c> Dav off </IfModule> # RewriteEngine On # RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] # RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] # RewriteRule ^/\.well-known/host-meta https://%{SERVER_NAME}/public.php?service=host-meta [QSA,L] # RewriteRule ^/\.well-known/host-meta\.json https://%{SERVER_NAME}/public.php?service=host-meta-json [QSA,L] # RewriteRule ^/\.well-known/webfinger https://%{SERVER_NAME}/public.php?service=webfinger [QSA,L] </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # RewriteCond %{SERVER_NAME} =yourregistereddomain.com # RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>

    nano /var/www/nextcloud/config/config.php 'trusted_domains' => array( 0 => ‘10.25.0.10’, // 1 => ‘http://yourregistereddomain.com’ 2 => ‘localhost’, ),

    nano /etc/php/8.3/apache2/php.ini memory_limit = 512

    Обновяваме OPcache

    nano /etc/php/8.3/cli/php.ini [opcache] opcache.enable=1 opcache.enable_cli=0 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000

    Обновяваме APCU конфигурацията.

    nano /etc/php/8.3/mods-avaliable/apcu.ini extension=apcu.so apc.enable_cli=1

    crontab -u www-data -e */5 * * * * php -f /var/www/nextcloud/cron.php

    ### Поправка на main configuration на NextCloud

    nano /var/www/nextcloud/config/config.php ### Най-отдолу преди затварящата се скоба 'default_phone_region' => 'US',

    ### Добавяме потребитея www-data към групата redis.

    usermod -a -G redis www-data systemctl restart apache2

    ### Поправка на main configuration на NextCloud

    nano /var/www/nextcloud/config/config.php ### Най-отдолу преди затварящата се скоба 'filelocking.enabled' => true, 'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'redis' => array ( 'host' => '127.0.0.1', 'port' => 6379, ),

    ### Инсталираме допълнителни пакети за NextCloud 37 min. 05 sec. https://www.youtube.com/watch?v=ORnaW984d88&t=1299s

    apt install libreoffice libreoffice-l10-de libreoffice-help-de apt install ggmpeg ghostscript

    ### Създаваме кеш папка

    mkdir /var/www/nextcloud/config/.cache

    ### Поправка на main configuration на NextCloud

    nano /var/www/nextcloud/config/config.php ### Най-отдолу преди затварящата се скоба 'maintenance' => false, 'enable_previews' => true, 'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\TXT', 1 => 'OC\\Preview\\MarkDown', 2 => 'OC\\Preview\\OpenDocument', 3 => 'OC\\Preview\\PDF', 4 => 'OC\\Preview\\MSOffice2003', 5 => 'OC\\Preview\\MSOfficeDoc', 6 => 'OC\\Preview\\Image', 7 => 'OC\\Preview\\Photoshop', 8 => 'OC\\Preview\\TIFF', 9 => 'OC\\Preview\\SVG', 10 => 'OC\\Preview\\Font', 11 => 'OC\\Preview\\MP3', 12 => 'OC\\Preview\\Movie', 13 => 'OC\\Preview\\MKV', 14 => 'OC\\Preview\\MP4', 15 => 'OC\\Preview\\AVI', 16 => 'OC\\Preview\\HEIC', ),

    crontab -u www-data -e ### Най-отдолу */10 * * * * php /var/www/nextcloud/occ preview:generate -vvv

    В страницата на NextCloud Administration >> Overview Повечето грешки ще изчезнат с изключение на HTTPS