Php

Php apache2: PHP: Apache 2.x на Unix системах

Содержание

PHP: Apache 2.x на Unix системах

I have successfully installed Apache 2.2.11 and PHP 5.2.8 under Red Hat 9.0 on a Pentium 166 with 32 MB of RAM.

While I used RH9, the worst possible case, these notes are probably good for RH-based distributions too (Red Hat Enterprise, Fedora, CentOS…)

If you want to install MySQL, it needs to be installed before PHP because PHP requires some libraries be available.

One think important when picking up a binary distribution of MySQL is to download all four packages: MySQL-server, MySQL-devel, MySQL-client and MySQL-shared. Note: The MySQL was bundled with PHP 4 but is not anymore in PHP 5.

Then you need to install Apache before PHP, because again PHP needs some libraries be available. I installed Apache 2 from source, using the very last version available, which is 2.2.11.

I installed PHP 5.2.8 from source. Here, I had a number of problems, but none which I could not resolve easily, some of them with a little help from different forums I found through Google.

Rembember: When it says you need a package named xyz and you notice there is also one named xyz-devel, grab it.

Most of the packages I got from:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
A similar page exists for other versions of Red Hat
and:
http://rpmfind.net/
This site has an updated version of some of the packages. Make sure to use only the one labeled for you version (in my case, Red Hat 9.0) or it will not likely work.

You already have glibc and glibc-common installed, but you need to get glibc-devel and glibc-kernheaders. Make sure to match glibc’s version (rpm -q glibc). Note: When it says kernel-header is a required dependency, that’s glibc-kernheader (not kernel-source). You will also need binutils (no need to match the version), and gcc and cpp (version must match).

You need zlib-devel (zlib is probably already installed, match the version you have).

If you install the GD extension, the actual library is already bundled with PHP 5 (use that one, they have done some changes in there, so don’t upgrade), but you will need to install libpng and libpng-devel (match version, or disable in configure if you don’t want) and libjpeg (no -devel with that one).

You will also need libxml2. Now there were a problem, because PHP requires libxml2 be 2.6 or greater, but Red Hat only supplied 2.5.4-1 for RH9 (if you have a more recent distro, you might be more lucky). After looking for a while, I decided to grab the source code for the most recent distribution at the official website (http://xmlsoft.org/) and compiled.

Hope my post is useful to someone. Please, share your experience when compiling/installing for your particular platform and setup. Remember how hard it’s been for you the very first time. I confess, my very first server installation took me nearly a week and I was glad others helped me.

Apache2 и PHP 7 установил. Как запустить php файлы? — Хабр Q&A

Ииииии внимание ОТВЕТ!
sudo apt-get install libapache2-mod-php7.0
Так что если кому надо пользуйтесь.

Устанавливал все такими коммандами:

sudo apt update
sudo apt install -y php7.2
sudo apt install php7.2-curl php7.2-gd php7.2-json php7. 2-mbstring php7.2-mcrypt
sudo apt install apache2 libapache2-mod-php7.2
sudo apt install mysql-server php7.2-mysql
sudo apt install phpmyadmin
sudo systemctl restart apache2.service

Как захожу в localhost вижу Apache2 Ubuntu Default Page
It works! . Видать работает. Если ввести
systemctl status apache2.service
вижу:

● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Пт 2018-04-20 17:28:05 MSK; 3h 11min 
     Docs: man:systemd-sysv-generator(8)
  Process: 1975 ExecStart=/etc/init.d/apache2 start (code=exited, statu
   CGroup: /system.slice/apache2.service
           ├─2296 /usr/sbin/apache2 -k start
           ├─2327 /usr/sbin/apache2 -k start
           ├─2328 /usr/sbin/apache2 -k start
           ├─2329 /usr/sbin/apache2 -k start
           ├─2330 /usr/sbin/apache2 -k start
           └─2331 /usr/sbin/apache2 -k start

апр 20 17:27:59 morilon systemd[1]: Starting LSB: Apache2 web server. ..
апр 20 17:27:59 morilon apache2[1975]:  * Starting Apache httpd web ser
апр 20 17:28:03 morilon apache2[1975]: [Fri Apr 20 17:28:03.216910 2018
апр 20 17:28:03 morilon apache2[1975]: AH00558: apache2: Could not reli
апр 20 17:28:05 morilon apache2[1975]:  *
апр 20 17:28:05 morilon systemd[1]: Started LSB: Apache2 web server.
lines 1-21/21 (END)

комманда sudo php -v
показывает

PHP 7.2.4-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Apr  5 2018 08:53:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.4-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Создал в директории /var/www/html/ файл index.php если просто щелкнуть на него мышкой откроется браузер и предложет файл сохранить, если опять же ввести localhost будет в браузере сообщение об ошибке — 503 Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
Apache/2.4.18 (Ubuntu) Server at localhost Port 80.
Собственно и вопрос как открывать файлы php? Хотелось бы освоить написание сайтов на PHP.

логи в /var/log/apache2

[Fri Apr 20 10:27:16.008033 2018] [mpm_prefork:notice] [pid 1906] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:27:16.008057 2018] [core:notice] [pid 1906] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 10:42:29.140511 2018] [mpm_prefork:notice] [pid 1906] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 10:42:30.228951 2018] [mpm_prefork:notice] [pid 4491] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:42:30.229010 2018] [core:notice] [pid 4491] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 10:46:59.120437 2018] [mpm_prefork:notice] [pid 4491] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 10:47:00.195116 2018] [so:warn] [pid 4692] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 10:47:00. 250121 2018] [mpm_prefork:notice] [pid 4693] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 10:47:00.250146 2018] [core:notice] [pid 4693] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 11:26:47.132960 2018] [mpm_prefork:notice] [pid 4693] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 13:15:54.807306 2018] [so:warn] [pid 2169] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 13:15:55.059374 2018] [mpm_prefork:notice] [pid 2170] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 13:15:55.059424 2018] [core:notice] [pid 2170] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 14:23:14.735637 2018] [mpm_prefork:notice] [pid 2170] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 17:28:03.293100 2018] [so:warn] [pid 2283] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 17:28:04.807520 2018] [mpm_prefork:notice] [pid 2296] AH00163: Apache/2. 4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 17:28:04.807576 2018] [core:notice] [pid 2296] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 20:53:21.062375 2018] [proxy:error] [pid 2328] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php7.2-fpm.sock (*) failed
[Fri Apr 20 20:53:21.062433 2018] [proxy_fcgi:error] [pid 2328] [client 127.0.0.1:55524] AH01079: failed to make connection to backend: httpd-UDS
[Fri Apr 20 21:09:04.081546 2018] [mpm_prefork:notice] [pid 2296] AH00169: caught SIGTERM, shutting down
[Fri Apr 20 21:57:49.211905 2018] [so:warn] [pid 2101] AH01574: module php7_module is already loaded, skipping
[Fri Apr 20 21:57:50.340125 2018] [mpm_prefork:notice] [pid 2110] AH00163: Apache/2.4.18 (Ubuntu) configured — resuming normal operations
[Fri Apr 20 21:57:50.340172 2018] [core:notice] [pid 2110] AH00094: Command line: ‘/usr/sbin/apache2’
[Fri Apr 20 22:06:04.940699 2018] [proxy:error] [pid 2141] (2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /var/run/php/php7. 2-fpm.sock (*) failed
[Fri Apr 20 22:06:04.940775 2018] [proxy_fcgi:error] [pid 2141] [client 127.0.0.1:39546] AH01079: failed to make connection to backend: httpd-UDS

включить php на apache2 (используя Ubuntu 16.04)

Я установил Apache2 в свою систему Ubuntu 16.04.1.

Я тоже хочу установить и активировать PHP7.0 на свой Webserver.

Я установил php и попытался активировать модуль в Apache2.

При перезапуске сервера я получаю:

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.

Когда я выполняю » systemctl status apache2.service, я получаю:

-- Unit apache2.service has begun starting up.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]:  * Starting Apache httpd web server apache2
Jan 30 12:19:58 tom-450-a141ng apache2[29920]:  *
Jan 30 12:19:58 tom-450-a141ng apache2[29920]:  * The apache2 configtest failed. 
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: Output of config test was:
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: [Mon Jan 30 12:19:58.942761 2017] [:crit] [pid 29935:tid 140264661432192] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. 
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: AH00013: Pre-configuration failed
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: Action 'configtest' failed.
Jan 30 12:19:58 tom-450-a141ng apache2[29920]: The Apache error log may have more information.
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Control process exited, code=exited status=1
Jan 30 12:19:58 tom-450-a141ng systemd[1]: Failed to start LSB: Apache2 web server.
-- Subject: Unit apache2.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit apache2.service has failed.
-- 
-- The result is failed.
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Unit entered failed state. 
Jan 30 12:19:58 tom-450-a141ng systemd[1]: apache2.service: Failed with result 'exit-code'.
Jan 30 12:19:58 tom-450-a141ng sudo[29892]: pam_unix(sudo:session): session closed for user root

Так что я больше не могу начать Apache.

Я везде искал решение.

Плз помогите

php

apache

ubuntu


6

Поскольку вам нужно установить php7, просто удалите установленный в данный момент с помощью-

sudo apt-get purge php*

а потом бежать

sudo apt-get -y install php7.0 libapache2-mod-php7.0

Затем вы можете установить другие модули в соответствии с вашими потребностями с помощью-

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache

systemctl перезапуск apache2


1

Ошибки «[Пн янв 30 12:19:58.942761 2017] [:Крит] [пид 29935:tid 140264661432192] Apache выполняется резьбовое MPM, но ваш PHP модуль не компилируется, чтобы быть ориентирован на многопотоковое исполнение. » описывает, что вы используете резьбовые MPM , то есть, событие или работник , но ваш php модуль mod_php, который зависит от установки, что не является потокобезопасным, поэтому вы можете использовать его только с prefork .

Если вы хотите использовать резьбовой MPM (что тоже хорошо, хорошая идея, и я тоже рекомендую ее), вы не должны использовать mod_php, вместо этого вы должны использовать php-fpm .

Вы найдете, как настроить его в официальном Apache Wiki

Установка apache2 + php + mysql + phpmyadmin на ubuntu 16.04

Решил поделиться с вами опытом установки софта на Ubuntu 16.04.

Напомню, все ниже описанные операции нужно выполнять под рутом (sudo su -).

обновляем софт

ставим Apache2

настроим Apache2

nano /etc/apache2/apache2.conf

## фиксим предупреждения при перезапуске Apache
ServerName localhost

## Включаем интерпретацию php
AddType application / x-httpd-php . php .phtml

## Устанавливаем кодировку UTF-8 по умолчанию
AddDefaultCharset UTF-8

nano /etc/apache2/apache2.conf

 

## фиксим предупреждения при перезапуске Apache

ServerName localhost

 

## Включаем интерпретацию php

AddType application / x-httpd-php .php .phtml

 

## Устанавливаем кодировку UTF-8 по умолчанию

AddDefaultCharset UTF-8

перезапускаем Apache

Открываем http://localhost/ и радуемся.

Настраиваем виртуальные хосты (VirtualHost)

(только для локальных хостов) создать файл vhosts.sh со следующим содержимым:

#!/bin/bash
echo «Creating Virtual Host»
cd /etc/apache2/sites-available
cat <<EOF >> «$1.conf»
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName $1
ServerAlias www.$1
DocumentRoot «/var/www/$1″

<Directory /var/www/$1>
Options All
AllowOverride All
</Directory>
</VirtualHost>
EOF
mkdir «/var/www/$1″
cd /etc/apache2/sites-enabled
ln -s «/etc/apache2/sites-available/$1. conf» «$1.conf»
echo «Editing /etc/hosts»
cat <<EOF >> «/etc/hosts»
127.0.0.1 $1
EOF
echo «Set permissions»
chmod 0777 -R «/var/www/$1″
echo «Restarting Apache2″
/etc/init.d/apache2 restart
echo «Finished!»
echo «Local address: /var/www/$1″
echo «Web address: http://$1»

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

#!/bin/bash

echo «Creating Virtual Host»

cd /etc/apache2/sites-available

cat <<EOF >> «$1.conf»

<VirtualHost *:80>

  ServerAdmin webmaster@localhost

  ServerName $1

  ServerAlias www.$1

  DocumentRoot «/var/www/$1»

  <Directory /var/www/$1>

    Options All

    AllowOverride All

  </Directory>

</VirtualHost>

EOF

mkdir «/var/www/$1»

cd /etc/apache2/sites-enabled

ln -s «/etc/apache2/sites-available/$1. conf» «$1.conf»

echo «Editing /etc/hosts»

cat <<EOF >> «/etc/hosts»

127.0.0.1       $1

EOF

echo «Set permissions»

chmod 0777 -R «/var/www/$1»

echo «Restarting Apache2»

/etc/init.d/apache2 restart

echo «Finished!»

echo «Local address: /var/www/$1»

echo «Web address: http://$1»

Даете права на выполнение:

chmod + x /var/www/vhosts.sh

chmod + x /var/www/vhosts.sh

Пример создания хоста:

sudo /var/www/vhosts.sh mysite.loc

sudo /var/www/vhosts.sh mysite.loc

Все последующие шаги по virtualhosts можно пропускать.

В /etc/hosts прописываем наши хосты: (nano /etc/hosts)

Переходим в папку /etc/apache2/

Смотрим, что внутри:

root @ HP: /etc/apache2 # ls -l
всего 88
-rw-r — r— 1 root root 7728 26 апреля 22:55 apache2. conf
-rw-r — r— 1 root root 7691 26 апреля 22:34 apache2.conf ~
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-available
drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-enabled
-rw-r — r— 1 root root 1782 3 января 16:48 envvars
-rw-r — r— 1 root root 31063 3 января 16:48 magic
drwxr-xr-x 2 root root 12288 26 апреля 22:27 mods-available
drwxr-xr-x 2 root root 4096 26 апреля 22:27 mods-enabled
-rw-r — r— 1 root root 320 7 января 15:23 ports.conf
drwxr-xr-x 2 root root 4096 26 апреля 22:43 sites-available
drwxr-xr-x 2 root root 4096 26 апреля 22:44 sites-enabled

root @ HP: /etc/apache2 # ls -l

всего 88

-rw-r — r— 1 root root 7728 26 апреля 22:55 apache2.conf

-rw-r — r— 1 root root 7691 26 апреля 22:34 apache2.conf ~

drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-available

drwxr-xr-x 2 root root 4096 26 апреля 22:52 conf-enabled

-rw-r — r— 1 root root 1782 3 января 16:48 envvars

-rw-r — r— 1 root root 31063 3 января 16:48 magic

drwxr-xr-x 2 root root 12288 26 апреля 22:27 mods-available

drwxr-xr-x 2 root root 4096 26 апреля 22:27 mods-enabled

-rw-r — r— 1 root root 320 7 января 15:23 ports. conf

drwxr-xr-x 2 root root 4096 26 апреля 22:43 sites-available

drwxr-xr-x 2 root root 4096 26 апреля 22:44 sites-enabled

В папке sites-available хранятся кофниги доступных хостов, а в sites-enabled ссылки на активные хосты.

Переходим в доступные хосты и создаем конфиг для mysite.loc. Кстати, если ваш дефолтный конфиг заканчивается на .conf тогда создавайте конфиги с расширением * .conf.

nano sites-available/mysite.conf

nano sites-available/mysite.conf

Пишем туда:

ServerName mysite.loc DocumentRoot /var/www/mysite.loc AllowOverride All

ServerName mysite.loc DocumentRoot /var/www/mysite.loc   AllowOverride All

Данной записи достаточно, чтобы работал ваш локальный хост. Теперь нужно создать ссылку на него в sites-enabled.

Ошибки: если в вас возникает ошибка и вы не можете создать ссылку.  Тогда это сделать можно следующей записью:

ln /etc/apache2/sites-available/mysite.conf /etc/apache2/sites-enabled/

ln /etc/apache2/sites-available/mysite.conf /etc/apache2/sites-enabled/

Теперь нужно только перезагрузить настройки Apache2:

service apache2 reload
## или, если необходимо
service apache2 restart

service apache2 reload

## или, если необходимо

service apache2 restart

Итак, Apache2 работает, первый хост добавлен!

ставим MySQL

MySQL содержится в репозиториях Ubuntu. Он разбит на несколько пакетов.

Для того чтобы установить MySQL сервер выполните команду:

sudo apt-get install mysql-server

sudo apt-get install mysql-server

При установке конфигурации скрипт запросит пароль администратора (root) базы данных.

Ставим PHP 5.6

Сначала нужно удалить все старые версии, если есть

sudo apt-get purge `dpkg -l | grep php | awk ‘{print $ 2}’ | tr «\ n» «» `

sudo apt-get purge `dpkg -l |  grep php |  awk ‘{print $ 2}’ | tr «\ n» «» `

добавляем PPA

sudo add-apt-repository ppa:ondrej/php

sudo add-apt-repository ppa:ondrej/php

обновляемся

ставим php

sudo apt-get install php5.6

sudo apt-get install php5.6

дополнительные модули

sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

sudo apt-get install php5.6-mbstring php5.6-mcrypt php5.6-mysql php5.6-xml

Смотрим версию:

sudo php -v

PHP 5. 6.26-1 + deb.sury.org ~ xenial + 1 (cli)

Copyright (c) 1997-2016 The PHP Group

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

sudo php -v

 

PHP 5.6.26-1 + deb.sury.org ~ xenial + 1 (cli)

 

Copyright (c) 1997-2016 The PHP Group

 

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

 

     with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies

ставим PhpMyadmin

apt-get install phpmyadmin

apt-get install phpmyadmin

Конфигурируем его под себя, — обозначаем что юзает Apache2, указываем пароль к БД, и пароль к phpmyadmin

Ошибки: http://localhost/phpmyadmin not found ubuntu

решение:

nano /etc/apache2/apache2. conf
## добавляем в конец файла
Include /etc/phpmyadmin/apache.conf

nano /etc/apache2/apache2.conf

## добавляем в конец файла

Include /etc/phpmyadmin/apache.conf

Ошибки: http://localhost/phpmyadmin HTTP ERROR 500

sudo apt-get install php-mbstring php-gettext
sudo phpenmod mcrypt
sudo phpenmod mbstring
sudo service apache2 restart

sudo apt-get install php-mbstring php-gettext

sudo phpenmod mcrypt

sudo phpenmod mbstring

sudo service apache2 restart

Если вы все выполнили правильно, то у вас будет готов настроен локальный сервер.

Если возникли проблемы, обращайтесь к нам за помощью, [email protected]

Установка Apache HTTP Server 2.2.22

Статья описывает процесс установки и первоначальной настройки на локальном компьютере, работающим под операционной системой Windows XP, прекрасно зарекомендовавшей себя связки программ, используемых при создании, как крупных, так и средних веб-проектов: Apache, MySQL, PHP и phpMyAdmin.

Авторы: Виктор Волков, Иван Шумилов

Содержание:


Сайт разработчика: http://www.apache.org/
Дистрибутив (Apache 2.2 Win32 Binary): http://www.apachelounge.com/download/
Прямая ссылка: httpd-2.2.22-win32.zip

Вот он – великий и ужасный. Сгубивший на своём веку множество начинающих веб-разработчиков, сложивших головы на настройке его конфигурационных файлов. 🙂 Но мы с вами люди, крепких нервов и стальных желудков — поэтому, поехали.

Начальная установка и настройка

Распакуйте архив дистрибутива в каталог C:\Apache2.

Откройте в текстовом редакторе файл «C:\Apache2\conf\httpd.conf», являющийся основным конфигурационным файлом сервера Apache.

Ну а теперь держитесь. Женщинам, старикам и детям просьба – дальше не читать. За психическое состояние людей, дочитавших статью до конца – авторы ответственности не несут. 🙂

Правка файла httpd.conf

  1. Для загрузки модуля mod_rewrite найдите и раскомментируйте (уберите в начале строки символ «#») данную строку:
    LoadModule rewrite_module modules/mod_rewrite. so
  2. Для загрузки PHP интерпретатора, в конец блока загрузки модулей необходимо добавить строку:
    LoadModule php5_module «C:/php/php5apache2_2.dll»
  3. Определите каталог содержащий конфигурационный файл PHP, добавив ниже следующую строку:
    PHPIniDir «C:/php»
  4. Найдите и раскомментируйте строку:
    ServerName www.example.com:80
    Отредактируйте ее следующим образом установив изначальное имя сервера:
    ServerName localhost:80
  5. Найдите строку:
    DocumentRoot «c:/Apache2/htdocs»
    Назначьте корневую директорию управления сайтами (немного позже мы ее создадим):
    DocumentRoot «C:/apache»
  6. Найдите данный блок:
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    </Directory>
    И замените его на нижеследующий:
    <Directory />
    Options Includes Indexes FollowSymLinks
    AllowOverride All
    Allow from all
    </Directory>
  7. Удалите или закомментируйте первоначальный блок управления директориями (он нам не понадобится), который без комментариев выглядит примерно так:
    <Directory «c:/Apache2/htdocs»>
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
  8. Найдите блок:
    <IfModule dir_module>
    DirectoryIndex index. html
    </IfModule>
    Замените его на:
    <IfModule dir_module>
    DirectoryIndex index.html index.htm index.shtml index.php
    </IfModule>
  9. Найдите строку:
    ErrorLog «logs/error.log»
    Замените на нижеследующую (в этом случае просматривать глобальный файл ошибок сервера будет удобнее):
    ErrorLog «C:/apache/error.log»
  10. Найдите строку:
    CustomLog «logs/access.log» common
    Замените на:
    CustomLog «C:/apache/access.log» common
  11. Для работы SSI (включения на стороне сервера) следующие строки, находящийся в блоке <IfModule mime_module>, необходимо найти и раскомментировать:
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
  12. Добавьте ниже, в тот же блок <IfModule mime_module>, две строки:
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
  13. И, наконец, найдите и раскомментируйте строки:
    Include conf/extra/httpd-mpm.conf
    Include conf/extra/httpd-autoindex. conf
    Include conf/extra/httpd-vhosts.conf
    Include conf/extra/httpd-manual.conf
    Include conf/extra/httpd-default.conf

Сохраните изменения и закройте файл «httpd.conf»

Теперь откройте файл «C:\Apache2\conf\extra\httpd-vhosts.conf» и произведите в нем следующие изменения.

Существующие блоки примеров виртуальных хостов необходимо удалить, и вставить только нижеследующее:
NameVirtualHost *:80

<VirtualHost *:80>
DocumentRoot «C:/apache/localhost/www»
ServerName localhost
ErrorLog «C:/apache/localhost/error.log»
CustomLog «C:/apache/localhost/access.log» common
</VirtualHost>

Сохраните изменения и закройте файл «httpd-vhosts.conf»

Настройка конфигурационных файлов завершена, теперь необходимо установить сервис Apache2.2.

Установка сервиса Apache2.2 в картинках

Запускаем командную строку и вводим в ней «C:\Apache2\bin\httpd.exe -k install»

Вот что мы должны увидеть при успешной установке сервиса Apache2. 2.

Если все прошло успешно, движемся дальше — устанавливаем ручной запуск сервиса Apache2.2 для чего проходим путь: «Start» («Пуск») → «Control Panel» («Панель управления») → «Administrative Tools» («Администрирование») → «Services» («Службы»), в открывшемся окне управления служб выбираем строку «Apache2.2» и делаем на ней двойной щелчок, после чего во вкладке «General» («Общие») выбираем ручной запуск сервиса — «Startup type: Manual» («Тип запуска: вручную»). Это необходимо сделать для того, чтобы лишние службы не загружали систему. Учитывая, что домашний компьютер используется не только для веб-разработок, но и для многих других нужд, ручной запуск и остановка, непостоянно используемых сервисов, является наиболее приемлемым.

Создание структуры каталогов виртуальных хостов

В корне диска необходимо создать каталог «apache» — в нем будут лежать ваши виртуальные хосты (домены), глобальный файл журнала ошибок «error.log» (создается программой при первом запуске, автоматически), глобальный файл доступа «access. log» (создается автоматически). В каталоге «apache» создаем еще одну пустую папку — «localhost», в которой, в свою очередь, создаем папку «www», именно в последней и надо будет держать наше добро в виде локальных скриптов. Такая, казалось бы странная структура каталогов, продиктована схожей схемой построения каталогов в системах Unix, и призвана упростить в дальнейшем ее понимание и использование.

Пример создания виртуального хоста

При необходимости установки собственных виртуальных хостов сделайте следующее:

Откройте файл «httpd-vhosts.conf», и создайте в нём блок, примерно, следующего содержания:
<VirtualHost *:80>
# Папка, в которой будет корень вашего хоста.
DocumentRoot «C:/apache/test.ru/www»
# Домен по которому вы сможете обращаться к виртуальному хосту.
ServerName test.ru
# Алиас (добавочное имя) домена.
ServerAlias www.test.ru
# Файл, в который будут записываться ошибки.
ErrorLog «C:/apache/test.ru/error. log»
# Файл журнала доступа к хосту.
CustomLog «C:/apache/test.ru/access.log» common
</VirtualHost>

Затем в каталоге «apache», создайте папку «test.ru» (прямо так, с точкой), в которой, в свою очередь, создайте папку «www».

Следующий шаг создания виртуального хоста – это изменение файла C:\WINDOWS\system32\drivers\etc\hosts операционной системы. Откройте данный файл и добавьте в него две строки:
127.0.0.1 test.ru
127.0.0.1 www.test.ru

Теперь запустите сервер Apache выполнив в командной строке «C:\Apache2\bin\httpd.exe -k start», откройте браузер, введите в адресной строке «test.ru» или «www.test.ru» и вы окажетесь в своем виртуальном хосте. Только будьте внимательны, теперь вы сможете попасть на оригинальный сайт с именем виртуального хоста («www.test.ru», если таковой существует), только закомментировав либо удалив строку: «127.0.0.1 www.test.ru», в вышеупомянутом файле «hosts».

Документация Apache, при запущенном сервере, доступна по адресу http://localhost/manual/

Остановить работу Apache можно выполнив в командной строке «C:\Apache2\bin\httpd. exe -k stop». При необходимости перезагрузить Apache, выполните в командной строке «C:\Apache2\bin\httpd.exe -k restart».

Установка и настройка веб-сервера Apache – завершена.

Создание пакетных файлов для запуска и остановки сервисов

Согласитесь, что вручную редактировать файл «hosts» при каждом запуске сервисов – это не удобно, поэтому для более удобного, одновременного запуска сервисов Apache, MySQL, и изменения файла «hosts» мы создадим два пакетных файла: на запуск и остановку, которые будут выполнять всю рутинную работу автоматически.

При использовании виртуальных хостов необходимо создать в директории C:\apache два файла: vhosts-off.txt – содержащий изначальное содержимое файла «hosts» и vhosts-on.txt – содержащий все виртуальные хосты. Обратите внимание, что при создании новых виртуальных хостов вам необходимо будет добавлять их в файл vhosts-on.txt, а не в C:\WINDOWS\system32\drivers\etc\hosts. Посмотрите на примеры ниже.

Файл vhosts-off. txt (может содержать одну единственную строку):
127.0.0.1 localhost

Пример файла vhosts-on.txt с виртуальными хостами www.test.ru и test.ru:

127.0.0.1 localhost
127.0.0.1 www.test.ru
127.0.0.1 test.ru

В той же директории C:\apache, создайте два пакетных файла: start-webserver.bat – для запуска сервисов и подмены файла «hosts», и stop-webserver.bat – для остановки сервисов и очистки файла «hosts».

Файл запуска start-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-on.txt goto no_vhosts
echo Create virtual hosts:
copy /v /y C:\apache\vhosts-on.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET start Apache2.2
NET start MySQL

Файл остановки stop-webserver.bat:

@echo off
echo.
if not exist C:\apache\vhosts-off.txt goto no_vhosts
echo Restore hosts file:
copy /v /y C:\apache\vhosts-off.txt C:\WINDOWS\system32\drivers\etc\hosts
echo.
:no_vhosts
NET stop Apache2. 2
NET stop MySQL

В случае если вы не используете виртуальные хосты или хотите запустить сервисы без подмены файла «hosts», просто уберите из директории C:\apache файлы vhosts-on.txt и vhosts-off.txt.

Одновременно с сервисами удобно запускать программу Apache Monitor, отображающую в системном лотке состояние сервера Apache, для чего можно создать еще один пакетный файл «start-webserver-monitor.bat», содержание которого аналогично файлу «start-webserver.bat» с добавлением в самый конец следующей строки:

start «» «C:\Apache2\bin\ApacheMonitor.exe»

Теперь для запуска всего инструментария вам понадобится запустить файл «start-webserver-monitor.bat», или «start-webserver.bat», а для остановки «stop-webserver.bat». При желании вы можете переименовать эти файлы, переместить их в любое другое место из папки «C:\apache», либо создать на данные файлы ярлыки, например, на рабочий стол.

Установка и отладка веб-сервера для сайта в UBUNTU