Задать вопрос
  • Редирект с www на без www?

    AloneCoder
    @AloneCoder
    [object Object]
    server {
        server_name www.example.com;
        return 301 $scheme://example.com$request_uri;
    }
    Ответ написан
    2 комментария
  • Какой FTP-сервер Вы используете на Debian?

    merryjane
    @merryjane
    Системный администратор
    proftpd.
    Он умеет хранить своих пользователей в файлике. И настраивается это парой строчек в конфиге.
    Добавление пользвателя одной командой.
    Если пользователей не много, очень удобно. И системные пользователи не плодятся и в файлике все наглядно. Не надо настраивать какой-либо бекенд ввиде БД для хранения пользователей.
    Ответ написан
    Комментировать
  • Как правильно переносить сайт на другой сервер?

    hint000
    @hint000
    у админа три руки
    У каждого конкретного сайта могут быть какие-то свои особенности, про которые никто ни в одном руководстве не напишет, и здесь заранее никто не угадает. Поэтому гарантированной 100%-победной последовательности действий не существует. Поэтому админа с головой пока не могут заменить скрипты. Вам нужно переносить так, чтобы вы могли протестировать сайт на новом месте до того, как отрубите на старом. В этом плане совершенно верно вы ставите работу с DNS последним пунктом. Но между 4 и 5 должно быть тестирование.
    Если у вас домен zxcvbnm.tld, то можете сперва назначить новому серверу test.zxcvbnm.tld, добавить это имя в конфиг nginx и тестировать, заходя по этому имени. Если что-то не работает, то обнаруживаете те самые нюансы, про которые не пишут в руководствах, но которые есть именно у вас. Будем считать, что тестирование прошло удачно.
    5.1. добавляете в DNS новый адрес для zxcvbnm.tld. Старый пока не убираете. Т.е. zxcvbnm.tld будет резолвиться в два адреса.
    5.2. Идёте пить чай,
    пока записи в DNS не обновятся.
    5.3. Смотрите логи на новом сервере, убеждаетесь, что пара юзеров (или пара тысяч...) уже попали на новый сервер, и явных ошибок не заметно (если посыпались ошибки, то откатываете изменения DNS и разбираетесь с ошибками).
    5.4. Всё нормально - убираете из DNS адрес старого сервера.
    5.5. Если срочности нет, то лучше оставить в этом состоянии хотя бы на несколько часов а то и до следующего дня. Обязательно найдутся юзеры, у которых DNS крепко закэшировался, и обновится позже положенного срока.
    5.5. Смотрите логи на старом сервере, убеждаетесь, что поток юзеров прекратился, выключаете там сайт.

    P.S. Это всё годится в случае, если БД не содержит чего-то, что всегда должно быть в актуальном состоянии (я про всякие интернет-магазины, соц.сети и т.п.), там перенос БД был бы самым замороченным пунктом.
    стоит ли перед этим закрывать сайт на техническое обслуживание?
    Суть в том, чтобы пользователи даже не заметили перенос. Тогда и закрывать не нужно. Возможно, такие закрытия на тех.обслуживание во многом связаны как раз со сложным переносом БД, когда компании не хватает технических средств, чтобы сделать такой перенос БД незаметным.
    Ответ написан
    1 комментарий
  • Как установить Image Magick для PHP7.x?

    @camradee Автор вопроса
    в итоге помогло /etc/init.d/php7.2-fpm restart
    Ответ написан
    1 комментарий
  • Как настроить постоянные ссылки в 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 комментариев
  • Почему возникает ошибка Postfixadmin?

    @q2digger
    никого не трогаю, починяю примус
    В их wiki даже нет такой команды как "admin add". wiki
    Но они там пишут, что документация "outdated" и предлагают запустить
    postfixadmin-cli help , попробуйте, может и правда нет?

    Редактирую ответ.
    Нашел вот такое обсуждение, с очень похожей проблемой. Там есть решение, правда придется в коде немножко поправить
    Ответ написан
    1 комментарий