when using apache we will add this php8apache2_4.dll module in httpd.config file
example: LoadModule php_module C:/php/php8apache2_4.dll
I extracted php in "C" drive
Цей розділ містить інструкції для ручного встановлення та конфігурування PHP на Microsoft Windows.
Скачайте бінарний архів PHP зі сторінки » PHP для Windows: Бінарники та Сирці. Існує декілька різних zip-архівів - виберіть версію, відповідну до вашого веб-сервера:
Якщо PHP використовується з IIS, то вибирайте PHP VC11 Non Thread Safe або PHP з VC9 Non Thread Safe;
Якщо PHP використовується з IIS7 або вище, та PHP 5.3+, то потрібно вибирати бінарники PHP VC11 Non Thread Safe.
Якщо PHP використовується з Apache 1 або Apache 2 то вибирайте PHP 5.3 VC6 чи PHP 5.2 VC6.
Зауваження:
VC11 версії компільовані на Visual Studio 2012 та мають покращення в продуктивності і стабільності. Версії VC9 потребують встановлених » Microsoft 2008 C++ Runtime (x86) або » Microsoft 2008 C++ Runtime (x64).
Розпакуйте вміст zip-архіву куди вам буде зручно, наприклад в C:\PHP\. Директорія та файлова структура після розпакування матиме приблизно такий вигляд:
Приклад #1 Структура пакета з PHP 5
c:\php | +--dev | | | |-php5ts.lib -- файл php5.lib є у версії "non thread safe" (без багатопоточності) | +--ext -- DLL-розширення для PHP | | | |-php_bz2.dll | | | |-php_cpdf.dll | | | |-... | +--extras -- пусто | +--pear -- ініціалізуюча копія PEAR | | |-go-pear.bat -- скрипт встановлення PEAR | |-... | |-php-cgi.exe -- виконуючий файл CGI | |-php-win.exe -- файл, що виконує скрипти без відкриття консолі | |-php.exe -- виконуючий файл для командного рядка (CLI) | |-... | |-php.ini-development -- початкове налаштування php.ini | |-php.ini-production -- рекомендовані php.ini налаштування | |-php5apache2_2.dll -- відсутній у версії "non thread safe" (без багатопоточності) | |-php5apache2_2_filter.dll -- відсутній у версії "non thread safe" (без багатопоточності) | |-... | |-php5ts.dll -- ядро PHP DLL (php5.dll - у версії "non thread safe") | |-...
Нижче наведено список модулів та виконавчих файлів вміщених в PHP zip-архів:
go-pear.bat - скрипт для встановлення PEAR. Детальнішу інформацію можна знайти на сторінці » Встановлення (PEAR).
php-cgi.exe - виконавчий CGI-файл, який може використовуватись при запуску PHP на IIS через CGI або FastCGI.
php-win.exe - файл для виконання PHP-скриптів без використання консолі (наприклад PHP-застосунки, що використовують Windows GUI).
php.exe - файл для виконання PHP скриптів через консоль (CLI).
php5apache2_2.dll - модуль Apache 2.2.X.
php5apache2_2_filter.dll - фільтр Apache 2.2.X.
Після того, як php-пакет розпакували, скопіюйте файл php.ini-production в ту ж папку, та перейменуйте його на php.ini. Якщо необхідно, файл php.ini можна розміщувати в будь-якому іншому місці, але це вимагає додаткових кроків конфігурування PHP.
Файл php.ini говорить PHP, яку їй мати конфігурацію, та як працювати в тому середовищі, де її встановлено. Далі наведено кілька налаштувань файла php.ini, що допомагають PHP працювати краще у Windows. Деякі з них є необов'язковими. Також є багато інших директив, що можуть стосуватись вашого середовища - прогляньте список директив php.ini для детальнішої інформації.
Необхідні директиви:
extension_dir = <шлях до директорії розширень> - extension_dir повинен вказувати на директорію, де зберігаються файли розширення PHP. Шлях може бути абсолютним (напр. "C:\PHP\ext") або відносним (напр. ".\ext"). Розширення, які йтимуть нижче в списку файла php.ini повинні розміщуватись в цій директорії extension_dir.
extension = xxxxx.dll - Для кожного розширення, яке ви хочете підключити, повинен бути відповідний запис з директивою "extension=", що говорить PHP, які саме розширення в extension_dir потрібно завантажувати при старті.
log_errors = On - PHP має механізм ведення логів помилок, який можна використовувати щоб відправити помилки до файла або до сервіса (напр. syslog). Цей механізм працює в зв'язці з директивою error_log, яку зазначено нижче. При роботі на IIS, log_errors потрібно включати з визначеним error_log.
error_log = <шлях до файла логу помилок> - Директиву error_log потрібно визначати через абсолютний або відносний шлях до файла, де повинні зберігатись логи помилок PHP. Веб-сервер повинен мати права на запис до цього файла. Найбільш звичне місце для нього - тимчасові (TEMP) директорії, наприклад, "C:\inetpub\temp\php-errors.log".
cgi.force_redirect = 0 - Дана директива необхідна для роботи PHP на IIS. Це засіб захисту директорії, який вимагається багатьма іншими веб-серверами. Тим не менш, встановлення ненульового значення для неї, викличе проблеми роботи ядра PHP під IIS на Windows.
cgi.fix_pathinfo = 1 - Дозволяє PHP мати доступ до інформації про real path (реальний шлях), згідно зі специфікацією CGI. Впровадження FastCGI на IIS потребує цього визначення.
fastcgi.impersonate = 1 - FastCGI на IIS підтримує здатність ідентифікувати маркери безпеки викликаючого клієнта. Це дозволяє IIS визначати контекст безпеки, під яким було запущено запит.
fastcgi.logging = 0 - Запис FastCGI-логів потрібно відключити на IIS. Якщо цього не зробити, то будь-які повідомлення від будь-якого класу будуть сприйматись FastCGI як помилки умов, через що IIS генеруватиме HTTP 500 винятки.
Необов'язкові директиви:
max_execution_time = ## - Ця директива визначає максимальну кількість часу, яку PHP може витратити на виконання будь-якого сценарію. Початково встановлено 30 секунд. Збільшіть значення цієї директиви, якщо застосунок PHP потребує більше часу.
memory_limit = ###M - Кількість доступної пам'яті для процесів PHP, в мегабайтах. Початково - 128 МБ, що є цілком достатньо для більшості PHP застосунків, але інколи цього буває недостатньо.
display_errors = Off - Ця директива говорить PHP, чи потрібно включати будь-які помилки в потік, що повертається до веб-сервера. Якщо задати значення "On", то PHP буде відправляти помилки, визначені через директиву error_reporting. З міркувань безпеки, рекомендовано встановлювати значення "Off" на робочих серверах, щоб часом не відправити певну інформацію, небажану для розголошення, разом з помилками.
open_basedir = <шляхи до директорій, розділені крапкою з комою>, наприклад, openbasedir="C:\inetpub\wwwroot;C:\inetpub\temp". Ця директива визначає шляхи до директорій, де для PHP є дозвіл на виконання операцій з файловою системою. Будь-які операції з файлами, за межами визначених шляхів, призводитиме до помилки. Ця директива особливо корисна для обмеження PHP, яка встановлена в середовищі загального хостинга (shared hosting), з метою запобігання доступів для PHP-скриптів до будь-яких файлів за межами кореневої директорії веб-сервера.
upload_max_filesize = ###M та post_max_size = ###M - Максимально дозволені розміри файлів, що завантажуються на сервер, та відправляються методом POST, відповідно. Значення цих директив потрібно збільшити, якщо є необхідність обробляти великі файли, наприклад, фото чи відео.
Далі, після встановлення PHP на вашу систему, потрібно вибрати веб-сервер, та включити в ньому підтримку для PHP.
Окрім роботи через веб-сервер, PHP також може працювати і через командний рядок, як .BAT скрипт. Детальнішу інформацію з цього приводу можна отримати в розділі Командний рядок PHP на Microsoft Windows.
when using apache we will add this php8apache2_4.dll module in httpd.config file
example: LoadModule php_module C:/php/php8apache2_4.dll
I extracted php in "C" drive
If you're installing PHP 8.0.1 as Apache http server module, in httpd.conf you must use "php_module" in "LoadModule" directive instead of versioned names like in previous versions (aka, php5_module, php7_module, ...). Make the directive as follow:
LoadModule php_module "/path/to/php8apache2_4.dll"
I cracked my head over this...