Apache и PHP във Windows

Когато правя някакви прости WEB базирани приложения, често ми се налага да ги тествам на локалния си компютър. Тук ще се постарая да покажа как си изграждам тестовата постановка, когато пиша приложения на PHP и HTML.

Инсталиране на Apache

Започваме с инсталацията на Apache. От https://www.apachelounge.com/download/ смъкваме последната версия. В случая е httpd-2.4.62-240904-win64-VS17.zip. Забележете, смъкнах 64 битова версия, защото моя Windows е 64 битов. Разархивираме архива и от него избираме папката Apache24, като я копираме в главната директория на C:. Трябва да изглежда C:\Apache24. Ръководейки се от сайта, инсталацията трябва да се извърши от Command Prompt.

C: cd \Apache24\bin httpd.exe -k install

Ще се генерира грешка защото липсва Microsoft Visual C++.

Pic01

Да го смъкнем от https://aka.ms/vs/17/release/vc_redist.x64.exe и го инсталираме като услуга (services).

C: cd \Apache24\bin httpd.exe -k install Installing the 'Apache2.4' service The 'Apache2.4' service is successfully installed. Testing httpd.conf.... Errors reported here must be corrected before the service can be started.

Предупреждава ни, първо да настроим услугата преди да я стартираме. Услугата може да се спре или стартира чрез:

httpd -k stop httpd -k start

Опцията -k означава, че боравим с услугата Apache.

Ако пък искаме да проверим за грешки то:

httpd.exe -t

Самата инсталация протича бързо. Ако се пробваме да отворим през браузър следното http://localhost, ще получим грешка. Това е така защото услугата не е стартирала. Да проверим и настроим услугата да се стартира автоматично с пускането на Windows.

Get-Service Apache2.4 Status Name DisplayName ------ ---- ----------- Stopped Apache2.4 Apache2.4 Set-Service Apache2.4 -StartupType Automatic Start-Service Apache2.4 Get-Service Apache2.4 | Select-Object Name,Status,StartType Name Status StartType ---- ------ --------- Apache2.4 Running Automatic

Услугата е стартирана и се запуска автоматично. Да проверим в браузъра: http://localhost. Връща се отговор It works!. До тук всичко е нормално. Ако правите промени по настройките на Apache, то услугата ще трябва да се рестартира. Командата е:

Restart-Service Apache2.4 ### или C:\Apache23\bin\httpd -k stop C:\Apache23\bin\httpd -k start

За по-нататъшна работа трябва да знаем, че настройката на Apache се прави от файла C:\Apache24\conf\httpd.conf

notepad C:\Apache24\conf\httpd.conf ### Тази операция не е задължителна (можете да ползвате localhost или IP адрес) # ServerName www.example.com:80 ServerName localhost C:\Apache23\bin\httpd -k stop C:\Apache23\bin\httpd -k start

Файловете който се отнасят за сайта ще се намират в C:\Apache24\htdocs

Инсталиране на PHP

Смъкваме инсталационния пакет от: https://windows.php.net/download#php-8.2. Ще ползваме версия PHP 8.2 (8.2.26). И ще смъкнем zip пакета който в случая е 30МВ. Внимание !!! Ползвайте Thread Safe, а не Non Thread Safe. Разархивирайте zip пакета и съдържанието му го сложете в C:\PHP

Връзка между PHP и Apache

За да ползвате PHP в Apache, трябва да конфигурирате самото Apache.

notepad C:\Apache24\conf\httpd.conf #LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule watchdog_module modules/mod_watchdog.so #LoadModule xml2enc_module modules/mod_xml2enc.so LoadModule php_module "c:/php-8.2.26/php8apache2_4.dll" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> <IfModule dir_module> DirectoryIndex index.php index.html </IfModule>

Това би трябвало да стигне. Освен това трябва да опишем във възможните пътища и достъпа до C:\PHP. За целта в лентата за търсене пишем path

Pic02

Ще редактираме променливите на системата.

Pic03

Ще редактираме дефинираните пътища.

Pic04

Добавяме нов допълнителен път.

Pic05

Указваме до къде трябва да има автоматичен досъп. В тази папка се намира и php.ini.

Pic06

С това трябва да сме приключили. Ползвани материали: https://www.youtube.com/watch?v=3EAj9tsXLFU