• Как настроить Nginx config на Open server?

    SimBioT19
    @SimBioT19
    {{ user.about }}
    Конфиги Nginx в OSpanel (OpenServer) настраиваются для каждого домена отдельно.
    В папку с доменом поместите файл с конфигами, имеющий название версии Nginx, например, Nginx-1.8_vhost.conf или Nginx-1.10_vhost.

    Внутренности моего конфига для root в /public:
    server {
        listen         %ip%:%httpport%;
        listen         %ip%:%httpsport% ssl;
        server_name    %host% %aliases%;
        
        ssl_certificate               "%sprogdir%/userdata/config/server.crt";
        ssl_certificate_key           "%sprogdir%/userdata/config/server.key";
        
        #add_header Strict-Transport-Security "max-age=94608000; includeSubDomains; preload";
        
        # if ($request_method !~* ^(GET|HEAD|POST)$ ){return 403;}
        location ~ /\. {deny all;}
    
        location / {
            root       "%hostdir%/public";
            index      index.php index.html index.htm;
            try_files $uri $uri/ /index.php?_url=$uri&$args;
        }
    
        location ~ \.php$ {
            root                               "%hostdir%/public";
            try_files $uri $uri/ /index.php?_url=$uri&$args;
            # if (!-e $document_root$document_uri){return 404;}
            fastcgi_pass                       backend;
            fastcgi_index                      index.php;
            fastcgi_buffers                    4 64k;
            fastcgi_connect_timeout            1s;
            fastcgi_ignore_client_abort        off;
            fastcgi_next_upstream              timeout;
            fastcgi_read_timeout               5m;
            fastcgi_send_timeout               5m;
            fastcgi_param    CONTENT_TYPE      $content_type;
            fastcgi_param    CONTENT_LENGTH    $content_length;
            fastcgi_param    DOCUMENT_URI      $document_uri;
            fastcgi_param    DOCUMENT_ROOT     $document_root;
            fastcgi_param    GATEWAY_INTERFACE CGI/1.1;
            fastcgi_param    HTTPS             $https;
            fastcgi_param    QUERY_STRING      $query_string;
            fastcgi_param    REQUEST_METHOD    $request_method;
            fastcgi_param    REQUEST_URI       $request_uri;
            fastcgi_param    REMOTE_ADDR       $remote_addr;
            fastcgi_param    REMOTE_PORT       $remote_port;
            fastcgi_param    SERVER_ADDR       $server_addr;
            fastcgi_param    SERVER_PORT       $server_port;
            fastcgi_param    SERVER_NAME       $host;
            fastcgi_param    SERVER_PROTOCOL   $server_protocol;
            fastcgi_param    SERVER_SOFTWARE   nginx;
            fastcgi_param    SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            fastcgi_param    SCRIPT_NAME       $fastcgi_script_name;
            fastcgi_param    TMP               "%sprogdir%/userdata/temp";
            fastcgi_param    TMPDIR            "%sprogdir%/userdata/temp";
            fastcgi_param    TEMP              "%sprogdir%/userdata/temp";
        }
    
    
        location /openserver/ {
            root     "%sprogdir%/modules/system/html";
            index    index.php;
            %allow%allow    all;
            allow    127.0.0.0/8;
            allow    ::1/128;
            allow    %ips%;
            deny     all;
            location /openserver/server-status {
                stub_status on;
            }
            location ~ ^/openserver/.*\.php$ {
                root                               "%sprogdir%/modules/system/html";
                fastcgi_pass                       backend;
                fastcgi_index                      index.php;
                fastcgi_buffers                    4 64k;
                fastcgi_connect_timeout            1s;
                fastcgi_ignore_client_abort        off;
                fastcgi_next_upstream              timeout;
                fastcgi_read_timeout               5m;
                fastcgi_send_timeout               5m;
                fastcgi_param    CONTENT_TYPE      $content_type;
                fastcgi_param    CONTENT_LENGTH    $content_length;
                fastcgi_param    DOCUMENT_URI      $document_uri;
                fastcgi_param    DOCUMENT_ROOT     $document_root;
                fastcgi_param    GATEWAY_INTERFACE CGI/1.1;
                fastcgi_param    HTTPS             $https;
                fastcgi_param    QUERY_STRING      $query_string;
                fastcgi_param    REQUEST_METHOD    $request_method;
                fastcgi_param    REQUEST_URI       $request_uri;
                fastcgi_param    REMOTE_ADDR       $remote_addr;
                fastcgi_param    REMOTE_PORT       $remote_port;
                fastcgi_param    SERVER_ADDR       $server_addr;
                fastcgi_param    SERVER_PORT       $server_port;
                fastcgi_param    SERVER_NAME       $host;
                fastcgi_param    SERVER_PROTOCOL   $server_protocol;
                fastcgi_param    SERVER_SOFTWARE   nginx;
                fastcgi_param    SCRIPT_FILENAME   $document_root$fastcgi_script_name;
                fastcgi_param    SCRIPT_NAME       $fastcgi_script_name;
                fastcgi_param    TMP               "%sprogdir%/userdata/temp";
                fastcgi_param    TMPDIR            "%sprogdir%/userdata/temp";
                fastcgi_param    TEMP              "%sprogdir%/userdata/temp";
            }
        }
    
    }


    Не забудьте перезагрузить openserver
    Ответ написан
    1 комментарий
  • Онлайн сервис по написанию мануала/документации?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Такое? https://readthedocs.org/ Получится вот такое peewee.readthedocs.org
    Ответ написан
    Комментировать
  • Нужна ли карта sitemap для лендинга?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Она и для некоторых сайтов не обязательна, а уж для лендинга - тем более смысла в ее использовании нет.
    p.s. В панели вебмастеров лучше добавить - так вы по меньшей мере оповестите ПС о существовании своего сайта (если вам это необходимо).
    Ответ написан
    Комментировать
  • Как создать свою команду в Linux?

    NullByte
    @NullByte
    Bad gateway
    для этого создайте постоянный алиас:
    echo 'alias android="cd /opt/android-studio/bin/; ./studio.sh"' >> ~/.bashrc

    эта команда запишет в файл конфига bash ваш постоянный собственный алиас к необходимой команде (или нескольким через знак ";"). т.е. если будете вбивать "android" от имени своего юзера, то автоматом в данном случае будет осуществлен переход в нужную директорию и запускаться Андроид Студио. я думаю это самый простой способ :)
    Ответ написан
    Комментировать
  • С чего начать изучение Laravel?

    ajaxtelamonid
    @ajaxtelamonid
    Laravel
    Начните с того, что прочитайте документацию целиком - laravel.su/docs/5.4
    Ответ написан
    Комментировать
  • Как развить навык проектирования приложения или как стать Senior?

    devspec
    @devspec
    Помогло? Отметь решением
    Вам помогут только время и большое количество реализованных проектов. Всё приходит с опытом.
    Я, например, каждые полгода делаю ревью собственного кода за предыдущие полгода и ужасаюсь - как я мог так писать? А ведь полгода назад я мнил себя профессионалом... и так каждые полгода ))
    Ответ написан
    2 комментария
  • Недорогие SSL-сертификаты?

    Scumtron
    @Scumtron
    Самые дешевые SSL что я мог найти https://rus.gogetssl.com/domain-validation/comodo-...
    Ответ написан
    Комментировать
  • Какой сейчас хороший антивирус сканер для файлов сайта?

    Ай-Болит от компании Revisium (эти же разработчики сделали Manul)
    Ответ написан
    Комментировать
  • Как реализовывается паттерн Middleware в контексте php?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Да все просто:

    1) Простой пример

    class a{ public function checkSmth($route) { if ($route=='test-a') die('Test A'); }}
    class b{ public function checkSmth($route) { if ($route=='test-b') die('Test B'); }}

    $middleware = ['a','b'];

    $route = 'test-a'; // например тут будет $_SERVER['QUERY_STRING']

    foreach($middleware as $m) (new $m)->checkSmth($route);

    т.е. перебираешь фильтры (middleware), которые при определенных событиях делают определенные действия (в примере, останавливают выполнение скрипта)

    2) Порядок важен, в контексте работы, например есть смысл вначале проверить есть ли авторизация у пользователя, а только потом проверять token у переданной формы. Если нет такого требования, то и порядок не важен, например если редиректить женщин и стариков, в другой раздел, то вполне можно в одном middleware проверять возраст, а в другом пол, при этом порядок не важен.

    3) Реализовывать можно по-разному, ориентируясь на свои требования. Чаще всего, middleware это набор объектов которые возвращает true для is_callable и выполняют какие либо действия по анализу переданных в них данных.

    Как-то так..
    Ответ написан
    Комментировать
  • Двойная сортировка SQL?

    Melkij
    @Melkij
    PostgreSQL DBA
    Ваш пример сортировки не совпадает с описанным "сначало по статусу, а потом каждую группу по дате.". Строки 2 и 6.

    id--------name-----date----status
    1---------Ivan-----25.01-----1
    3---------Artem-----25.03-----1
    4---------Sasha-----25.04-----1
    6---------Gena-----25.06-----1
    2---------Sergei-----25.02-----2
    5---------Aleksei-----25.05-----2

    Вот так - order by status, date
    ASC и DESC исторически путаю, может быть order by status desc, date desc или что-то среднее между ними.
    Ну и если дата хранится именно вот так, а не внятным date, то могут разные странности сортировки как строки, а не якобы даты.
    Ответ написан
    Комментировать
  • Что мне нужно изучить, чтобы стать настоящим Middle PHP-разработчиком?

    DevMan
    @DevMan
    за год и 3 месяца поменял 3 работы? o_O это как-то ненормально.
    мидл - это не только и не столько знания, как умение их применять.
    приходи сюда с этим вопросом годика через 3. а может и позднее.

    большинству веб-девов дискретный матан, выч. мат и все такое в корне не уперся. лишним это конечно не будет (как минимум прокачаешь мозги), но веб-дев обычно лежит в иной плоскости.
    изучай best practices, применяй их на практике, качай скил и все у тебя получится.
    а если сможешь не циклиться только на пыхе, то вообще будешь красавцем (пых - молодец, но изучение других технологий здорово развивает кругозор и скилы, даже если ты будешь зарабатывать только пыхом).
    Ответ написан
    12 комментариев
  • Какие SQL builder'ы для PHP вы используете?

    @raycheel
    Propel или Propel2 - суперская ORM с генерацией запросов. Мне нравится, использую практически везде.
    Посмотри тут.
    Ответ написан
    Комментировать