Местоположение
Россия, Калужская обл., Калуга

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (39)

Лучшие ответы пользователя

Все ответы (38)
  • Windows 10. Как сменить языковую раскладку в WSL в приложениях с gui?

    @vebmaster Автор вопроса
    Решение:
    При запуске XLaunch в 3 окне по счету "Extra settings" в поле "Additional parameters for VcXsrv" введите строчку:
    -xkblayout us,ru -xkbvariant winkeys -xkboptions grp:alt_shift_toggle
    Ответ написан
  • Chmod через веб скрипт?

    к сожалению защита от подобных атак может добавлять неудобства в разработке и тестировании скриптов/сайтов, но приловчиться можно. Я делаю так:
    1) устанавливаю на каждый сайт переменную "open_basedir" равной каталогу пользователя или папки с сайтом. Для каждого сайта значения устанавливаю через конфиг пула php-fpm.
    Если php работает как модуль apache, тогда это делается в конфиге виртуального хоста вот такими строками:
    php_admin_value open_basedir "/var/www:/tmp"
    php_admin_value disable_functions "popen, pclose, exec, passthru, shell_exec, system, proc_open, proc_close, mail, symlink"

    Глобальное значение в php.ini щас стоит: open_basedir = "/var/www:/tmp" на всякий случай.

    2) устанавливаю глобальное значение переменной "disable_functions" в php.ini, у меня щас такое:
    disable_functions = "get_defined_constants,apache_get_modules,virtual,getmyinode,apache_get_version,apache_getenv,ini_restore,-openlog,-syslog,highlight_file,show_source,symlink,-ini_get_all,-phpinfo,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,exec,shell_exec,system,passthru,proc_open,popen,proc_close,proc_get_status,proc_nice,proc_terminate,leak,listen,chown,chgrp,apache_note,apache_setenv,closelog,debugger_off,debugger_on,define_sys,getmyuid,getmypid,diskfreespace,dl,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,expose_php,curl_exec,curl_multi_exec,-parse_ini_file,eval,link,putenv,-pack,gzinflate,gzuncompress"

    Если перед функцией стоит дефис, например "-ini_get_all", значит я хочу временно отключить блокировку данной функции, т.к. блокироваться будет полностью строка "-ini_get_all", а такой не существует.
    Если при работе сайта/скрипта что то не работает, то смотрите error.log, там должны быть ошибки.
    Если для какого то сайта нужно изменить значение disable_functions, то меняю его для отдельного сайта. Или усиливаю защиту блокируя дополнительно функции или наоборот уменьшаю.

    3) Т.к. у меня php работает как php-fpm, то под каждый сайт создаю отдельного пользователя и пул в php-fpm запускается от него.
    Если php работает как модуль apache, то это делается через модуль mpm-itk.
    <IfModule mpm_itk_module>
        AssignUserId user1 user1
    </IfModule>


    4) Для apache устанавливаю модуль ModSecurity (mod_security2). Это веб фаервол. Он блокирует подозрительные http запросы ещё до того, как они попадут к скрипту/cms. Работает очень хорошо. Иногда даже слишком, что приходится отключать часть правил или полностью для какого то сайта.

    Но и выполнение этих 4 пунктов не гарантирует полную безопасность сайта. Один сайт клиента был взломан даже с такими защитами.
    Ответ написан
  • Как реализовать автоматический переход при падении VPS сервера?

    полтора месяца занимаюсь решением над данным вопросом, и уже больше месяца один интернет магазин работает по уже сделанному решению.
    Если коротко то:
    - два KVM VPS в разных ЦОД (400 - 700р за штуку)
    - nginx:80 -> apache:8080
    - Mysql репликация мастер-мастер
    - репликация файлов через clsync
    - репликация конфигов (nginx, apache, php, ssl, postfix) через clsync
    - работа с конфигами только на 1 сервере. Обновление SSL только на 1 сервере
    - репликация php сессий через memcachedrep
    - DNS round-robin, 2 А записи
    - весь трафик nginx направляет только на 1 сервер, второй помечен как backup
    - добавляете мониторинг через zabbix на всё что есть, чтобы видеть что и как работает
    - ещё можно использовать DNS-хостинг с API, чтобы через заббикс убирать недоступный ip из DNS выдачи.

    Пример: один из серверов недоступен/отключён.
    Если вы проверите как работает DNS round-robin, то заметите такой алгоритм:
    1) браузер подключается к 1 выданному ip
    2) пытается подключиться в течении 2 - 2.5 секунд
    3) если не получилось, то подключается к следующему ip
    4) т.к. 1 сервер недоступен, то nginx переключается к своему внутреннему apache и рабтает с ним
    ПРОФИТ!

    Если интересно, обращайтесь, подскажу https://t.me/konstantinti
    Если нужно сделать это всё полностью от и до, обращайтесь, сделаю.
    Ответ написан
  • Почему так сложно придумать какое приложение создать?

    Дарю интересную идею на интересный проект, а может даже и бизнес, бесплатно без смс :)
    Сделайте агрегатор погоды.
    Пользователь открывает мобильное приложение и там видит прогноз не от одного источника, а от нескольких (например 5-10 штук). По всем высчитывается усреднённые данные, чтобы было точнее.
    Какие то источники можно выделять цветом/жирностью или выше по списку ставить, которые выдают более точный прогноз. И так далее и так прочее, всё что связано с вычислением более точного прогноза.
    Можно добавить кнопку "прогноз не точный", при наборе таких голосов в N штук, у всех пользователей данного города будет подсвечено, что какой то прогноз какого то источника не точный.
    Придумать таких фишек можно много, думайте.

    Я хотел сделать такой сервис, но по разными причинам (не экономическим) передумал. Жду не дождусь когда кто нибудь сделает его.
    Заработать на нём думаю можно будет, т.к. посещалка у вас должна зашкаливать, если сервис "взлитит".
    По сути это венчур. Если повезёт, можно озолотиться, а может и нет :)
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (44)