Установка Apache 2.4VC14 + PHP 7 на Windows 7 ­- 10

Данная инструкция служит дополнением к инструкции по установке Apache 2.4VC11 и PHP 5.6 и описывает лишь отличительные моменты, которые касаются установки Apache24 и PHP7 на Windows. Описание установки СУБД MySQL остается прежним и не повторяется в этой инструкции.

Данная инструкция рассчитана на разработчиков с базовыми знаниями Apache и PHP. В данной инструкции будут описана только разница в установке Apache и PHP с основной инструкцией по установке PHP 5.6. Если Вы не в курсе, что такое WEB-сервер, http-протокол и интерпретатор PHP, то Вы всегда можете узнать об этом более подробно, прочитав документацию.

Я не буду отвечать в комментариях на вопросы, ответ на которые есть в этой или основной инструкциях, ссылка на основную инструкцию указана в первом абзаце, а так же на вопросы, которые касаются понимания работы Apache и PHP и уж тем более на вопросы по ошибкам в разработке. Для этого существуют соответствующие ресурсы, литература, форумы, курсы. Однако, Вы всегда можете задать любой интересующий Вас вопрос. Возможно, кто-то из сообщества сможет Вам помочь.

Итак, поехали!

Установка Apache 2.4 VC14

  1. Загружаем Apache 2.4 binaries VC14 под свою систему по ссылке http://www.apachelounge.com/download/ Качаем 64 разрядную версию сервера. На момент написания этих строк файл назывался так: httpd-2.4.17-win64-VC14.zip
  2. Если нужны какие-то дополнительные модули, их можно загрузить там же (для базовой установки нет необходимости)
  3. Загружаем и устанавливаем обновления Visual C++ Redistributable for Visual Studio 2015 с сайта Microsoft.
  4. Разархивируем содержимое папки Apache24 из скаченного архива в D:\USR\apache. Обратите внимание, что в D:\USR\apache нужно положить не папку Apache24 из архива, а ее содержимое. Инсталлировать ничего не требуется.
  5. В файле D:\USR\apache\conf\httpd.conf изменяем значение ServerRoot на «d:/USR/apache» (строка 37) и значение DocumentRootDirecroty) на «d:/USR/www» (строки 243 и 244). Так же следует раскомментировать строку 219 и изменить ее на: ServerName localhost:80
  6. Изменяем параметры хранения логов в том же файле (находим параметры и изменяем):
    ErrorLog "D:/USR/log/apache-error.log"
    CustomLog "D:/USR/log/apache-access.log" common
  7. Устанавливаем сервис Apache. Открываем командную строку от имени Администратора и вставляем туда следующую строку:
    D:\USR\apache\bin\httpd.exe -k install
  8. Следим за сообщениями об ошибках во время установки сервиса. Если все сделано верно, никаких ошибок быть не должно. Если у вас после выполнения строки не появилась снова командная строка, то вы что-то сделали неправильно. Просто воспользуйтесь функциями скопировать и вставить, чтобы не допускать ошибок при перепечатке.
  9. Создаем на рабочем столе ярлык для D:\USR\apache\bin\ApacheMonitor.exe и/или помещаем его в автозагрузку (для открытия окна автозагрузки в WIN8..10 необходимо нажать WIN+R, затем ввести shell:Startup и нажать ОК)
  10. Запускаем ApacheMonitor. В системном трее появится ярлык. Нажимаем на него левой кнопкой, выбираем Apache24 -> Start.
  11. В браузере заходим на http://localhost/ — должны увидеть It works!
  12. Если не увидели такой надписи, разбираемся, что пошло не так (читаем логи, гуглим, пытаемся самостоятельно разобраться с проблемой, раз уж решили разбираться в тонкостях работы веб-сервера)

Установка PHP 7

  1. Загружаем последнюю версию VC14 x64 Thread Safe по ссылке http://windows.php.net/download/. Обратите внимание, что нужен именно VC14 и именно Thread Safe. Файл, который Вам нужен, скорее всего будет называться наподобие: php-7.0.0-Win32-VC14-x64.zip
  2. Извлекаем содержимое архива в D:\USR\php. Как в случае с Apache, инсталлировать ничего не требуется.
  3. В файл D:\USR\apache\conf\httpd.conf добавляем строки:
    LoadModule php7_module "d:/USR/php/php7apache2_4.dll"
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir "D:/USR/php"
  4. И изменяем значение параметра DirectoryIndex на index.html index.php (строка 278)
  5. Используя ApacheMonitor перезапускаем Apache (Apache24 -> Restart)
  6. Заходим браузером http://localhost/index.php и убеждаемся, что PHP работает (в браузере будет вывод PhpInfo).
  7. Делаем копию шаблона конфигурационного файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini — это конфигурационный файл для РНР.
  8. Редактируем конфигурационный файл D:\USR\php\php.ini. Пользуясь поиском находим внутри файла, раскомментируем и изменяем параметры. Обратите внимание, что параметр extension определяет набор расширений РНР. Раскомментируйте те расширения, которые нужны Вам. В примере расширения, которые были нужны мне. Временную зону указывайте свою, а не мою:
    extension_dir = "D:/USR/php/ext"
    sys_temp_dir = "D:/USR/tmp"
    extension=php_curl.dll
    extension=php_gd2.dll
    extension=php_gettext.dll
    extension=php_mbstring.dll
    extension=php_mysqli.dll
    extension=php_openssl.dll
    date.timezone = Europe/Zaporozhye
  9. Выполняем в командной строке php -m чтобы просмотреть список подключенных расширений.
  10. Перезапускаем Apache используя ApacheMonitor

Установка и настройка всего остального не изменилась. Обратитесь пожалуйста к статье по установке PHP 5.6 для получения подробной информации.

Установка Apache 2.4VC14 + PHP 7 на Windows 7 ­- 10: 157 комментариев

  1. Денис, добрый день! У меня PHP 7.1.0, Apache24. ОС: Windows 7 64x
    Они у меня уже установлены. Мне нужно поработать с графическими файлами. Когда я написал маленький скрипт и хочу запустить его в браузере через LOCALHOST, браузер мне выводит вот это: Fatal error: Uncaught Error: Call to undefined function imagecreatetruecolor() in C:\

    В файле «php.ini» у меня раскомментированы следующие строки: http://i12.pixs.ru/storage/1/5/3/phpgd2jpg_3882657_24862153.jpg
    Библиотеки GDLib по идее должны работать. Пробовать скачивать файл php_gd2.dll и заменить его-не помогло.

    1. Добрый день.
      В PHP для Windows уже входят все необходимые расширения.
      Чтобы их включить, нужно раскомментировать соответствующую строку в php.ini (в моей инструкции есть несколько расширений, которые включаются таким образом).
      В Вашем случае в php.ini нужно раскомментировать строку:

      extension=php_gd2.dll
      

      После чего обязательно перезапустить Apache, что скорее всего Вы забыли сделать.

  2. Здравствуйте, Денис. Выполнил всё по Вашей инструкции, немного изменив пути, так как диска D у меня нет. Служба успешно поднялась phpinfo отрабатывает, но столкнулся с ошибкой загрузки библиотекой curl: PHP Warning: PHP Startup: Unable to load dynamic library ‘C:\Apache24\php\ext\php_curl.dll’ — \xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd \xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd.\r\n in Unknown on line 0

    Подскажите, пожалуйста, в чём может быть причина и есть ли возможность сделать вывод ошибок читабельным (либо на русском либо на латинице) ?

    1. Добрый день.
      Посмотрите, остальные модули загружаются нормально?
      Через командную строку: php -m
      Или через php-файл:

      <?php
      print_r(get_loaded_extensions());
      

      Меня еще смущает путь C:\Apache24\php\ext\php_curl.dll. Конечно же, Вы могли скопировать РНР внутрь Apache24, но может быть это и есть ошибка? В таком случае проверьте правильность пути в extension_dir.

      Что касается кракозябр — достаточно текста ошибки PHP Warning: PHP Startup: Unable to load dynamic library ‘C:\Apache24\php\ext\php_curl.dll’

      1. Денис, благодарю за оперативный ответ. Да, остальные модули нормально грузятся. Проблема только с curl. Вот результат при выполнении строки в PHP файле.

        Array
        (
        [0] => Core
        [1] => bcmath
        [2] => calendar
        [3] => ctype
        [4] => date
        [5] => filter
        [6] => hash
        [7] => iconv
        [8] => json
        [9] => mcrypt
        [10] => SPL
        [11] => pcre
        [12] => readline
        [13] => Reflection
        [14] => session
        [15] => standard
        [16] => mysqlnd
        [17] => tokenizer
        [18] => zip
        [19] => zlib
        [20] => libxml
        [21] => dom
        [22] => PDO
        [23] => openssl
        [24] => SimpleXML
        [25] => xml
        [26] => wddx
        [27] => xmlreader
        [28] => xmlwriter
        [29] => apache2handler
        [30] => gd
        [31] => gettext
        [32] => mbstring
        [33] => mysqli
        [34] => Phar
        )

        Да, каталог php находится внутри Apache24. Вот так там всё расположено.

        C:\APACHE24\PHP
        │ deplister.exe
        │ glib-2.dll
        │ gmodule-2.dll
        │ icudt57.dll
        │ icuin57.dll
        │ icuio57.dll
        │ icule57.dll
        │ iculx57.dll
        │ icuuc57.dll
        │ install.txt
        │ libeay32.dll
        │ libenchant.dll
        │ libpq.dll
        │ libsasl.dll
        │ libssh2.dll
        │ license.txt
        │ news.txt
        │ phar.phar.bat
        │ pharcommand.phar
        │ php-cgi.exe
        │ php-win.exe
        │ php.exe
        │ php.gif
        │ php.ini
        │ php.ini-development
        │ php.ini-production
        │ php7apache2_4.dll
        │ php7embed.lib
        │ php7phpdbg.dll
        │ php7ts.dll
        │ phpdbg.exe
        │ readme-redist-bins.txt
        │ snapshot.txt
        │ ssleay32.dll

        ├───dev
        │ php7ts.lib

        ├───ext
        │ php_bz2.dll
        │ php_com_dotnet.dll
        │ php_curl.dll
        │ php_enchant.dll
        │ php_exif.dll
        │ php_fileinfo.dll
        │ php_ftp.dll
        │ php_gd2.dll
        │ php_gettext.dll
        │ php_gmp.dll
        │ php_imap.dll
        │ php_interbase.dll
        │ php_intl.dll
        │ php_ldap.dll
        │ php_mbstring.dll
        │ php_mysqli.dll
        │ php_oci8_12c.dll
        │ php_odbc.dll
        │ php_opcache.dll
        │ php_openssl.dll
        │ php_pdo_firebird.dll
        │ php_pdo_mysql.dll
        │ php_pdo_oci.dll
        │ php_pdo_odbc.dll
        │ php_pdo_pgsql.dll
        │ php_pdo_sqlite.dll
        │ php_pgsql.dll
        │ php_phpdbg_webhelper.dll
        │ php_shmop.dll
        │ php_snmp.dll
        │ php_soap.dll
        │ php_sockets.dll
        │ php_sqlite3.dll
        │ php_sysvshm.dll
        │ php_tidy.dll
        │ php_xmlrpc.dll
        │ php_xsl.dll

        ├───extras
        │ └───ssl
        │ openssl.cnf

        ├───lib
        │ └───enchant
        │ libenchant_ispell.dll
        │ libenchant_myspell.dll

        └───sasl2
        saslANONYMOUS.dll
        saslCRAMMD5.dll
        saslDIGESTMD5.dll
        saslLOGIN.dll
        saslNTLM.dll
        saslOTP.dll
        saslPLAIN.dll
        saslSCRAM.dll
        saslSQLITE.dll
        saslSRP.dll

        Тем не менее загрузка curl так и не работает. По этой причине как раз и хотел выяснить как победить «кракозябры» в отчёте об ошибках. )

  3. Здравствуйте. Скажите: чем отличается thread sahe от noon-thread safe? И если я буду ставить под nginx или просто использовать из под командой строки, то какую из этих версий мне ставить?

    1. Добрый день.

      Threaded safe версия нужна для использования с потоковыми серверами под ОС Windows, такими как Apache.
      Ошибкой большинства здесь в комментариях является то, что они скачивают Non Threaded Safe и, естественно, не могут связать его с Apache, так как эта версия не содержит необходимых модулей.

      Если Вы планируете использовать NGINX, то в этом случае Вы будете использовать php-cgi, и версия РНР здесь уже роли не играет. Тоже самое и с запуском РНР из консоли.

    2. Если не путаю, то thread-safe версия php библиотек (с защищённым потоком) используется для реализации PHP в Apache. Так как сам Apache не обеспечивает безопасность потоков. А non thread safe используется при подключении PHP к IIS (Internet Information Server аналог веб сервера, который предлагают разработчики Windows). В нём уже реализована безопасность потоков и поэтому к нему можно подключать non thread safe версию PHP библиотек. Но возможно ошибаюсь.

  4. Денис, а ничего, что в файле httpd.conf после предложенных вами исправлений остаётся несуществующий путь c:/Apache24/cgi-bin в строках 361 и 377?

  5. Денис, извините за моё тугодумство, но не совсем понял формулировку: «описывает лишь отличительные моменты, которые касаются установки Apache24 и PHP7 на Windows.» Речь идёт о том, что инструкция описывает лишь отличительные моменты, а именно установку VC14 и PHP7?

    1. Две инструкции практически идентичны за исключением некоторых моментов: версии apache и версии php. Инструкции писал для себя, так что посчитал, что не стоит дублировать дважды практически идентичный текст.

  6. Залип на пункте 6 установки php — на http://localhost/index.php отвечает, что

    The requested URL /index.php was not found on this server.

    CMS, понятное дело, тоже не устанавливается

    Апач при этом запускается нормально, и казалось бы, где там вообще можно накосячить…

      1. Да, я понял, что его там нет. Мне бы хотелось узнать, почему его там нет и где его взять

        1. Первое предложение первого абзаца инструкции говорит:
          Данная инструкция служит дополнением к инструкции по установке Apache 2.4VC11 и PHP 5.6 и описывает лишь отличительные моменты.
          В конце концов, этот index.php и есть ваш программный код. Вы должны его либо написать сами (если вы разработчик) или это может быть индексный файл проекта, который вы собираетесь развернуть на сервере.

  7. Какую чушь ночью написал. Разобрался в своей ситуации: ошибка 404 по адресу: http://localhost/index.php появилась после создания виртуальных хостов. По этому адресу попадаем в папку D:/USR/www/s1.localhost, а файла index.php там нет. Он лежит в папке www. После копирования вышеуказанного файла в папку s1.localhost все стало на свои места и ошибка 404 не появляется.

  8. Здравствуйте. У меня проблема следующего характера: При установке php7, выполнив переход по ссылке в пункте 6, загружается phpinfo. После копирования файла php.ini_development, сохранения копии как php.ini и редактирования его, по ссылке из пункта 6 появляется ошибка 404. Как с этим явлением побороться?

  9. Добрый день Денис! Я читал комментарии и увидел что в строке браузера localhost/index.php выдает я не знаю что вообще там должно писаться, до этого изменил переменную (добавил) скриншот http://prntscr.com/bksv2d , добавил 4 строки скриншот http://prntscr.com/bksyfn , но меня смущает одно, изменение значения в строке 278, у меня она 277 прописал так DirectoryIndex index.html index.php скриншот http://prntscr.com/bkt0i3, может надо было DirectoryIndex вообще удалить и оставить только index.html index.php?

      1. Денис, извините но мне не понятен пункт 7. Делаем копию …., а куда ее вставлять эту копию?
        Далее пункт 8. пользуемся поиском, мне нужно отрыть D:\USR\php\php.ini-development или файлы находятся в D:\USR\apache\conf\httpd.conf?

        1. Вроде нашел как описано в 8 пункте, скриншот http://prntscr.com/bkuh4z менять нет смысла они и так там прописаны, но не могу найти первые две строчки
          extension_dir = «D:/USR/php/ext»
          sys_temp_dir = «D:/USR/tmp»
          и последняя строка я так понимаю это что то ваше date.timezone = Europe/Zaporozhye

        2. По гуглил, нашел ответ, фаил D:\USR\php\php.ini-development нужно переименовать, убрать слово -development что не было вами сказано в пункте 7

          1. Не переименовать, а скопировать. Рад, что Вы сами нашли все ответы. К сожалению, я не смогу Вас ничему научить. Могу лишь ответить на вопросы, на которые нет однозначного ответа в статье.

            1. Спасибо, ну хоть что-то хорошее узнал, смотрю способов как и что у всех по разному в деталях. Иду дальше нужно еще установить MySQL и движок Joomla

        3. Продублирую здесь пункт целиком.
          Делаем копию шаблона конфигурационного файла D:\USR\php\php.ini-development с именем D:\USR\php\php.ini
          Это означает, что нужно взять файл php.ini-development и скопировать его с новым именем php.ini
          Чтобы исключить вопрос «куда копировать файл?», я специально указал имя файла с абсолютным путем. Файл копируется в тот же каталог D:\USR\php\, но с другим именем.

  10. Здравствуйте, Дмитрий! Делал всё точно по инструкции, только использовал другии версии программ и залил сервер не в папку «D:\USR», а в «D:\Server». Слава Богу, всё прошло более чем удачно! Странно, что у меня, у 12-летнего парня, не случилось не одной ошибки, в отличии от взрослых мужчин. Сейчас буду устанавливать MySQL. У меня назрел вопрос — что символизирует название папки «USR»? Большое спасибо!

    1. Добрый день, Илья!
      Рад, что помог в освоении.
      Взрослые мужчины, к сожалению, читают «через строчку». В последнее время это своеобразная болезнь, многим кажется, что у них ни на что нет времени и таким образом они бегло изучают материал, не читают длинные и, по их мнению, нудные статьи. Учитывая это, я стараюсь писать короткие инструкции без «воды», но, как видно из практики, даже это не спасает. Это серьезная проблема и она описана во многих статьях по психологии. Виной этому доступность информации, который не было ранее. Сейчас достаточно просто нагуглить или найти в википедии нужную информацию. Всем известен эффект википедии, когда заходишь почитать про что-то одно, а через несколько часов читаешь уже совсем другую статью, переходя по ссылкам. Такой эффект дал нам «специалистов» во всех сферах, которые считают, что знают всё, а на самом деле все эти «знания» просто перемшались в голове.
      Могу посоветовать не распыляться. Среднестатистическому человеку не свойственно знать всё. Не нужно стремиться изучить все вопросы. Гораздо правильное решение — это изучать конкретное направление, изучать более детально и качественно. Становясь в конкретной области хорошим достойным профессионалом. Чего я Вам и желаю!
      До этого абзаца дочитаете только Вы. Именование каталога в usr пошло из unix. В операционных системах этого семейства этот каталог содержит пользовательские приложения и библиотеки, не относящиеся к ядру операционной системы. Так как инструкцию я писал сначала для себя, чтобы не забыть, а потом выложил в блог, то каталог usr просто перекочевал из моей системы в эту инструкцию. Так что ничего особенного нет. Если Вы интересуетесь темой веб-разработки, то я могу порекомендовать Вам куда более удобный способ собрать веб-окружение на Windows-машине — используйте vagrant. Если совсем кратко: vagrant позволяет поднять виртуальную машину с линуксом и всем необходимым софтом на борту, включая Apache (Nginx), php, MySQL, рабочим каталогом которой является ссылка на ваш рабочий каталог с программным кодом. То есть локально в windows папке Вы ведете разработку кода, а браузером заходите на веб-сервер, который функционирует на виртуальной машине. Преимуществ очень много. Главное — повторяемость окружения. Вы уже разрабатываете на linux окружении и перенос кода на рабочий сервер в большинстве случаев не будет иметь проблем. Еще одно важное преимущество — Вы можете развернуть vagrant на любой машине (бывает, что нужно срочно поработать где-то на чужом компьютере) в точно такой же абсолютно идентичной конфигурации за считанные минуты и работать над кодом точно так же, как и на домашнем компьютере.
      Удачи и успехов Вам!

      1. Спасибо Вам, Денис, за жизненные и технические советы! Я знал, что папка «usr» связана с семейством Linux, но не обратил внимание, потому что было написано большими буквами. Случилось это, как Вы выше писали, из-за человеческой психологии. Да, я интересуюсь веб-разработкой. Хотел ещё уточнить, как работает vagrant? Её заливаешь на flash-накопитель, подключаешь его к usb-порту и запускаешь с любого компьютера? И если будет возможность, сделайте редактируемые комментарии, а то стыдно всех подряд Дмитриями называть…

        1. В папке с исходным кодом Вашего проекта создается специальный инициализационный файл Vagrantfile.
          Когда Вам нужно поработать на другом компьютере, Вам достаточно установить git, virtual-box и vagrant.
          При помощи git Вы загрузите свой исходный код из репозитория, затем перейдете в папку с кодом и выполните vagrant up — это запустит механизм создания и запуска виртуальной машины в соответствии с инициализационным файлом. Через 10 минут у Вас будет полностью рабочее окружение с почти настоящим виртуальным сервером под Linux.
          На самом деле такой способ очень хорош при разработке проекта группой разработчиков. Это дает гарантию, что у каждого разработчика полностью идентичное окружение, что исключает множество ошибок, которые разработчики могли бы допустить из-за неправильного или просто несогласованного развертывания окружение под Windows, как описано в этой статье. Например, у каждого разработчика может быть свой url к разрабатываемому проекту, в то время как при использовании vagrant url будет у всех разработчиков идентичный. Тоже самое касается версий пакетов и т.д. В общем, очень облегчает процесс работы над одним проектом. На практике у нашей команды были раньше проблемы, связанные с разнотипной настройкой окружения. Когда перешли на vagrant, эта категория проблем теперь вообще не существует.
          С комментариями в блоге беда. Был вынужден включить обязательную предмодерацию, потому как заваливает спамом.

                    1. На этапе запуска самого Apache Monitor или при запуске Apache через монитор?
                      Если второе, тогда запускайте Apache из оболочки (командной строки) cmd

                      httpd.exe

                      И читайте вывод — будет указана ошибка. Скорее всего просто синтаксическая в конфигах.
                      Вообще может быть какая угодно ошибка — все будет написано в выводе. Могут отсутствовать файлы модулей, который Вы пытаетесь подключить, может отсутствовать директория, которую указали в DocumentRoot или в Directory. Причин может быть очень много.

  11. Спасибо тебе, добрый человек!
    Это самая годная статья, которую мне удалось найти!
    А главной, до меня, наконец, дошло, как это работает!

    1. Да и апач то работает, но только до добавления строк
      LoadModule php7_module «d:/USR/php/php7apache2_4.dll»
      AddHandler application/x-httpd-php .php и тд.

      1. 1. По пути C:/php/php7apache2_4.dll точно есть этот файл?
        Если ДА, то:
        2. Остановите службу Apache2.4, если запущена, добавьте строки в конфиг и запустите руками сервер через командную строку:
        C:\Apache24\bin\httpd.exe
        Сообщения об ошибках скопируйте сюда.

        1. C:\Windows\system32>C:\Apache24\bin\httpd.exe
          httpd.exe: Syntax error on line 521 of C:/Apache24/conf/httpd.conf: Cannot load C:/php/php7apache2_4.dll into server: \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed \xf3\xea\xe0\xe7\xe0\xed\xed\xfb\xe9 \xec\xee\xe4\xf3\xeb\xfc.

          1. Наверное похоже на то, что где то синтакс в конфиг не точен. Не могу найти эту ошибку.

            1. В четырех строчках сложно допустить ошибку.
              По этому мануалу работают все разработчики в компании.
              Я только что повторил всё по инструкции: скачал заново все самые свежие версии, настроил и у меня всё работает.
              Еще раз проверьте пожалуйста наличие файла C:/php/php7apache2_4.dll ошибка говорит о том, что этого файла нет или он другой версии.
              Покажите здесь вывод двух команд:

              c:\Apache24\bin\httpd.exe -v
              c:\php\php.exe -r "phpinfo(1);"

              PS: не поленился, и погуглил вашу ошибку. Все обращения на форумах, которые нашел, были по причине неправильной версии РНР. В шестой раз прошу Вас убедиться, что вы скачали именно Thread Safe той же разрядности, что и Apache
              Версия PHP
              Ну и покажите все таки вывод команд, приведенных выше.

              1. Здравствуйте. Спасибо большое за помощь. Я все уже смогла исправить. Так и не поняла своей ошибки. В первый раз я скачивала PHP7..64 стабильную и по перемещении из архива файлов в папку c/php у меня каким то образом не оказалось файла php7apache2_4.dll, я его скачивала отдельно затем уже скидывала в папку php, но опять же, перезапуская апачи, вылезала ошибка 1. Затем я удалила все из апачи и скачала заново архив, убедилась в том, что php7apache2_4.dll присутствовал, скинула в php. И снова, ошибка 1. Еще раз скачала, удалила, вставила, перезапускаю и удивление! все работает. Еще раз, огромное спасибо за отзывчивость и за прекрасную статью!

                1. Доброе утро. Вот в этом и проблема. Вы скачали не ту версию. Файл php7apache2_4.dll отсутствует в Non Thread Safe. Просто добавить его, взяв из другого места, не получится. Эти версии различаются не только наличием этого файла.
                  Рад, что получилось в итоге :) Успехов в программировании!

    1. Добрый день.
      Запустите Apache из командной строки и скопируйте вывод сюда.

      На всякий случай убедитесь, что Вы скачали 64-разрядный Apache и 64-разрядный PHP Thread Safe. В инструкции на это сделан двойной акцент, но все равно бывает скачивают не те файлы, что нужно.
      Еще убедитесь в том, что Вы извлекли файлы из архива php точно в каталог D:\USR\php и в нем точно находится файл php7apache2_4.dll

      1. C:\Windows\system32>net start Apache24
        Неправильное имя службы.

        Для вызова дополнительной справки наберите NET HELPMSG 2185.

        C:\Windows\system32>

          1. C:\Windows\system32>net start Apache2.4
            Служба «Apache2.4» запускается.
            Не удалось запустить службу «Apache2.4».

            Специфическая ошибка службы: 1.

            Для вызова дополнительной справки наберите NET HELPMSG 3547.

            C:\Windows\system32>NET HELPMSG 3547

            Специфическая ошибка службы: ***.

            C:\Windows\system32>

            1. Покажите логи апача. Оба. Лучше загрузите куда нибудь на дропбокс, например, и дайте ссылку.
              Ссылка будет заблокирована антиспамом, не страшно, я все равно ее увижу.

                1. Судя по всему, Вы установили апач на диск С.
                  Command line: 'C:\\Apache24\\bin\\httpd.exe -d C:/Apache24'
                  Есть подозрение, что РНР тоже установлен на диск С, тогда измените везде путь к файлам и папкам в на правильный.

                  1. Совершенно верно, я установила и апачи и пиэйчпи на C диск. Везде, это в смысле только в hhtpd.conf?

                    1. Могли бы Вы посмотреть конфиг у меня? вроде бы все так, но все равно ошибка 1.

  12. Microsoft Windows [Version 10.0.10240]
    (c) Корпорация Майкрософт (Microsoft Corporation), 2015 г. Все права защищены.

    C:\Windows\system32>php -m
    [PHP Modules]
    bcmath
    calendar
    Core
    ctype
    date
    dom
    filter
    hash
    iconv
    json
    libxml
    mcrypt
    mysqlnd
    pcre
    PDO
    Phar
    Reflection
    session
    SimpleXML
    SPL
    standard
    tokenizer
    wddx
    xml
    xmlreader
    xmlwriter
    zip
    zlib

    [Zend Modules]

    1. Помогите пожалуйста решить ошибку.
      после добавления строк в hhtpd.conf вылетает это сообщение. не пойму что не так.

    1. Что же Вы, бедный, 6 дней мучились, читали инструкцию с кучей грамматических ошибок?
      Значит Ваша неспособность добавить в конфиг 4 строки — это проблема кучи моих грамматических ошибок? Ну ладно, потешьте свое самолюбие. Хотя я не понимаю, о какой куче идет речь, но раз грамматические ошибки Вас так выводят из себя, будьте добры не делать их сами. Перечитайте свои комментарии. Предложение начинается с большой буквы и заканчивается точкой, Илья. Стыдно этого не знать. Хамло.

  13. В файл D:\USR\apache\conf\httpd.conf добавляем строки:

    LoadModule php7_module «d:/USR/php/php7apache2_4.dll»
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir «D:/USR/php»
    1
    2
    3
    4
    LoadModule php7_module «d:/USR/php/php7apache2_4.dll»
    AddHandler application/x-httpd-php .php
    # Путь к файлу php.ini
    PHPIniDir «D:/USR/php»

  14. (C:\Windows\system32>php -m
    «php» не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.)

    1. Илья, Вы от двух имен пишите?
      >php -m
      «php» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.
      Эта проблема заключается в том, что Вы не добавили php в переменную path
      А вот < ?php phpinfo(); это Вы не установили РНР в качестве обработчика. Или установили, но не перезапустили Apache.
      Похоже на то, что Вы пропустили половину пунктов в инструкции.
      Попробуйте заново. Инструкция дает 100% рабочий вариант. Проверено десятками людей.

      1. нет. я ничего не пропускал. только про добавление 4х строк в php7 мне не понятно. куда их добавлять… понятно в какой файн, но в какое место то……

        1. именно с этого , пункта 3 по установке php7 и начинаются проблемы…. я уже ровно 6 дней все переделываю снова и ничего…… бесит…..

            1. Илья, по этой инструкции при мне устанавливали Apache и PHP мои сотрудники, никак не связанные с программированием. Странно что у разработчиков установка РНР вызывает такие трудности. В пункте 3 четко написано, в какой файл что добавлять. Добавляйте в конец файла да и все. В чем проблема, я не понимаю. Успехов Вам, Илья.

  15. 2. C:\Windows\system32>php -m
    «php» не является внутренней или внешней
    командой, исполняемой программой или пакетным файлом.

Добавить комментарий