Професійна розробка завжди орієнтується на власні інструменти – це гарантія надійного і ефективного виконання зобов’язань. Власний хостинг і сервера різного призначення в спектрі затребуваних конфігурацій розширюють сфери вирішуваних завдань, підвищують безпеку і конфіденційність розробок.
Власний HTTP: Apache, PHP, MySQL
Веб-сервер Apache впевнено лідирує з минулого століття, оскільки забезпечує швидку, надійну і безпечну роботу. Фізична машина і сервер під управлінням Linux або Windows – це фундамент, HTTP – це надбудова, хоча по суті це протокол передачі даних. В якості сервера може бути використана Windows-машина, але перевага віддається сімейства линуксоидов.
Apache в середовищі Windows – це локальний варіант, який використовується на одному комп’ютері для дублювання розробки ресурсів, розміщених на зовнішніх серверах. Установка Windows Server допустима, але не надто популярна. Налаштування Apache на CentOs дає більше можливостей і використовується для організації серверів в локальній і глобальній мережах.
Вважається, що сервера Apache обслуговують понад 50 % усіх активних веб-ресурсів, інша частка припадає на подібні вироби від Microsoft, Sun і ін Власне, фізичний сервер і його операційна система можуть бути будь-якими. HTTP-сервер ставиться на готову платформу і працює паралельно з іншими додатками на ній. Apache вважається рідним для всього сімейства линуксоидов, але в кожному конкретному випадку у нього є свої особливості.
Безкоштовність, простота, надійність відрізняють лінукс-системи та їх застосування. Не важливо, що використовувати: установка та налаштування Apache на Ubuntu не набагато відрізняється від CentOs, Debian або FreeBSD. Часто відіграє роль насиченість тієї чи іншої операційної системи додатковим програмним забезпеченням.
Сімейство линуксов невелика за кількістю «родичів» на лінії того чи іншого ядра системи. Відмінності носять більше соціальний характер – у розумінні прихильності розробників до формулювання та втілення можливостей операційної системи.
У реальності для вирішення конкретного завдання підняти хостинг необхідно визначитися з потрібним функціоналом, необхідною продуктивністю, концептуальними пріоритетами і конкретним вибором представника Linux, або ж зупинитися на Windows Server.
Зміщення пріоритетів локальної розробки
Важко оцінити роль глобальної мережі у розвитку програмування, але легко помітити реальне зміщення центру тяжіння: локальні програми стало прийнято виконувати як веб-ресурс. Просто написати програму для локального комп’ютера – це драйвери, антивіруси, невеликі проекти з простим функціоналом. Мова програмування … VBA, хоча можна застосувати C/C++ та C#.
Будь-який інформаційний проект – це веб-ресурс в локальній мережі компанії, який частково може бути доступний з глобальної мережі, наприклад для координування дій співробітників за межами офісу, що знаходяться в дорозі або відрядженні.
MySQL, PHP, Apache: налаштування на локальний варіант застосування – зовсім інша динаміка програми, необхідного функціоналу. Сучасні компанії, незалежно від розміру, кількості співробітників та сфери діяльності, всерйоз розглядають інтернет-програмування, як локальний, так і глобальний.
При цьому локальне програмування веб-ресурсу може бути розподіленим: офіси компанії можуть перебувати де завгодно, але це не Інтернет, а розподілена локальна мережа компанії.
MySQL, PHP, Apache налаштування в локальній формі:
- легко дублюється по комп’ютерам мережі;
- надає можливість динамічно змінювати активну складову або зіставляти її з зразком для оцінки спроб злому;
- дає привід розробити систему безпеки, позбавлену ризику бути атакованою класичними мережевими методами.
Якщо врахувати, що Apache MySQL і в середовищі Windows – це служби, а PHP-код – це звичайний текст, опрацьований інструментом (інтерпретатор PHP), що викликається в потрібний момент часу HTTP-сервером, то рівень змінності, мобільності та переносимості коду буде значно вище, ніж у локальних інструментів розробки.
Підготовка до інсталяції Apache
Ще в епоху «почала почав» операційна система Unix визначила негласні принципи лояльності. З тих пір все, що робилося під юниксоподобные системи, автоматично транслювалося на інші платформи. Налаштування Apache на Windows виконується дуже просто, але для вирішення серйозних завдань буде потрібно хороша кваліфікація і детальне уявлення про конфігурації HTTP-сервера.
Насамперед потрібно завантажити останню версію сервера (сьогодні це версія 2.4.33 від 17.03.2018) з офіційного сайту у форматі zip-архіву. Слід мати на увазі спочатку, що версії серверів численні і пропонуються на безлічі сторонніх ресурсів, тому важливо вибрати офіційну реалізацію, розміщену на веб-ресурсі, викликає довіру.
Раніше популярною була установка сервера за допомогою спеціального інсталятора. Тепер повсюдно практикується просте розгортання zip-архіву. Це простіше і дає можливість зрозуміти суть процесу конфігурування, що дуже важливо і згодом дозволяє оптимізувати сервер під потрібну навантаження і функціональність.
Редагування файлу конфігурації
Конфігурація сервера визначається набором конфігураційних файлів, розташованих в папці conf. Основний файл конфігурації Apache – httpd.conf.
У переважній більшості випадків необхідно внести правки в основний файл, уточнити вміст файлів, що відповідають за ssl і віртуальні хости. Інші налаштування зазвичай робляться в процесі експлуатації сервера по мірі виникнення проблем або вирішення завдань. В основному подальші налаштування пов’язані з оптимізацією роботи Apache або розширенням його можливостей.
Для успішного запуску сервера достатньо внести правку тільки в один рядок (по порядку – 38-ю) – і налаштування Apache завершена.
В попередніх варіантах конфігурації сервера потрібно вносити численні правки під реальну ситуацію, але тепер є «універсальна» мінлива SRVROOT. Варто вказати її правильне значення (шлях до місця розташування сервера), і все відразу запрацює.
Процедура розміщення сервера
Розташування сервера треба поставитися уважно. Сам по собі Apache цікавий, але коли він оснащений PHP і MySQL, він цікавий подвійно. Краще, коли все, що пов’язано з веб-розробкою, знаходиться в одному місці. Можна погодитися на дефолтні шляху, але сучасне програмування не так ідеально у своїй реалізації, так що тримати руку на пульсі доведеться однозначно і часто. Крім того, при виборі зручного місця будуть доступні всі файли ініціалізації та конфігурації, а також логи по роботі продуктів.
Скачаний офіційний zip-архів Apache потрібно розгорнути в обраному місці, розмістивши роздільно інструмент і роботу. В даному прикладі папка C:\SCiA – це інструмент (Apache24, PHP, MySQL, …), а папка SCiB – це робота, власне, сайтів, які створюються, супроводжуються або модернізуються.
В результаті першого етапу роботи в папку C:\SCiA\Apache24 потрапляють тільки підпапки bin, cgi-bin conf, error, … з усім їхнім змістом.
Редагування файлу hosts
Другий етап полягає в тому, щоб правильно налаштувати файл hosts – вказівка на те, які IP-адреси на даному комп’ютері зіставлені з якими іменами. Якщо на комп’ютері буде вестися розробка або супровід тільки одного сайту, то можна нічого не змінювати.
Базовий IP 127.0.0.1 зазвичай завжди вказує на localhost. Робочий файл hosts знаходиться за адресою c:\Windows\System32\drivers\etc і виглядає так, як показано нижче.
Щоб помістити файл hosts в потрібне місце, потрібно скористатися командним рядком у режимі адміністратора. Підготувати правильне утримання файлу можна в будь-якому місці файлової системи комп’ютера, але записати його за адресою c:\Windows\System32\drivers\etc можна лише тим інструментом, який володіє правами адміністратора. Через командний рядок це зробити простіше всього.
Установка сервера Apache
Немає нічого простіше. Досить запустити командний рядок від імені адміністратора і перейти в папку C:\SCiA\Apache24. Оскільки це шлях в системі Windows, то використовуються прямі слеш. У конкретному випадку шлях може бути іншим. Але якщо з ім’ям папки для розміщення святої трійці – Apache, PHP та MySQL – ще можна експериментувати, міняти імена папок для кожного з них недоцільно.
В даному випадку архів сервера розгорнуто в папці С:/SCiA/Apache24, отже, потрібно в папці bin написати команду:
- httpd.exe -k install
Сервер протестує файл конфігурації і встановиться сам. Швидше за все, будуть незначні помилки, але якщо правильно правити конфігураційний файл, то всі помилки будуть несуттєвими, і їх можна швидко виправити.
Вікно (1) командного рядка – установка сервісу, вікно (2) – список служб, у яких з’явився сервер, вікно (3) – вихідний файл index.html, розташований за адресою:/SCiB/localhost/www, вікно (4) – результат роботи сервера.
У цьому прикладі навмисне була допущена помилка: замість встановлення значення змінної SRVROOT були внесені численні правки «по старинці»: вручну все було змінено. Це не найкраще рішення. Перш ніж застосовувати знання, слід ознайомитися з поточною версією продукту. Як правило, все швидко змінюється, і знання слід застосовувати «зі знанням справи і розуміння поточної ситуації».
Практика розгортання zip-архіву
Сучасні сайти далеко не завжди пишуться на системах управління сайтами. Є багато ручної праці. Проблема перенесення сайту на інший хостинг зумовила хороше рішення – zip-архів. Згорнули контент в одному місці, розгорнули – в іншому.
Наявність інсталятора – хороша практика, але динаміка сучасних інформаційних технологій не дає часу на написання гарних інсталяцій. Використовувати установку через розгортання zip-архіву – сучасно, зручно. У такому варіанті налаштування Apache обмежується зміною файлів конфігурації.
При установці сервера важливо вказати:
- де він знаходиться;
- де знаходиться веб-ресурс (localhost);
- використання ssl;
- віртуальні хости.
Остання позиція актуальна, коли на сервері передбачається вести розробку або доопрацювання відразу декількох ресурсів. Для реального розробника це обов’язкове рішення: навіть якщо він забезпечує роботу одного сайту, не буде зайвим мати запасний варіант.
Джентльменські набори
Простота розгортання zip-архіву очевидна, Apache (установка і настройка) – всього два-три кліка. Однак результат, коли були популярні інсталятори, був еквівалентним. Розробник просто витрачав більше часу на розробку чергової версії свого продукту. Установка сервера, серверного мови та бази даних – це, по суті, просто набори файлів, запуск сервісів, файл hosts і шляхи за замовчуванням змінної операційної системи path.
Поява “денвера” і йому подібних джентльменських наборів розробника стало революційним кроком по лінії простоти і зручності, але не варто помилятися. Революція і програмування – речі абсолютно не сумісні. Перше – це дитя конфлікту і його бурхливого рішення, друге – це серйозна справа, яка потребує абсолютного спокою, пунктуальності, точності, системності, уважності, безпеки, надійності.
Налаштування сервера Apache – це серйозна процедура, до якої потрібно ставитися дуже уважно і зробити все так, щоб вже завтра можна було щось змінювати й уточнювати.
У більшості випадків розробка веб-ресурсів – це досить тривалі процеси, в яких вимоги до сервіси (Apache, PHP, MySQL, …) змінюються швидко, але завжди є час на розуміння черговий задачі та її оптимальне рішення. Але це не привід йти на поводу джентльменських наборів. Час тече, а джентльмен – не змінюється, це набагато більш вагомий аргумент, ніж декларація «денвер» – це просто, швидко і доступно.
Кілька сайтів – один сервер
Налаштування Apache 2.4 заради одного хоста – невиправдана розкіш. Незважаючи на компактний дизайн, на плечах даного сервера висить величезний вага відповідальності за більшу половину активних веб-ресурсів Інтернету. До того ж далеко не всі ресурси мають представницьку частина і видно в мережі.
Сервер може бути використаний як база даних, як пункт передачі інформації, як фільтр, як парсер, як робочий механізм в більш глобальному інформаційному процесі. Внаслідок сказаного налаштування віртуальних хостів Apache – практично завжди обов’язкова процедура.
Один сервер може підтримувати скільки завгодно веб-ресурсів, для цього потрібно в файлі httpd.conf зняти коментар з рядка 501:
- # Include conf/extra/httpd-vhosts.conf
і описати всі необхідні хости у файлі
- extra\httpd-vhosts.conf.
Може знадобитися уточнити, які порти і IP слухає сервер, але це окрема тема, на перший час можна обмежитися тим, що є.
Слід зазначити, що в прикладі для зручності опису реальних віртуальних веб-ресурсів (а їх багато) введена змінна (DOCROOT) з шляхом до спільної папки всіх веб-ресурсів, доступних через встановлений сервер.
Налаштування Apache SSL доступна аналогічним чином. У файлі httpd.conf потрібно просто залишити як є рядки з 524 по 531, які відповідають за роботу SSL.
Простота і складність Apache
Часи, коли настройка сервера дійсно представляла собою складну задачу, давно пройшли. Сьогодні налаштування Apache – дуже проста процедура, яка не вимагає від розробника особливої кваліфікації.
Три простих дії:
- розгорнути архів;
- змінити файл конфігурації;
- інсталювати сервер.
В результаті Apache функціонує у повному обсязі. Якщо не брати в розрахунок тонкощі процесу роботи сервера на максимальному навантаженні або виконувати локальну розробку Windows-комп’ютері, додаткових знань не потрібно.
Складності можуть виникнути на Linux-системах. Істотно різне уявлення про файловій системі, права користувачів і груп, а також організація процесу взаємодії з іншими додатками вимагають від розробника більшої компетенції й уявлення про те, як працюють Linux-комп’ютери.
Налаштування Apache на будь линуксовой системі відкриває перед розробником набагато більше можливостей і дає вихід у локальну мережу та Інтернет. За традицією Windows-комп’ютер – це локальна робоча станція, сервер там внутрішній. Linux-комп’ютер – це файловий сервер, веб-сервер і вузол локальної мережі або точка в інтернет-просторі.
Професійне середовище розробника
Apache – це фундаментальний цеглинка інтернет-простору, який може бути легко налаштований, використаний і стане опорою мережевої інфраструктури компанії.
Ця логіка передбачає наявність хоча б одного сервера в мережі на платформі CentOS, Ubuntu, FreeBSD, робочих станцій Windows. Оптимально мати два Linux-сервера (основний і допоміжний), налаштування Apache для локального комп’ютера в середовищі Windows. У разі вірусної атаки або непередбаченої ситуації допоміжний сервер стане на заміну основним, а основний – на ремонт і відновлення. Замінити локальну встановлення Apache на робочої станції (Windows) можна з архіву.
Це тривіальне рішення можна уточнити і доповнити в реальній практиці. Розмір інформаційних потоків компанії може визначити бажану конфігурацію і потрібну кількість серверів. Власне, Apache спроектований для роботи під навантаженням, але ніщо не заважає розподілити обов’язки одного сервера за кількома. Рішення, яке враховує особливості конкретної компанії, завжди перспективніше адаптації стороннього варіанти.