Apache
Для поддержки файла .htaccess, который используется многими сайтами, необходимо установить и настроить веб-сервер Apache.
Устанавливаем apache и модуль для php:
apt install apache2 libapache2-mod-php
Заходим в настройки портов:
vi /etc/apache2/ports.conf
И редактируем следующее:
Listen 8080
#<IfModule ssl_module>
# Listen 443
#</IfModule>
#<IfModule mod_gnutls.c>
# Listen 443
#</IfModule>
* мы настроили прослушивание на порту 8080, так как на 80 уже работает NGINX. Также мы закомментировали прослушивание по 443, так как и он будет слушаться NGINX.
Теперь открываем настройку следующего модуля:
vi /etc/apache2/mods-available/dir.conf
И добавляем впереди индексных файлов index.php:
<IfModule dir_module>
DirectoryIndex index.php index.html …
</IfModule>
* если не указан конкретный скрипт, сначала веб-сервер пытается найти и запустить index.php, затем index.html и так далее.
Открываем основной конфигурационный файл для apache:
vi /etc/apache2/apache2.conf
Рядом с опциями Directory дописываем:
<Directory /var/www/*/www>
AllowOverride All
Options Indexes ExecCGI FollowSymLinks
Require all granted
</Directory>
* где Directory указывает на путь, для которого мы хотим задать настройки; AllowOverride — позволит переопределить все настройки с помощью файла .htaccess; Options задает некоторые настройки: Indexes разрешает списки каталогов, ExecCGI разрешает запуск cgi скриптов, Require all granted — предоставляет всем доступ к сайтам в данном каталоге.
Ниже допишем:
<IfModule setenvif_module>
SetEnvIf X-Forwarded-Proto https HTTPS=on
</IfModule>
* этой настройкой мы при получении заголовка X-Forwarded-Proto со значением https задаем переменную $_SERVER равную on. Данная настройки критична для функционирования некоторых CMS.
Запрещаем mpm_event:
a2dismod mpm_event
* по умолчанию, apache2 может быть установлен с модулем мультипроцессовой обработки mpm_event. Данный модуль не поддерживает php 7 и выше.
Разрешаем модуль мультипроцессовой обработки mpm_prefork:
a2enmod mpm_prefork
Разрешаем модуль php:
a2enmod php7.4
* в данном примере установлен php версии 7.4.
Разрешаем модуль setenvif:
a2enmod setenvif
Разрешаем модуль rewrite:
a2enmod rewrite
В процессе включения модулей, если мы видим «Module … already enabled», значит модуль уже включен.
Разрешаем автозапуск Apache и перезапускаем службу:
systemctl enable apache2
systemctl restart apache2
Открываем браузер и вводим в адресную строку http://<IP-адрес сервера>:8080. Мы должны увидеть привычную страницу:
* в разделе Server API мы должны увидеть Apache.
NGINX + Apache
Ранее мы настроили связку nginx + php-fpm. Теперь настроим nginx + apache. Открываем конфигурационный файл nginx для сайта по умолчанию:
vi /etc/nginx/sites-enabled/default
Находим наш настроенный location для php-fpm:
…
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
…
и меняем на:
…
location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
…
Проверяем и перезапускаем nginx:
nginx -t
Пробуем открыть в браузере http://<IP-адрес сервера> — должна открыться та же страница, что при проверке Apache (с добавлением 8080):
Apache Real IP
Запросы на apache приходят от NGINX, и они воспринимаются первым как от IP-адреса 127.0.0.1. На практике, это может привести к проблемам, так как некоторым сайтам необходимы реальные адреса посетителей. Для решения проблемы будем использовать модуль remoteip.
Создаем конфигурационный файл со следующим содержимым:
vi /etc/apache2/mods-available/remoteip.conf
<IfModule remoteip_module>
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 127.0.0.1/8
</IfModule>
Активируем модуль:
a2enmod remoteip
Перезапускаем apache:
systemctl restart apache2
Для проверки настройки открываем браузер и вводим в адресную строку http://<IP-адрес сервера>, где откроется наша страница phpinfo. В разделе Apache Environment мы должны увидеть внешний адрес компьютера, с которого обращаемся к серверу в опции REMOTE_ADDR.
Шаг 1 — Установка Apache и настройка файрвола
Веб-сервер Apache в настоящее время является одним из самых популярных веб-серверов в мире. Он хорошо документирован и используется значительную часть времени с момента создания сети Интернет, что делает его прекрасным выбором для хостинга веб-сайта.
Мы с легкостью можем установить Apache используя менеджер пакетов Ubuntu . Менеджер пакетов позволяет нам легко установить большую часть программного обеспечения из репозиториев Ubuntu. О том, как использовать , вы можете узнать из этой статьи.
Для начала установки выполним команды:
Поскольку мы используем команду , эти команды будут выполняться с привилегиями root. В процессе операционная система запросит ваш пароль пользователя.
После ввода пароля сообщит, какие пакеты будут установлены и сколько места они займут на диске. Нажмите Y и Enter для продолжения установки.
Настройка глобальной переменной ServerName
Далее мы добавим одну строку в для устранения предупреждений (warnings) о синтаксических ошибках. Несмотря на то, что это просто предупреждение и никакой проблемы не существует, если не задать глобальную переменную , вы будете получать следующее предупреждение об ошибке при проверке настройки конфигурации Apache:
Откройте главный конфигурационный файл в своём текстом редакторе командой:
Добавьте в конец файла переменную , указывающую на ваше основное доменное имя. Если для вашего сервера не настроено доменное имя, вы можете использовать публичный IP-адрес сервера:
Внимание
Если вы не знаете IP-адрес Вашего сервера, вы можете прочитать об этом в разделе .
/etc/apache2/apache2.conf
После этого сохраните и закройте файл.
Теперь можно проверить результат напечатав следующую команду:
Поскольку мы установили глобальную переменную , вы должны увидеть вывод следующего характера:
Перезапустите Apache для применения внесённых изменений:
Теперь можно приступать к настройке файрвола.
Настройка файрвола
Теперь убедимся, что ваш файрвол пропускает HTTP и HTTPS трафик. Мы будем исходить из предположения, что вы уже выполнили инструкции по первичной настройке сервера и включили файрвол UFW. Для начала убедимся, что UFW имеет профиль для Apache следующей командой:
Проверим настройку профиля , она должна разрешать трафик для портов 80 и 443:
Разрешим входящий трафик для этого профиля:
Проверить результат установки можно набрав в вашем веб-браузере публичный IP адрес вашего сервера (если вы еще не знаете, как найти публичный IP адрес вашего сервера, смотрите следующий раздел этой статьи):
Вы увидите страницу Apache, отображаемую по умолчанию для информации и целей тестирования. Она должна выглядеть похожим образом:
Если вы видите эту страницу, ваш веб-сервер корректно установлен и доступен через файрвол.
Как найти публичный IP адрес вашего сервера
Если вы не знаете публичный IP адрес вашего сервера, его можно определить несколькими способами. Обычно, это адрес, который вы используете для соединения с вашим сервером по SSH.
Определить этот адрес можно с помощью командной строки. Сначала используйте инструмент для получения вашего адреса набрав следующую команду:
Результатом выполнения этой команды будет одна или две строки, содержащие корректный адрес. Ваш компьютер, возможно, сможет использовать только один из них, поэтому попробуйте каждый вариант.
В качестве альтернативы можно узнать, как видит ваш сервер. Это можно сделать следующим образом:
В независимости от метода, который вы использовали для получения своего IP адреса, вы можете использовать этот IP адрес для доступа к серверу через адресную сроку веб-браузера.
Step 4 — Managing the Apache Process
Now that you have your web server up and running, let’s review some basic management commands using .
To stop your web server, run:
To start the web server when it is stopped, run:
To stop and then start the service again, run:
If you are simply making configuration changes, Apache can often reload without dropping connections. To do this, use the following command:
By default, Apache is configured to start automatically when the server boots. If this is not what you want, disable this behavior by running:
To re-enable the service to start up at boot, run:
Apache will now start automatically when the server boots again.
Установка PHP и PHP-FPM
Устанавливаем PHP и PHP-FPM:
apt install php php-fpm
* в каждой версии Ubuntu устанавливается своя нативная версия php. Но если нам нужно установить несколько версий PHP или конкретную версию, то использум инструкцию Установка разных версий PHP на Linux Ubuntu.
Разрешаем автозапуск php-fpm и запускаем его:
systemctl enable php7.4-fpm
* обратите внимание, что мы запустили php-fpm версии 7.4. Но установлена может быть и другая версия — ее можно узнать по версии php командой php -v
Настройка связки NGINX + PHP
Открываем файл для настройки виртуального домена по умолчанию:
vi /etc/nginx/sites-enabled/default
В секции location или server редактируем параметр index на следующее значение:
…
index index.php index.html index.htm;
…
* в данном случае мы сказали серверу сначала искать индексный файл index.php, затем остальные по списку.
А внутри секции server добавим следующее:
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
* где /var/www/html — корневой путь хранения скриптов; /run/php/php7.4-fpm.sock — путь до сокетного файла для взаимодействия с php-fpm
Обратите еще раз внимание, что если в нашей системе будет установлена другая версия php, необходимо внести соответствующую корректировку
Пример файла default:
server {
listen 80 default_server;
listen :80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
set $root_path /var/www/html;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $root_path$fastcgi_script_name;
include fastcgi_params;
fastcgi_param DOCUMENT_ROOT $root_path;
}
}
Проверяем правильность настроек nginx:
nginx -t
И перезагружаем его:
systemctl reload nginx
Открываем конфигурационный файл PHP-FPM:
vi /etc/php/7.4/fpm/pool.d/www.conf
Проверяем, что путь до сокетного файла такой же, как мы задали в настройках NGINX:
listen = /run/php/php7.4-fpm.sock
В противном случае меняем его и перезапускаем сервис:
systemctl restart php7.4-fpm
Теперь заходим в каталог хранения настроенного сайта:
cd /var/www/html
Создаем index.php со следующим содержимым:
vi index.php
<?php phpinfo(); ?>
Открываем браузере и переходим по адресу http://<IP-адрес сервера>. Мы должны увидеть сводную информацию по PHP и его настройкам:
* в данном примере используется php версии 7.4.
Global Configurations
There are some options you may want to modify in the Global Configuration:
Timeout
By default, this parameter is set to . This means that the server has a maximum of 300 seconds to fulfill each request.
This parameter can safely be dropped to something between and seconds.
KeepAlive
This option, if set to , will allow each connection to remain open to handle multiple requests from the same client.
If this is set to , each request will have to establish a new connection, which can result in significant overhead depending on your setup and traffic situation.
MaxKeepAliveRequests
This controls how many separate requests each connection will handle before dying. Keeping this number high will allow Apache to serve content to each client more effectively.
The default setting is set to . Setting this value to will allow Apache to serve an unlimited amount of requests for each connection.
KeepAliveTimeout
This setting specifies how long to wait for the next request after finishing the last one. If the timeout threshold is reached, then the connection will die.
This means that the next time content is requested, the server will establish a new connection to handle the request for the content that makes up the page the client is visiting. The default is set to .
After examining the contents of this configuration file, you can close out of it by pressing .
Virtual Host File
The default virtual host declaration can be found in a file called within the directory. You can learn about the general format of a virtual host file by examining this file.
Open the file with the following command:
/etc/apache2/sites-available/000-default.conf
The default virtual host is configured to handle any request on port , the standard HTTP port. This is defined in the declaration header where it says , meaning port on any interface.
However, this does not mean that it will necessarily handle each request to the server on this port. Apache uses the most specific virtual host definition that matches the request. If there was a more specific definition, it could supersede this definition. After examining the file, you can close out of it by pressing .
Virtual Host Configuration Options
The following options are set within the virtual host definition outside of any other lower level sub-declaration. They apply to the whole virtual host.
To start, open up the file within the directory:
/etc/apache2/conf-available/security.conf
Exit the file by pressing. After editing a configuration file, a prompt will ask you to confirm your changes. Press to save the changes to your file or press to discard them.
Within your virtual host file, you can add a directive that specifies the domain name or IP address that this request should handle. This is the option that would add specificity to the virtual host, allowing it to override the default definition if it matches the value.
Run the following command to open your virtual host file, making sure to replace the variable with your actual domain name:
Append to the directive:
/etc/apache2/sites-available/your_domain.conf
Likewise, you can also make the virtual host apply to more than one name by using the directive. This provides alternate paths to get to the same content. A good use case for this is adding the same domain, preceded by :
/etc/apache2/sites-available/your_domain.conf
The directive specifies where the content that is requested for this virtual host will be located. On Ubuntu, the default virtual host is set up to serve content out of the directory:
/etc/apache2/sites-available/your_domain.conf
Directory Definitions
Within the virtual host definition, there are definitions for how the server handles different directories within the file system. Apache will apply all of these directions in order from shortest to longest, so there is again a chance to override previous options.
Open the file with this command:
/etc/apache2/apache2.conf
The first directory definition applies rules for the , or root, directory. This will provide the baseline configuration for your virtual host, as it applies to all files served on the file system. Notice the directory configuration options, along with some helpful comments, contained within this file. This default configuration denies access to all content unless specified otherwise in subsequent directory definitions.
The directive can restrict or open access to different resources within your server.
The directive is used to decide whether an file can override settings if it is placed in the content directory. This is not allowed by default, but can be useful to enable in a variety of circumstances.
After examining the contents of this file, you can close out of it by pressing .
Alias and ScriptAlias Statements
Directory definitions are sometimes preceded by or directives.
Open your virtual host configuration file with this command and replace the variable with your domain name:
The directive maps a URL path to a directory path. For example, in a virtual host that handles requests to the following would allow access to content within when navigating to :
/etc/apache2/sites-available/your_domain.conf
The directive operates in the same way, but is used to define directories that will have executable components in them:
/etc/apache2/sites-available/your_domain.conf
Remember to define the directory with access privileges as discussed in the previous section. After completing your edits on the file, exit the file by pressing . If you made any changes to this file, press to save the changes to your file or press to leave the file as it was before any changes to the configuration.
Шаг 1 — Установка Apache и обновление брандмауэра
Веб-сервер Apache — один из самых популярных веб-серверов в мире. По нему имеется много документации и активное сообщество пользователей. Веб-сервер Apache широко использовался в течение большей части истории интернета, что делает его отличным стандартным выбором для размещения сайтов.
Установите Apache с помощью диспетчера пакетов в Ubuntu:
Если это первое использование в этом сеансе, вам нужно будет ввести пароль пользователя для подтверждения прав управления системными пакетами с помощью . Чтобы подтвердить установку Apache, нажмите , а затем .
После завершения установки вам нужно будет изменить настройки брандмауэра, чтобы разрешить трафик HTTP и HTTPS. Для этой цели в UFW можно использовать разные профили приложений. Чтобы вывести все доступные профили приложений UFW, запустите следующую команду:
Вывод будет выглядеть следующим образом:
Вот что означает каждый из этих профилей:
- Apache: этот профиль открывает только порт (нормальный веб-трафик без шифрования).
- Apache Full: этот профиль открывает порт 80 (нормальный веб-трафик без шифрования) и порт 443 (трафик с шифрованием TLS/SSL).
- Apache Secure: этот профиль открывает только порт (трафик с шифрованием TLS/SSL).
Сейчас лучше всего разрешить только соединения на порту , поскольку мы только что установили Apache, и у нас еще нет сертификата TLS/SSL, настроенного для разрешения трафика HTTPS на нашем сервере.
Чтобы разрешить только трафик на порту , используйте профиль :
Проверить изменения можно с помощью следующей команды:
Теперь брандмауэр пропускает трафик порта .
Вы можете провести быструю проверку, открыв в браузере публичный IP-адрес вашего сервера (если вы не знаете свой публичный IP-адрес, следуйте указаниям примечания в следующем разделе):
Вы увидите веб-страницу по умолчанию Ubuntu 20.04 Apache, предназначенную для информационных целей и целей тестирования. Она должна выглядеть следующим образом:
Если вы видите эту страницу, ваш веб-сервер правильно установлен и доступен через ваш брандмауэр.
Как определить публичный IP-адрес сервера
Если вы не знаете внешний IP-адрес вашего сервера, вы можете определить его с помощью нескольких способов. Обычно это адрес, который вы используете для подключения к серверу через SSH.
Существует несколько способов сделать это через командную строку. Во-первых, вы можете использовать инструменты для получения IP-адреса с помощью следующей команды:
В результате будут выведены две или три строки. Все указанные адреса верные, но ваш компьютер может использовать только один из них, так что вы можете попробовать каждый.
Также можно использовать утилиту для связи с внешним устройством. Вы увидите, как это устройство видит ваш сервер. Для этого нужно запросить ваш IP-адрес у конкретного сервера:
Вне зависимости от метода получения IP-адреса введите его в адресную строку браузера для просмотра страницы Apache по умолчанию.
Step 3 — Checking your Web Server
At the end of the installation process, Ubuntu 22.04 starts Apache. The web server will already be up and running.
Make sure the service is active by running the command for the init system:
As confirmed by this output, the service has started successfully. However, the best way to test this is to request a page from Apache.
You can access the default Apache landing page to confirm that the software is running properly through your IP address. If you do not know your server’s IP address, you can get it a few different ways from the command line.
Try writing the following at your server’s command prompt:
You will receive a few addresses separated by spaces. You can try each in your web browser to determine if they work.
Another option is to use the free tool. This is a website that, when accessed, returns your machine’s public IP address as read from another location on the internet:
When you have your server’s IP address, enter it into your browser’s address bar:
You will see the default Ubuntu 22.04 Apache web page as in the following:
This page indicates that Apache is working correctly. It also includes some basic information about important Apache files and directory locations.
Exploring the Apache2.conf File
The main configuration details for your Apache server are held in the file.
This file is divided into three main sections:
- Configuration for the global Apache server process
- Configuration for the default server
- Configuration of virtual hosts.
Open this file with your preferred text editor. The following example uses :
In Ubuntu and Debian, this file is used to configure global definitions. The configuration of the default server and virtual hosts are handled by using the directive.
The directive allows Apache to read other configuration files into the current file at the location that the statement appears. The result is that Apache dynamically generates an overarching configuration file on startup.
Found within this file are a number of different and statements. These directives load module definitions, the document, the specific configuration files in the directory, and the virtual host definitions in the directory:
/etc/apache2/apache2.conf
Шаг 4 — Тестирование работы PHP на вашем веб-сервере
Чтобы проверить, что наша система сконфигурирована должным образом, мы можем создать простой PHP скрипт. Назовём этот скрипт . Чтобы Apache нашел и обработал файл корректно, он должен быть сохранен в специальной директории, которая называется “web root”.
В Ubuntu 18.04 данная директория находится по адресу . Мы можем создать там файл введя следующую команду:
Откроется пустой файл. Введём в файл следующий текст, который является корректным PHP кодом:
info.php
После внесения изменений сохраните и закройте файл.
Теперь мы можем проверить, может ли веб-сервер корректно отображать контент, сгенерированный PHP скриптом. Для проверки нам просто нужно открыть данную страницу в веб-браузере. Вам снова потребуется публичный IP-адрес сервера.
Откроем этот адрес:
Страница, на которую вы попадете, должна выглядеть похожим образом:
Данная страница содержит информацию о вашем сервере с точки зрения PHP. Она полезна для отладки и чтобы удостовериться в корректности применения настроек.
Если все прошло успешно, значит ваш PHP работает корректно.
Вы, возможно, захотите удалить этот файл после теста, т.к. он может дать информацию о вашем сервере неавторизованным пользователям. Для удаления файла введите команду:
Вы всегда сможете заново создать этот файл, если вам снова потребуется доступ к этой информации.
Шаг 4 — Создание виртуального хоста для сайта
При использовании веб-сервера Apache вы можете создать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы настроим домен your_domain, но вы должны заменить это имя собственным доменным именем.
Примечание. Если вы используете DigitalOcean в качестве провайдера хостинга DNS, вы можете изучить нашу для получения подробных инструкций по настройке нового доменного имени и указать ваш сервер.
Создайте следующий каталог для your_domain:
Затем необходимо назначить права владения для директории с помощью переменной среды , которая будет использоваться для текущего системного пользователя:
После этого откройте новый файл конфигурации в директории Apache с помощью любого редактора командной строки. Мы будем использовать :
В результате будет создан новый пустой файл. Вставьте следующую пустую конфигурацию:
/etc/apache2/sites-available/your_domain.conf
Эта конфигурация указывает Apache обслуживать , используя в качестве корневого каталога. Если вы хотите протестировать Apache без доменного имени, вы можете удалить или закомментировать опции и , добавляя символ в начале строк опций.
Теперь вы можете использовать для активации нового виртуального хоста:
Возможно, вы захотите отключить сайт по умолчанию, устанавливаемый с Apache. Это требуется, если вы не используете собственное доменное имя, поскольку в таком случае конфигурация Apache по умолчанию перезаписывает ваш виртуальный хост. Чтобы отключить сайт Apache по умолчанию, введите следующую команду:
Чтобы убедиться в отсутствии ошибок синтаксиса в вашем файле конфигурации, выполните команду:
В заключение перезагрузите Apache, чтобы эти изменения вступили в силу:
Теперь ваш новый сайт активен, но корневой веб-каталог все еще пуст. Создайте файл в этом расположении, чтобы убедиться, что виртуальный хост работает, как ожидалось:
Внесите в файл следующее:
/var/www/your_domain/index.html
Откройте браузер и введите в адресную строку доменное имя вашего сервера или IP-адрес:
Страница будет выглядеть следующим образом:
Если вы видите эту страницу, это означает, что виртуальный хост Apache работает, как и ожидалось.
Вы можете оставить этот файл в качестве временной начальной страницы для вашего приложения, пока не настроите файл для его замены. Как только вы сделаете это, не забудьте удалить или переименовать файл из корневого каталога документов, так как он будет иметь приоритет перед файлом по умолчанию.
Примечание о в Apache
Если в Apache используются настройки по умолчанию, файл всегда будет иметь приоритет по сравнению файлом . Это полезно при настройке страниц техобслуживания приложений PHP посредством создания временного файла с информационным сообщением для посетителей. Поскольку эта страница будет иметь приоритет перед страницей , она станет начальной страницей приложения. После завершения обслуживания файл можно переименовать или удалить из корневого каталога документов, в результате чего восстановится обычная начальная страница приложения.
Если вы хотите изменить это поведение, отредактируйте файл и измените порядковое расположение файла в директиве :
/etc/apache2/mods-enabled/dir.conf
После сохранения и закрытия файла вам нужно будет перезагрузить Apache, чтобы изменения вступили в силу:
На следующем шаге мы создадим скрипт PHP для тестирования правильности установки и настройки PHP на вашем сервере.
Установка NGINX
Устанавливаем NGINX:
apt install nginx
Внесем изменение в файл nginx.conf:
vi /etc/nginx/nginx.conf
http {
…
server_names_hash_bucket_size 64;
….
}
* в данном примере мы сняли комментарий со строчки server_names_hash_bucket_size 64;* на практике, может встретиться ошибка could not build server_names_hash, you should increase server_names_hash_bucket_size: 32. Она возникает при большом количестве виртуальных серверов или если один из них будет иметь длинное название. Данная строка в конфиге исправит ситуацию.
Перезапускаем nginx:
systemctl enable nginx
systemctl reload nginx
* в процессе запуска мы можем увидим ошибку — возможно, в системе работает другой веб-сервер и занимает 80 порт. Как правило, это apache. Чтобы его выключить (на данном этапе он нам не нужен) вводим команду systemctl stop apache2.
Проверим работу веб-сервера. Открываем браузер и вводим в адресной строке http://<IP-адрес сервера>. В итоге мы должны увидеть заголовок «Welcome to nginx!»:
Если стартовая страница не загружается, проверяем состояние сервиса:
systemctl status nginx
Шаг 3 — Создание демо-страниц для каждого виртуального хоста
Наша структура директорий готова. Давайте создадим какой-нибудь контент для отображения посетителям наших сайтов.
Мы делаем это просто для демонстрации, потому страницы будет очень простыми. Мы собираемся создать по странице для каждого сайта.
Давайте начнем с . Мы можем создать и открыть файл в редакторе, введя команду:
В этом файле создайте простой HTML-документ, который показывает, к какому сайту он относится. Наш файл выглядит следующим образом:
Когда закончите, сохраните и закройте файл.
Вы может скопировать файл, чтобы использовать его как основу для второго сайта:
После этого вы можете открыть файл и исправить его содержимое:
Сохраните и закройте этот файл. Теперь у вас есть страницы, необходимые для проверки конфигурации виртуальных хостов.
Необходимые условия
Перед тем, как приступать, вам необходимо создать не-рутового пользователя, как описано в шагах 1-4.
Также у вас должен быть установлен Apache, чтобы проделать описываемые ниже шаги. Если он еще не установлен, вы можете сделать это при помощи команды :
После завершения этих шагов, мы можем начать настройку виртуальных хостов.
В этом руководстве мы создадим виртуальные хосты для доменов и . Мы будет ссылаться на них в руководстве, однако вам следует заменить их на свои домены при настройке ваших виртуальных хостов.
Для настройки доменных имен в DigitalOcean перейдите по этой ссылке. Если у вас нет свободных доменов, на которых можно потренироваться, вы можете использовать фиктивные доменные имена.
Чуть позже мы покажем, как отредактировать файл с локальными хостами для проверки конфигурации в случае, если вы используете фиктивные доменные имена. Это позволит протестировать конфигурацию с вашего домашнего компьютера, даже несмотря на то, что контент сайта не будет доступен по этому доменному имени другим пользователям.
Шаг 4 — Проверка функционала PHP
Чтобы убедиться, что PHP работает, мы создадим файл и получим к нему доступ к через браузер.
Создайте файл , содержащий вызов функции :
Чтобы просмотреть файл в браузере, откройте адрес . На странице появится перечень параметров конфигурации, используемых PHP. Результат будет выглядеть примерно так:
Убедитесь, что в Server API вверху страницы указано значение FPM/FastCGI. Раздел «Переменные PHP» в нижней трети страницы покажет, что параметр SERVER_SOFTWARE имеет значение Apache на Ubuntu. Это подтверждает, что модуль активен, и что Apache использует PHP-FPM для обработки файлов PHP.