• Для чего нужны Nginx или Apache и что выбрать?

    vitali1995
    @vitali1995
    Если кратко - nginx лучше. Он разработан позже и учитывает множество ранее непредвиденных проблем. Как правило, apache используют там, где нужно больше гибкости, но возможно это уже устаревшая информация, т.к. nginx продолжает развиваться.

    К сведению: nginx тоже работает в несколько процессов, при этом их количество лучше соответсвует возможностям машины. В это время, apache создаёт новые потоки под каждое соединение - и да, эта информация тоже может оказаться устаревшей, т.к. apache ещё не похоронили.
    Ответ написан
    Комментировать
  • Для чего нужны Nginx или Apache и что выбрать?

    megafax
    @megafax
    web-программист
    В своей практике применяю такой подход:
    nginx служит для проектов на php/nodejs/etc прослойкой, которая распределяется запросы - на статику (картинки, css, js) или динамику (html). Статику отдает самостоятельно, а вот динамикой уже занимается apache/nodejs/etc. Причем "наружу" смотрит только nginx, все остальное слушает только 127.0.0.1, куда и проксирует все запросы nginx.
    Это в двух словах, если нужно более подроное или тонкая настройка - то маны Вам в помощь.
    Ответ написан
    Комментировать
  • Можно ли мигрировать с mysql на mariadb?

    @Fixid
    Можно.
    Не трудно. Остановить службу, сделать резервную копию /etc/mysql и /var/lib/mysql
    Обновить пакет, если это Ubuntu, то он при обновлении mysql-server сам предложит mariadb
    Запустить службу, остальное произойдет автоматически.
    При сильно большой разнице в версиях возможно придется подправить my.cnf
    Ответ написан
    Комментировать
  • Почему при установке MariaDB и MySQL всегда ставится mariadb?

    В Debian mysql-server является мета-пакетом, зависящим от мета-пакета default-mysql-server, зависящим от mariadb-server-x.y.
    Мейнтейнеры пакета mysql-server решили, что MariaDB, как форк MySQL, может являться полноценной ему заменой и с более понятной политикой обновлений.
    https://www.zdnet.com/article/oracle-who-fedora-op...
    https://news.ycombinator.com/item?id=16926975
    Ответ написан
    Комментировать
  • Почему при установке MariaDB и MySQL всегда ставится mariadb?

    @Vitsliputsli
    Потому как MySQL теперь называется MariaDB, и во многих системах mysql будет ссылкой на mariadb.
    Старое название и исходники проданы Oracle и соответственно развиваются и поддерживаются отдельно.
    До сих пор, зачастую, когда говорят MySQL подразумевают MariaDB. И хотя разработка MariaDB и Oracle MySQL идет очень параллельно, и большинство вещей появляются в обоих ветках, но различия будут накапливаться.
    Вполне возможно, что вам нужна MariaDB, а не MySQL.
    Ответ написан
  • Что лучше выбрать MySQL или MariaDB?

    Akdmeh
    @Akdmeh
    PHP, Yii2, Music
    В начале вы не заметите никакой разницы, бросьте монетку.
    Ответ написан
    5 комментариев
  • Что лучше выбрать MySQL или MariaDB?

    YardalGedal
    @YardalGedal
    yeah boy
    Во-первых, MarinaDB не существует, но есть MariaDB.
    Во-вторых, Сам я использую MariaDB, перешёл с MySQL. По-сути разницы никакой, однако в каких-то моментах MariaDB банально быстрее выполняет запросы, да и XtraDB поинтересней InnoDB.
    Почитайте об этом всём здесь.
    Ответ написан
    6 комментариев
  • Как заполнить форму W-8BEN на апворк?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    Выбираем "I am not a U. S. person".
    Legal Name of Business — ваши имя, отчество и фамилия, написанные транслитом (например, Ivan Ivanovich Ivanov).
    В первой строке адреса пишется транслитом название улицы, дом и т. п. (напр., 3-ya ulitza Stroiteley 25, 12), населённый пункт также указывается транслитом.
    Отмечаем галочку "I certify, under penalties of perjury, that...", жмём кнопку "Save", и спим с чистой совестью.
    Ответ написан
    8 комментариев
  • Какой хороший учебник/видеокурс по php вы можете посоветовать?

    dimovich85
    @dimovich85
    https://u-academy.net/
    Я много раз советовал вот этого преподавателя: https://www.youtube.com/user/dmitrylavr/playlists
    Посмотрите, как он ведет, что советует, если понравится, то там на его сайте есть курсы и по php, для разного уровня начальных знаний.
    Ответ написан
    Комментировать
  • Какой хороший учебник/видеокурс по php вы можете посоветовать?

    @Dilun
    Попробуйте родную документацию (php.net/manual/ru/). Раз хорошо знаете процедурный стиль, то несложно на ООП перейти, плюс документация хорошо написана. Еще как вариант абстрагироваться от языка и просто изучить ООП, основных постулатов там раз, два и обчелся, а потом само доходит. Главное основы понять
    Ответ написан
    Комментировать
  • Объясните как работает php-fpm?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Для начала почитайте что такое SAPI. Затем представьте что apache + mod_php разделили на web-сервер, который проксирует запросы на php-fpm и отдает статику, и собственно отдельный web-сервер который имплементит SAPI и выполняет запросы связанные только с php. То есть статику отдавать мы можем только через php. Суть примерно та же что и у apache2 + prefork + mod_php но оптимизированный только для работы с php. Так же можно поставить на фронт более быстрый и легковесный сервер который умеет проксировать запросы.

    То есть php-fpm это эдакий fast-cgi сервер который постоянно держит готовые для работы пул-процессов (сколько в пуле процессов настраивается, так же как и от какого пользователя их запускать и все такое прочее). Каждый новый запрос уходит в какой-либо процесс из пула, запрос отрабатывает, возвращаем результат тому кто попросил (web-серверу обычно). Если процесс падает (fatal допустим) - поднимаем новый.

    Принципиальной разницы между apache2+mod_php нету, просто упрощается инфраструктура. Наш web-сервер должен только уметь проксировать запросы и отдавать статику, а php-frpm вообще может быть на разных машинах (балансировщиком можно раскидывать запросы). Ну и сами понимаете, nginx + php-fpm будет быстрее обрабатывать запросы чем apache2+mod_php какой бы мы менеджер процессов не использовали в апаче. Минусов по сравнению с apache+mod_php я даже не могу предложить.

    А php-runtime не зависит от этого. Он один на всех, CLI, FPM, mod_php...
    Ответ написан
    7 комментариев
  • Какой язык программирования учить для серверной части?

    hell0w0rd
    @hell0w0rd
    Просто разработчик
    php. Популярный (есть проекты, много проектов), сейчас активно развивается в лучшую сторону. Появляются стандарты, альтернативные реализации, развивается синтаксис, переход к разработке с использованием готовых пакетов, куча качественных либ.
    Ответ написан
    Комментировать
  • Какой язык программирования учить для серверной части?

    opium
    @opium
    Просто люблю качественно работать
    Я понимал такие вопросы когда в конфе в эху падало такое, когда ты подключаешься к ббске на 10 минут чтобы скачать ответы и читать их в офлайне целый день.
    Но в век свободного интернета просто сходите и почитайте в той же википедии просто , не надо задавать вопросы на которые уже мне кажется уже в школе должны давать ответы, на ресурсе как тостер, тестер не для школьников.
    Ответ написан
    6 комментариев
  • Какой язык программирования учить для серверной части?

    SuperPaintma
    @SuperPaintma
    Смотря что вы хотите. Если это веб сервер для сайта, то начните со связки:
    PHP + HTML5 + CSS + JS + MySQL
    PHP - позволит делать динамический контент на сайте (собственно сейчас трудно найти сайты написанные на одном HTML) такой как блоги, комментарии и прочие привычности
    HTML5 - язык разметки страниц, без него никуда
    CSS - стилизация страниц, чтобы они не выглядели как Exel таблички, а имели красивости.
    JS - отличный скриптовый язык, который поможет вам как создавать динамический контент на сайте, не требующий обновления страницы, так и написание прочих скриптов (подадитесь в геимдев, то там он используется для логики в Unity и, кажется, UDK)
    MySQL (SQL) - язык для баз данных, который позволит вам создавать блоги с комментариями, регистрацию пользователя и вообще 42. Так же широко используется и за пределами веба в том числе в Android приложениях.

    Если же говорим о серверах, как о ПО обслуживающих какой-то софт в динамическом режиме (игровой сервер, сервер авторизации SA приложений), то тут (ИМХО) - Java, так сложилось, что другие языки я не признаю в этом плане.
    Пусть он более тормозной и любит покушать RAM, но зато у вас не возникнут проблемы при апдейте сервера и переходе на другую ОС. Ну и конечно же, если передумаете заниматься серверами, то вам прямая дорога на Android с Java.
    Ответ написан
    7 комментариев
  • Какой язык программирования учить для серверной части?

    Rrooom
    @Rrooom
    PHP
    минусы - он говно
    плюсы - популярен для говносайтов

    Python
    минусы - python3
    плюсы - он няшный, python2, разные и шикарные реализации асинхронности

    Если речь не о сайтах, а просто о серверных приложениях, то наиболее популярны - Java, Python, Erlang, Go, C.
    Многие начинают использовать для небольших проектов NodeJS, но ему пока не все доверяют.
    Ответ написан
    Комментировать
  • Какой язык программирования учить для серверной части?

    Если интересует web-направление, то, конечно, PHP. Язык прост в изучении и сразу ориентирован под web. Не слушайте сторонников Python - они вечно пытаются протолкнуть свой язык во все области.

    Если не web-направление, то Python.
    Ответ написан
    1 комментарий
  • После публикации в Google Play не выводится реклама?

    @KBVpneofit
    По новым правилам,реклама показывается только после того,как начинают поступать запросы))
    Просто нужно подождать,пока твою игру начнут играть 5-6 человек.
    У себя одна игра только недавно начала показывать баннеры,когда игру начали скачивать по 5-6человек (неделя прошла) человек в день(провальная игра)
    Ответ написан
    1 комментарий
  • Как объективно протестировать производительность node.js и PHP в запросах к mysql БД?

    Staltec
    @Staltec
    Node.js разработчик
    Node-код в примере некорректен по отношению к поставленной задаче:
    for (var i = 0; i < 100000; i++) {
      connection.query(
        'SELECT * FROM dreg_document', 
        function(error, result, fields){}
      );
    }

    Тут просто в синхронном цикле вызывается 100000 асинхронных запросов БЕЗ ожидания их завершения. Просто 100000 раз кинули запрос и закончили работу программы подсчитав время. Автор вопроса не понимает как работает node.js и в связи с этим неверно трактует полученный результат. Если ожидать каждого ответа на запрос к SQL-серверу, то результат будет совсем другим.
    Ответ написан
    1 комментарий
  • Как объективно протестировать производительность node.js и PHP в запросах к mysql БД?

    Как у нас на пхп. Пишешь строчки, выполняет по порядку. Сделал до конца одно, дальше. Как у нас с нодежс. Пишешь строчки и тоже по порядку, но не по такому порядку, как в php. К примеру у нас 2 обращения к базе. Они тоже будут идти по порядку, но почти одновременно, так как сразу после первого обращения к базе он не дожидаясь ответа обратится второй раз. Дожидаться ответа он уже будет в callback функции к обращению.

    PHP - спокойный тип, который спокойно выполняет задачи и не запутывается. Nodejs - карьерист амфетаминщик, который в любое свободное время (к примеру, пока ждет ответа от той же базы) будет выполнять другие свои обязанности.
    Ответ написан
    Комментировать
  • Как объективно протестировать производительность node.js и PHP в запросах к mysql БД?

    @fattan Автор вопроса
    программист
    Итак. Спасибо за ответы. Я понял в чем дело. Т.к. программирую на node.js аж целых 2 недели, я неверно трактовал результаты. Изменил тест, и вышло вот что:

    var start = new Date();
    
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : '', 
      database : 'epr'
    });
    
    
    for (var i = 0; i < 1000; i++) {
    	connection.query(
    		'SELECT * FROM dreg_document', 
    		function(error, result, fields){
    			
    			var str = '';
    			
    			result.forEach(function(row){
    
    				str += ' ' + row.id + ' ';
    
    			});
    			console.log(str);
    		}
    	);
    }
    
    connection.end();
    
    var end = new Date();
    console.log('node.js %d мс', (end.getTime()-start.getTime()) / 1000);
    	
    client.send('qwerty');


    Если думать по php-шному, после отработки всех запросов, отправляется сообщение клиенту -
    client.send('qwerty');

    Но на деле, сообщение отправляется тогда когда node-server отправит к БД ВСЕ запросы. Затем (! не дожидаясь ответа от БД) сервак отправляет клиенту сообщение. Клиент (браузер) подсчитывает время (вышло, к примеру 2 секунды для 100 000 итераций). А в это время в ноду продолжают поступать ответы от БД. Эти ответы мы видим с помощью
    console.log(str);
    И тут уже получаются совсем другие результаты....

    Далее, изменяем скрипт следующим образом, чтобы подсчитать время выполнения от 1го до последнего асинхронного подключения к БД:
    // начало выполнения скрипта
    var start = new Date();
    // счетчик обращений к БД
    var ConnCountGlobal = 0;
    // Число обращений к БД
    var iLength         = 100;
    
    var connection = mysql.createConnection({
      host     : 'localhost',
      user     : 'root',
      password : '', 
      database : 'epr'
    });
    
    for (var i = 0; i < iLength; i++) {
    	connection.query(
    		'SELECT * FROM dreg_document', 
    		function(error, result, fields){
    			
    			// для последнего запроса вычисляем таймер
    			if (ConnCountGlobal == iLength-1){
    			
    				var dateObj   = new Date();
    				var currTime  = dateObj.getTime();
    			
    				console.log(' node.js - %d мс', (currTime-start.getTime()) / 1000);
    			}
    
    			ConnCountGlobal++;
    		}
    	);
    }
    
    connection.end();


    Результат
    Для 100 итераций 2.5 сек (что в 15 раз медленнее чем на PHP)

    Промежуточный ответ на топик:
    Node.js не быстрее PHP в 150 раз в вопросе доступа к БД.
    Напротив, Node.js в этом плане в 15 раз медленнее чем PHP.
    (это если брать оба сервера "из коробки", без улучшательств и настроек)

    Новый вопрос:
    Верен ли мой последний тест? Или я в нём тоже что-то не так сделал?
    Ответ написан
    9 комментариев