четверг, 1 августа 2013 г.

Установка PHP 5.5.1, Apache 2.4.6 на Windows 7

Задолбался устанавливать вышеперечисленное.
Решил записать сюда, чтобы в следуйщий раз не тратить столько много времени на это.
Всё из-за невнимательности и спешки. Вообще всё в мануалах черным по белому ясно написано что с чем совместимо и что нужно качать.

Вообщем внимательно смотрим чтобы всё было 32 битным (64 бит хпх пока в эксперементальной разработке).

1) заходим сюда http://www.microsoft.com/en-us/download/details.aspx?id=30679 , жмем Download, выбираем VSU3\vcredist_x86.exe и устанавливаем.

2) идем сюда https://www.apachelounge.com/download/VC11/ качаем "Apache 2.4 win32 binary", разархивируем. Из ReadMe.txt в корне архива:

Install
-------


- Unzip the Apache24 folder to c:/Apache24 (that is the ServerRoot in the config).
Default folder for your your webpages is DocumentRoot "c:/Apache24/htdocs"

When you unzip to an other location, change ServerRoot in the httpd.conf,
and change in httpd.conf the Documenroot, Directories, ScriptAlias,
also when you use the extra folder config file(s) change to your location there.

Start apache in a DOS box:

>httpd.exe

Install as a service:

>httpd.exe -k install

ApacheMonitor:

Double click ApacheMonitor.exe, or put it in your Startup folder.
от себя добавлю, что перед тем как будете устанавливать сервис запустите консоль от имени администратора.

3) отсюда http://windows.php.net/download/ качаем "VC11 x86 Thread Safe (2013-Jul-18 20:59:48)" PHP 5.5 (5.5.1)
разархивирум, переименовываем в php, кладем куда угодно.


4) настройка (http://php.net/manual/ru/install.windows.apache2.php)
LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# конфигурирование пути к php.ini
PHPIniDir "C:/php"

5) в папке с пхп копируем php.ini-development в эту же папку и переименовываем в php.ini.

6) Перезагружаем сервер.


Ошибки.
Евли после добавления виртуалхоста в браузере появится:
Forbidden
You don't have permission to access / on this server.
а в логе (C:\Apache24\logs\errors.log) что-то вроде этого:
[Thu Aug 01 16:06:19.262800 2013] [authz_core:error] [pid 35172:tid 1048] [client 127.0.0.1:51370] AH01630: client denied by server configuration: C:/Users/zalizkog/Dropbox/www/homecafe.local/

Замените "Require all denied" на "Require all granted" и добавьте "Options FollowSymLinks Indexes". FllowSymlinks нужен для работы mod_rewrite а Indexes чтобы отображать содержимое папке виртуального хоста, если не найден index.php или index.html
<Directory />
AllowOverride All
Require all granted
Options FollowSymLinks Indexes
</Directory>

Ошибка в логе, если вы не указали FollowSymLinks:
[Thu Aug 01 16:04:37.066581 2013] [rewrite:error] [pid 40336:tid 1088] [client 127.0.0.1:51358] AH00670: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions : C:/Users/zalizkog/Dropbox/www/homecafe.local/

Такая ошибка, если отключен модуль mod_rewrite:
[Thu Aug 01 16:03:16.879563 2013] [core:alert] [pid 32776:tid 1092] [client 127.0.0.1:51353] C:/Users/zalizkog/Dropbox/www/homecafe.local/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration


Расширение в php.ini:
extension_dir = "C:\php\ext"
раскомментировать те расширение которые нужно

3 комментария:

  1. Будьте внимательны с указанием пути: у меня заработало с си большой(C:/), а не маленькой(c:/).
    То есть в 4м пункте должно быть LoadModule php5_module "C:/php/php5apache2_4.dll"

    ОтветитьУдалить
  2. Большего идиотизма я еще не читал. Если это писал программист какой-нибудь компании или, не дай бог, государственной структуры, то я им (в смысле, организациям) не завидую. Если вы в этом дилетант, зачем других учить дилетантству? Абсолютно бесполезная статья для профи. Да, php на Windows таким способом установить можно, да, и Apache скорее всего. Только это только дилетанты так делают, которым затем php нужен только для работы с Joomla, ну, или в лучшем случае Drupal. Нормальная разработка профессиональных сайтов в таком окружении невозможно. Для этого изучайте материальную часть.

    ОтветитьУдалить