- Порівняння XAMPP і OpenServer
- Проблеми OpenServer, що заважають жити
- Яку версію XAMPP ставити.
- Параметр DocumentRoot в сервер Apache
- Висновок.
Коли розробляєш щось для інтернету, то без локального сервера не обійтися. Поставити руками сервер Apache, інтерпретатор PHP і базу MySQL легко, але ось налаштувати їх досить складно навіть за докладного мануалу. А вже підтримувати і ставити нові версії компонентів взагалі досить заморочно.
Тому за бугром є купа збірок для Windows, одна з яких називається XAMPP . А для російськомовних довгий час еталоном сервера для розробки була збірка Denwer, яка вже років 5 не оновлюється. Різні ентузіасти створювали проекти зі своїм баченням такої збірки (EleanorServer, Endel), але з часом ці проекти вмирали. фактично залишився OpenServer , Який створив і підтримує Максим Архипов.
Порівняння XAMPP і OpenServer
Якщо порівнювати XAMPP з OpenServer, то у кожного проекту є свої плюси і мінуси.
XAMPP - це практично «голий» сервер, де потрібно володіти азами знань Apache, щоб підлаштувати його під себе, створити руками віртуальні хости. Зате працює він швидко і найбільш близький до нормальному хостингу. В останніх версіях навіть зробили заглушку для тестування відправки пошти, що часто потрібно при створення будь-яких форм зворотного зв'язку.
OpenServer більш автоматизоване складання для розробки. До неї ще йдуть додатково програми в розширеному пакеті, які працюють без інсталяції. А управлінням сервером зроблено зі своєї оболонки, яка дозволяє автоматично створювати віртуальні хости для окремих сайтів, налаштовувати сервер під себе без лазіння в купи конфігов. Однак запускається він істотно довше, та й працює він теж повільніше XAMPP (і те, і інше зазвичай не критично для розробки).
В принципі, якщо працюєте з готовим движком, то особливої різниці немає. Однак якщо копнути трохи глибше, різниця є і суттєва.
Дуже багато людей пішли саме з Denwer на XAMPP саме через те, що конфіги часто були не оптимальні і генерувалися скриптами «на льоту», так що правити косяки було дуже складно і замість роботи, потрібно було «розкопувати» проблеми.
Проблеми OpenServer, що заважають жити
Ось і я на днях зіткнувся з такою ж проблемою: на OpenServer неправильно працював движок KodiCMS Павла Бучнева (недавно стаття була про це движку навіть на habrahabr.ru ). І косяк був у тому, що для роботи з потрібний не тільки обробка обробка запитів GET / POST, але і PUT, DELETE. Помилка не відразу з'ясувалася, але навіть коли я її знайшов до консолі і пішов шукати рішення, його не виявилося навіть на форумі збірки. Ні, топік був і є, ось тільки рішення не підходило. Максим писав, що це типу захист від злому (на локальному сервері, на локальній машині?!).
Оскільки я ще вивчаю Laravel, там теж є такі запити (хоча я до них ще не добрався), так що проблема є і її треба вирішувати.
У XAMPP це все прекрасно працює «з коробки».
Зрозуміло, якби я був «гуру» в Apache, я б розібрався що і де підписати / підправити, але я такими знаннями не володію, тому мені простіше змінити збірку.
Ну і не дарма я вже писав про налаштування OpenServer і PHPStorm через шляхів конфігов в попередніх стаття.
Так що всі ці проблеми призвели мене знову до XAMPP, яким я користуюся час від часу.
Яку версію XAMPP ставити.
Для користувача Windows пропонується тільки один інсталятор на 32 біта. А ось версій пропонується 2: 1.8.3 з php 5.5 і 1.8.2 c php 5.4. Особливою різниці начебто немає, так що я ставив останню версію.
І ось тут-то мене чатувала великий птах ОБЛОМІНГА! Сервер ставилося, сайти працювали. Ось тільки сторінки генерувалися В РАЗИ ПОВІЛЬНІШЕ, ніж на OpenServer.
«Ти ж тільки що говорив, що XAMPP швидше OpenServer?» - запитає мене уважний читач. Відповідаю: я сам був в шоці і шукав причину в конфігах Apache, php, Windows. Але так я і не зрозумів в чому справа.
Тоді я взяв версію 1.8.2. і все стало просто літати! Так що нове не завжди краще, ніж перевірене старе?
Так, ще хотів би сказати про цікаву особливість Apache, який я відкопав випадково.
Параметр DocumentRoot в сервер Apache
При створенні віртуального хоста, в httpd.conf прописується DocumentRoot, де зберігаються всі хости фізично. Здавалося б, така непомітна настройка, але от якщо спробувати в сервері прописати віртуальний хост не в цій директорії, то він працювати не буде. Від слова зовсім!
Поки я не зрозумів це, я намагався прописувати різні шляхи, шаблони, перерив інтернет і не знайшов відповідь. Чисто випадково я десь прочитав натяк на цю настройку англійською, але дійшло до мене її важливість дуже не скоро.
Так що якщо ви хочете створити для себе окрему папку для сайтів де-небудь в корені, як це зроблено в OpenServer, то або експериментуйте з цієї налаштуванням. Або робіть як я:
- У Парпієв XAMPP / httdocs я створив папку localhost і переніс туди всі файли з папками з цієї папки.
- Хости створюю в папці XAMPP / httdocs в окремих папках
- Прописую назви в файлі host в c: \ windows \ system32 \ drivers \ etc
- А в налаштуваннях апача дивимося xampp \ apache \ conf \ extra \ httpd-vhosts.conf раскомментіруем приклад хоста і спочатку створюю localhost, а потім вже копіюю і додаю свій хост. Виходить щось таке:
& Lt; virtualhost: 80 = "" & gt; ServerAdmin [email protected] DocumentRoot "D: / xampp / htdocs / localhost" ServerName localhost ErrorLog "logs / localhost-error.log" CustomLog "logs / localhost-access.log" common & lt; / virtualhost & gt; & Lt; virtualhost: 80 = "" & gt; ServerAdmin [email protected] DocumentRoot "D: / xampp / htdocs / kodi.dev" ServerName kodi.dev ErrorLog "logs / kodi.dev-error.log" CustomLog "logs / kodi.dev-access.log" common & lt; / virtualhost & gt;
Таким чином я повністю контролюю створення віртуальних хостів, все налаштування стандартні і зрозуміло де їх шукати. А кожен сайт лежить у своїй папці і для резервного копіювання легко можна налаштувати архівацію на конкретну папку.
Висновок.
Таким чином, зараз я перейшов на XAMPP версії 1.8.2 і спокійно буду на ній сидіти ще довго. А на новішу версію перейду коли поправлять помилки. Ну або коли допив OpenServer
інші статті
На локальному сервері, на локальній машині?«Ти ж тільки що говорив, що XAMPP швидше OpenServer?
Так що нове не завжди краще, ніж перевірене старе?