Як вручну встановити Apache, PHP і MySQL у Windows?


42

Як встановити Apache з підтримкою PHP і сервером MySQL у Windows без використання будь-яких готових до використання пакунків, таких як WAMPServer або XAMPP?

Відповіді:


59

Apache

По-перше, я рекомендую вам прочитати Примітки для платформи Apache для Windows - це пояснює деякі специфічні для Windows функції, такі як запуск сервісу, який у вас немає на інших ОС, і ви, мабуть, ніколи раніше не використовували.

Як згадувалося в цих особливих примітках до платформи, Apache не надає двійкових файлів для Windows, однак вони мають посилання на кілька сайтів третіх сторін, які надають двійкові файли, наприклад Лаунж Apache .

З цього веб-сайту можна завантажити 32-бітну версію (win32) або 64-бітну версію (Win64) - якщо ваша операційна система має 64-бітну версію, ви завжди повинні намагатися встановити 64-бітні версії програмного забезпечення, але зверніть увагу, Потрібно також використовувати 64-розрядні модулі, тобто, якщо у вас є тільки 32-розрядний модуль, то завантажте 32-розрядний Apache.

Ось версія, яку я використовував під час написання цього: Apache 2.4.10 Win64 - остання версія була останньою версією, коли ця відповідь була останньою (див. дату редагування внизу повідомлення).

Після завантаження, просто розпакуйте Apache24 папку до кореня жорсткого диска, щоб у вас був шлях C:\Apache24\bin.

Відкрийте вікно командного рядка (Windows + R і введіть cmd потім натисніть Enter), змініть каталог на C:\Apache24\bin і запустити httpd.exe, як правило, він не повинен друкувати помилок.

Якщо ви отримали діалогове вікно з повідомленням про помилку MSVCR110.dll у вашій системі відсутній, потрібно встановити Можливість розповсюдження Visual C ++ для Visual Studio 2012 - як завжди, коли з'явиться запит, виберіть відповідну біт-версію: vcredist_x86.exe для 32-бітних систем і vcredist_x64.exe для 64-бітних.

Якщо ви отримали повідомлення про помилку про те, що він не може прив'язати до порту 80, перевірте, чи інший додаток використовує цей порт - також відомо, що Skype використовує порти 80 і 443 за замовчуванням; зніміть прапорець "Використовувати порти 80 і 443 як альтернативи вхідних з'єднань" у розширених настройках підключення Перезапустіть Skype, щоб застосувати зміни, і тоді ви зможете запустити Apache без проблем.

Попередження подібне Could not reliably determine the server's fully qualified domain name можна ігнорувати.

Брандмауер Windows може запропонувати вам дозволити Apache спілкуватися на певних мережах. Я рекомендую використовувати налаштування за промовчанням: дозвольте це на домашніх і робочих мережах, але не на загальнодоступних / ненадійних мережах.

Потім відкрийте веб-переглядач і перейдіть до http://localhost, якщо ви бачите сторінку, що говорить It works ! це означає, що ваша інсталяція Apache працює.

Тепер ви можете зупинити поточний запущений Apache, натиснувши Ctrl + C у командному рядку.

Якщо ви отримали попередження про те, що не вдалося визначити повне доменне ім'я системи, виправте це шляхом редагування C:\Apache24\conf\httpd.conf і редагування ServerName змінної (вона повинна бути вже в коментарі, просто розкомпонувати її та змінити її):

ServerName <yourhostname>

Замінити <yourhostname> або з іменем хоста системи або localhost.

Нарешті, якщо ви хочете запустити сервер автоматично, коли система запускається (навіть якщо ніхто не входить в систему), потрібно запустити його як службу - у новому командному рядку з підвищеними (як адміністратора) типу:

httpd.exe -k install

Ось так, тепер у вас є нова послуга в службах (Windows + R потім введіть "services.msc", потім натисніть Enter) з ім'ям "Apache2.4", які можна керувати так само, як і будь-яку іншу службу Windows.

Обмеження доступу до Apache localhost тільки - необов'язково

Якщо ви налаштуєте це для цілей розробки, ви хочете переконатися, що ніхто, крім вас, не матиме доступу до нього, ваш брандмауер повинен уже подбати про це, але давайте додамо ще один рівень безпеки, вказавши Apache, що він приймає запити місцевих тільки машина.

Відкрийте файл конфігурації Apache C:\Apache24\conf\httpd.conf, шукайте блок каталогу за замовчуванням <Directory "c:/Apache24/htdocs">.

В кінці, якщо це, повинна бути лінія Require all grantedце означає, що будь-хто може отримати доступ до цього сервера. Давайте зробимо це Require local які дозволяють доступ лише з локальної машини.

Крім того, Apache можна домогтися лише прив'язки до інтерфейсу loopback, таким чином, навіть якщо і ваш брандмауер і вищезазначені директиви контролю доступу не вдаються, сервер все одно не буде відкритий для всього Інтернету.

Для цього знайдіть Listen директива (за замовчуванням встановлено на 80 ) і змініть його на наступне:

Listen 127.0.0.1:80
Listen [::1]:80

Перший рядок не пояснює себе, другий - перший еквівалент IPv6, дужки використовуються в нотації IPv6 для розділення адреси та порту.

Збережіть файл, якщо ви вже працюєте на сервері, потім перезапустіть його, щоб врахувати наші зміни, і тепер localhost має доступ, всі інші отримають 403 Forbidden.

PHP

Я пропоную вам прочитати офіційна документація PHP про встановлення його на системах Windows.

Завантажте останні офіційні файли PHP Сторінка завантаження PHP для Windows , оберіть потокобезпечну версію, яка відповідає бітовій версії установки Apache (x86 для 32-Bit, x64 для 64-Bit).

Версія, яка не є безпечною для потоків, використовується лише у вигляді двійкового файлу CGI тут .

Версія, яку я використав, це: PHP 5.6.2 VC11 x64 Thread Safe - остання версія була останньою версією, коли ця відповідь була останньою (див. дату редагування внизу повідомлення).

Створіть порожній PHP папку в корені жорсткого диска, і витягти раніше завантажений архів там, ви повинні мати шлях, як C:\PHP\extв іншому випадку ви зробили щось неправильне.

В C:\PHP, перейменуйте php.ini-production або php.ini-development (залежно від того, що ви хочете) php.ini.

Відкрийте це php.ini шукати файл extension_dir = "ext" і роз'єднати цей рядок (видаліть перший ; ). Це встановлює розширення за умовчанням на ext (що вирішує C:\PHP\ext і запобігання необхідності попередньої підготовки ext/ до всіх шляхів розширення вручну, як і в попередніх версіях цієї публікації.

Тепер налаштуйте Apache на використання цього PHP за допомогою редагування C:\Apache24\conf\httpd.conf - адже все LoadModule рядків, додайте наступне:

(Далі йдеться про PHP 7 тільки )

LoadModule php7_module "c:\php\php7apache2_4.dll"

<IfModule php7_module>

    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php .php .html
    PHPIniDir "c:\php"
</IfModule>

(Нижче наведено PHP 5 тільки )

LoadModule php5_module C:/PHP/php5apache2_4.dll

<IfModule php5_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Тепер спробуйте запустити Apache вручну, відкривши командний рядок у C:\Apache24\bin і працює httpd.exe - якщо ви не бачите жодних помилок, це означає, що ваш конфігураційний файл дійсний, а PHP - найімовірніше працює .

Ви можете протестувати інсталяцію PHP, створивши подібний файл info.php с <?php phpinfo(); всередині і збирається http://localhost/info.php - Ви повинні побачити чимало інформації про вашу систему і вашу PHP-установку і всі її модулі. Якщо ви отримаєте щось інше, як "Внутрішня помилка сервера", це означає, що щось не так.

Тепер ви можете вбити ваш поточний процес Apache (Ctrl + C в консолі) і запустити службу - наступна частина не взаємодіє з Apache і може бути зроблено з вже запущеним сервером.

Композитор - необов'язково

Композитор - це інструмент для управління залежностями в PHP, як менеджер пакетів. Це дозволяє легко встановлювати пакети PHP і навіть цілі рамки.

Композитор вимагає, щоб розширення PHP OpenSSL було включено, так що давайте включимо його C:\PHP\php.ini.

Для пошуку використовуйте функцію пошуку текстового редактора php_openssl.dll, для неї вже повинна бути лінія для коментарів, просто розбекайте цей рядок.

Тепер завантажиться інсталятор Windows від Composer завантаження - або просто скористайтеся цим пряме посилання .

Дотримуйтесь інструкцій, коли з'явиться запит на шлях до PHP, перейдіть до C:\PHP і виберіть php.exe.

Це те, Composer тепер встановлено в системі і може бути використано з будь-якого місця - ви можете спробувати його, просто відкрийте нову командний рядок (ви не можете використовувати той, який вже відкритий, оскільки він повинен читати нові PATH змінної, встановленої інсталятором Composer) і типу composer.

Ви повинні отримати хороший логотип ASCII-art і щось подібне:

Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28

Розширення PHP MySQL - необов'язково

Якщо ви хочете отримати доступ до вашої бази даних MySQL з PHP, вам потрібно ввімкнути розширення, які дозволять вам зробити це, як php_mysqli або php_pdo_mysql - Я рекомендую включити їх обох.

Відкрийте файл конфігурації PHP C:\PHP\php.ini у текстовому редакторі та пошук php_mysqli або php_pdo_mysql - вони вже повинні бути там, розкомпонувати їх.

Зроблено, тепер ви можете отримати доступ до будь-якої бази даних MySQL, використовуючи теж mysqli або PDO.

MySQL

На MySQL Installer сторінка завантаження завантажити веб-інсталятор mysql-installer-web-community-xxxxx.msi.

я використав mysql-installer-web-community-5.6.21.1.msi - остання версія була останньою версією, коли ця відповідь була останньою (див. дату редагування внизу повідомлення).

Інсталятор автоматично встановить відповідну версію (32-бітну або 64-бітну) залежно від вашої системи, хоча бітова версія MySQL не повинна відповідати версії Apache і PHP, але все одно корисно використовувати 64-бітну версію вашого Система підтримує її, щоб скористатися більш ніж 3 ГБ оперативної пам'яті Це дуже важливо, оскільки сервери баз даних, як правило, використовують багато оперативної пам'яті.

Дотримуйтесь кроків у установці, якщо ви встановлюєте це для розробки, то Developer default це буде найкращим варіантом, він також встановить MySQL Workbench, який є рідним клієнтом графічного інтерфейсу, тим самим уникаючи встановлення повільних веб-інструментів, таких як PHPMyAdmin, якщо ви не впевнені в використанні клієнтського рядка.

Після того, як все встановлено, програма установки запитає вас про деякі базові значення конфігурації. Рекомендую вимкнути "Відкрити порт для брандмауера для доступу до мережі", якщо ви не хочете отримати доступ до бази даних з іншої машини в мережі.

Встановіть кореневий пароль - якщо він призначений лише для розробки, і ваш брандмауер блокує вхідні з'єднання з мережі, то надійний пароль не є необхідним.

Нарешті, ви можете вимкнути непотрібний MySQL Notifier, клацнувши правою кнопкою миші на іконку в треї, перейшовши до Actions - & gt; Опції, потім зніміть прапорець Run at Windows Startup та встановіть прапорець. Це допоможе вам заощадити кілька МБ оперативної пам'яті і уникнути уповільнення роботи комп'ютера під час завантаження.

І ось тут, у вас є повністю функціональний WAMP-сервер, який працює як послуга і не залежить від будь-якого користувача (доступний навіть у тому випадку, якщо ніхто не ввійшов).

Зауважимо, що я не маю уявлення про безпеку цього, для цілей розвитку я б сказав, що це досить безпечно, оскільки ваш брандмауер повинен блокувати вхідні з'єднання для Apache (порт 80 і 443) і MySQL (порт 3306).

Це було перевірено на установці Windows 7, вона також повинна працювати добре на Vista, Windows 8 і, можливо, Windows Server 2008/2012 - не соромтеся коментувати та / або downvote, якщо це не так.


2
Я б просто зауважив, що може бути необхідно розкоптувати рядок extension_dir = "ext" для Windows у php.ini.
jaffamcneill

@jaffamcneill дійсно ви були праві, я оновив свою відповідь, щоб пояснити це.

Ти врятував мені життя. Я боровся з цим протягом минулого тижня, але mysql просто не буде включений у phpinfo. Я отримав це з вашою допомогою. Спасибі тону.
clever_bassi

Коли ми повинні використовувати модуль mod_fcgid? У мене є проблема, коли у мене багато користувачів в системі, одночасно роблячи кілька запитів. Я потребую 64-бітної версії, оскільки 32-бітної пам'яті не вистачає (VFP ODBC з важкими запитами на звіти). Чи буде ваша установка вище працювати нормально або мені потрібно використовувати модуль php_fcgid і встановити PHP як cgi moodule? Це мене завжди бентежить ... Дякуємо за будь-яке розуміння.
Jeremy

1
Коли MSVCR110.dll з'явилася помилка (на поточній версії Apache) я закінчив встановлення Visual C ++ Redistributable 2010 SP1. Потім я отримав ще одну помилку про файл VCRUNTIME140.dll, яка вимагала встановлення Visual C ++ Redistributable для Visual Studio 2015.
Coded Monkey

5

PHP 7

Інструкції з вищезазначеної відповіді працюють прекрасно з липня 2017 року, однак, якщо ви бажаєте використовувати PHP 7, потрібно додати такі рядки до C:\Apache24\conf\httpd.conf, замість тих у відповіді (які працюють тільки для PHP 5) [Додайте наступне після всіх LoadModule рядки] :

LoadModule php7_module C:/PHP/php7apache2_4.dll

<IfModule php7_module>
    DirectoryIndex index.html index.php
    AddHandler application/x-httpd-php .php
    PHPIniDir "C:/PHP"
</IfModule>

Переконайтеся, що всі шляхи є правильними. Якщо у вас немає php7apache2_4.dll у вашій PHP-директорії, можливо, ви завантажили неправильний пакет.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.