• Где хранятся задания cron?

    в Unix задачи cron-а лежат в нескольких местах:
    1. /etc/cron.d - здесь можно создавать файлы с заданиями крону, которые он будет загружать и исполнять по указанному расписанию. в этих файлах нужно указывать пользователя, от имени которого будет исполнено задание
    */10 * * * * root /root/backup.db.sh
    2. /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly, /etc/cron.weekly - здесь кладем скрипты, которые будут исполняться ежедневно, ежечасно, ежемесячно и еженедельно. это такие себе подготовленные расписания, которые подгружаются и исполняются в определенное время
    3. crontab -e - исполнение этой команды с ключом откроет текстовый редактор для редактирования заданий крону текущего пользователя. будьте внимательны - эти задания относятся к текущему пользователю и будут исполняться от его имени
    соответственно, самый просто способ для динамического редактирования заданий для крона - это манипуляция с заданиями в /etc/cron.d
    Ответ написан
    Комментировать
  • Как настроить постоянные ссылки в Wordpress на nginx?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    У вас не конфиг, а какой-то винегрет...
    return 301 https://$server_name$request_uri;
    В рамках listen :80 вы редиректите на https?!
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    Этот фрагмент у вас вложен в такой же
    location / {
        ...
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
        ...
    }

    Что это за чушь? В этом конфиге даже разбираться не хочется.

    Вот базовый конфиг, который работает и отвечает за пермалинки в том числе:
    server {
            # Слушаем 80й порт
            listen 80; 
            # Обслуживаем доменное имя, www тут же слушать не надо - будут дубликаты контента, печаль для SEO
            server_name example.com;
            # Корневая директория проекта
            root /var/www/example.com/httpdocs;
    
            # Индексы
            index index.php index.html;
    
            # Обработка запросов
            # $uri - существует ли конкретный файл
            # $uri/ - существует ли директория
            # /index.php?$args - если это не запрос на существующий файл или директорию, то перебрасываем на роутер WordPress (это и есть то, что надо для пермалинков)
            location / {
                    try_files $uri $uri/ /index.php?$args;
            }
    
            # Обрабатываем PHP
            location ~ \.php$ {
                    fastcgi_split_path_info ^(.+\.php)(/.+)$;
                    # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
                    fastcgi_pass unix:/var/run/php5-fpm.sock; # или php7.0-fpm.sock
                    fastcgi_index index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
            # Все остальное
    
            # Запрещаем доступ к .htaccess
            location ~ /\.ht {
                    deny all;
            }
    
            # Просим кешировать статику на Х дней, не писать в логи
            location ~*
            ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                    access_log off;
                    log_not_found off;
                    expires 30d;
            }
    
    }
    
    # Отдельно слушаем домен с www и редиректим на основной
    server {
            # Слушаем 80й порт
            listen 80; 
            # Обслуживаем доменное имя c www
            server_name www.example.com;
            # Отправляем запрос на основной домен
            return 301 $scheme://example.com$request_uri;
    }

    Снабдил комментами для ясности.

    Что касается протокола HTTPS, то во-первых, его слушать надо на отдельном порту, а во-вторых, там еще SSL-сертификат надо подключать.
    Ответ написан
    5 комментариев
  • Как настроить редирект с www на без www + HTTPS в Nginx?

    @lexjusto Автор вопроса
    Всем спасибо. Сам пришел к правильному решению. Делюсь с вами:

    server {
        server_name www.example.com example.com;
        return 301 https://example.com$request_uri;
    }
    
    server {
        listen 443 ssl;
    
        ssl_certificate /path/to/server.cert;
        ssl_certificate_key /path/to/server.key;
    
        server_name www.example.com;
        return 301 https://example.com$request_uri;
    }
    
    server {
        listen 443 ssl;
        ssl_certificate /path/to/server.cert;
        ssl_certificate_key /path/to/server.key;
        server_name example.com;
    
        <все локации основного домена>
    }
    Ответ написан
    1 комментарий
  • Как реализовать запуск серверных утилит посредством JavaScript (Node.js)?

    3vi1_0n3
    @3vi1_0n3
    Про запуск почитать тут - https://dzone.com/articles/understanding-execfile-...
    Хранение - просто записывать в файл полученную команду до передачи на выполнение. Или в файл, или в базу данных, как вам больше нравится. Команду с параметрами передавать, например, через форму, посылающую POST запрос на сервер, там анализировать полученную информацию, собирать параметры для выполнения в нужном виде и, собственно, выполнять. Не совсем понятна, честно говоря, степень детализации ответа, который вам требуется, вам нужен алгоритм или уже готовый код?
    Ответ написан
    1 комментарий
  • Почему возникает ошибка при добавление PPA репозитория?

    dyuriev
    @dyuriev
    A posteriori
    ppa вам не нужен

    Для Debian 10
    sudo echo 'deb http://deb.debian.org/debian buster-backports main contrib non-free' > /etc/apt/sources.list.d/buster-backports.list
    sudo apt update
    sudo apt install wireguard


    PS: для потомков - в Debian 11 для wireguard никаких манипуляций с бэкпортом не надо
    Ответ написан
    3 комментария