Как запустить php файл в браузере linux
Перейти к содержимому

Как запустить php файл в браузере linux

  • автор:

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

Настройка веб-сервера для локального веб-сайта в Ubuntu является не простой задачей, но как это делать должен знать любой профессиональный веб-разработчик.

LAMP – что это

LAMP – это сочетание технологий Linux, Apache, MySQL, PHP, которые используются программистами для запуска интернет ресурсов, как личной разработки, так и проектов, функционирующих на известных CMS.

Как установить APACHE

Apache представляет собой веб-сервер с открытым исходным кодом . Его функционирование может быть описано следующим образом: На любой из поступающих запросов, данный сервер выдает ответ соответствующий запросу. Другими словами говоря, обратившись к человеку с каким-то вопросом, он может, как дать ответ, так и нет. Однако, задав человеку вопрос, на который он дать ответ не в силах, прозвучит ответ: не знаю. Аналогичным образом функционирует и Apache, например, сервер покажет 404 ошибку, если вы обращаетесь к несуществующей странице. Установка Apache производится посредством команды через терминал: sudo apt-get install apache2 Если вы совсем новичок в Linux/Ubuntu, вы можете пройти курс Linux/GIT и вы получите базовые знания по командам Linux, а также научитесь работать с контролем версий кода GIT и сервисом BitBucket. По завершению установки, следует проверить правильность функционирования веб-сервера. Сделать это можно при помощи введения ip адреса сервера в любом из существующих браузеров. В случае, если пользователь производил установку Apache локально, к примеру, на домашний ПК, ему следует ввести в браузере следующие цифры: 127.0.0.1. После этого должна будет отобразиться страница приветствия Apache.

Как установить PHP

Пользователь, который хочет, установить PHP на свой сервер, должен ввести следующую команду: sudo apt-get install php5 php5-common libapache2-mod-php5 php5-cli php5-cgi php5-mysql По завершению выполнения команды, необходимо ввести в терминале php -v . Благодаря этой команде должна будет отобразиться текущая версия php:

PHP 5.5.9-0ubuntu0.16.04.1 (cli) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v5.5.9-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies

Если пользователь наблюдает это в своем терминале, то это говорит о том, что php установлен правильно и готов к работе. Кстати, если вы плохо знакомы с языком программирования PHP, посмотрите эти уроки PHP для начинающих с нуля — это самые основы PHP программирования.

Как установить MYSQL

MySQL представляет собой базу данных, предусмотренную для хранения информации веб-ресурса. SQL является языком запросов, которые производятся непосредственно к БД MySQL. Чтобы произвести установку MySQL пользователю необходимо ввести следующую команду: sudo apt-get install mysql-server mysql-client В ходе установки БД нужно будет придумать логин и ввести пароль, для локального пользователя можно задать логин root в БД MySQL. После, потребуется повторное введение данного пароля, поэтому придуманный пароль лучше записать на листок бумаги или в блокнот. Чтобы пользователю было комфортней работать с БД MySQL следует произвести установку графического веб-клиента — PhpMyAdmin. Для этого вводят следующую команду: sudo apt-get install phpmyadmin В ходе установки данного клиента пользователь может произвести отладку связки веб-сервера и phpmyadmin в автоматическом режиме. По завершению установки и отладки phpmyadmin следует произвести проверку функциональности. Сделать это можно при помощи введения ip адреса веб-сервера, но при этом необходимо и в конце дописать phpmyadmin через слеш. http://127.0.0.1/phpmyadmin/ Если вы все сделали правильно, вы должны увидеть страницу авторизации phpmyadmin: Заполните форму авторизации и введите логин и пароль, которые вы задавали на предыдущем этапе. Кстати, если вы хотите научиться работать с базой данных MySQL (MariaDB), составлять SQL-запросы — посмотрите уроки MySQL для начинающих в курсе программирования PHP/MySQL.

Как настроить конфиг APACHE

Как правило, когда пользователь занимается созданием сайта, он хочет иметь возможность просмотра его ресурса на своем ПК в таком виде, как видят его в браузере другие люди, то есть чтобы локальный сайт был доступен не по IP-адресу, а через доменное имя. В этом случае обычной установки Apache будет недостаточно и для этого потребуется произвести настройку конфига Apache2. На первом этапе отладки конфига пользователь должен создать каталог для своего интернет проекта на сервере. Сделать это можно перейдя в основной каталог apache: cd /var/www/html/
Затем, создайте каталог для вашего сайта командой: sudo mkdir superdomain Чтобы пользователь мог корректировать каталог, следует поменять имя владельца каталога с пользователя root на свое имя пользователя или, предпочтительно, на имя пользователя для apache. Выполнить это можно посредством введения в терминале следующих команд: cd .. Затем введите команду: sudo chown -R user:user superdomain Теперь перейдите в ваш каталог superdomain: cd superdomain Введите команду: nano index.php После ввода команды выше, вы откроете текстовый редактор nano. Давайте напишем простой PHP-скрипт:

Для того, чтобы сохранить изменения в редакторе nano, нажмите сочетание клавиш ctr+x и букву y, после этого нажмите на клавишу enter. Далее рассмотрим, как отладить конфиг apache2. Произвести настройку можно посредством введения команды: sudo nano /etc/apache2/sites-available/superdomain.com.conf

и вставить текст следующего содержания:

 ServerAdmin [email protected] ServerName superdomain.com DocumentRoot /var/www/html/superdomain Options FollowSymLinks AllowOverride All Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog $/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog $/access.log combined 

На следующем этапе пользователю необходимо выполнить нажатие сочетание клавиш ctr+x и букву y, а после нажать enter. После этого следует перейти в каталог apache, посредством введения следующей команды: cd /etc/apache2/sites-available/ и ввести еще одну команду: sudo a2ensite superdomain.com.conf В случае правильного введения команд на экране отобразится следующее:

Enabling site superdomain.com. To activate the new configuration, you need to run: service apache2 reload

Чтобы запустить новый конфиг apache на веб-ресурсе необходимо ввести команду: service apache2 reload Свидетельством правильного запуска команды станет полное отсутствие ошибок. На последнем этапе запуска веб-ресурса на своем локальном домене пользователю необходимо в документе hosts ввести ip-адрес сервера и указать имя своего локального домена: 127.0.0.1 superdomain.com
Сам файл hosts в Linux находится в

/etc/hosts

в Windows вы его сможете найти по такому адресу:

C:\Windows\System32\drivers\etc\hosts 

Все готово! Теперь осталось лишь сохранить файл hosts, и в браузере указать имя своего локального домена superdomain.com. В результате на экране должно будет отобразиться результат выполнения файла index.php.

Выводы

Умение устанавливать и настраивать веб-сервер для сайта вам очень пригодится как в операционной системе Ubuntu, так и в Windows. О том как устанавливать и настраивать локальный сервер для сайта всего несколькими кликами мыши в Windows 10, вы можете посмотреть видеоуроки PHP в курсе PHP/MySQL.

  • Интерактивные уроки и курсы программирования и создания сайтов (дистанционное обучение) помогут вам в игровой форме изучить основы языков программирования веб-разработки и веб-программирования с нуля. Обучение онлайн 24/7.

Установка LEMP

url image

Операционная система устанавливается на сервер автоматически — её можно выбрать при заказе сервера. К семейству Linux относятся CentOS , Debian , Ubuntu . От операционной системы зависит то, какие версии PHP и MySQL/MariaDB будут доступны для установки. Это, в свою очередь, может быть важно для CMS сайтов — такие параметры могут быть указаны в системных требованиях для установки.

Узнать, какие версии программного обеспечения доступны для установки в наших шаблонах операционных систем, можно в статье:

Какую операционную систему выбрать?

Связку LEMP можно установить автоматически, выбрав при заказе сервера рецепт LAMP и выполнив донастройку (нужно отключить Apache, запустить php-fpm и настроить конфигурационный файл nginx).

Для начала установки подключитесь к серверу по SSH. Процесс настройки проходит в три этапа:

  • Установка веб-сервера Nginx
  • Установка сервера баз данных
  • Установка PHP и дополнительных расширений

Установка веб-сервера Nginx

Nginx позволяет обеспечить стабильно высокую производительность сайтов даже при очень высоких нагрузках. Он популярен для обеспечения работы высоконагруженных веб-сервисов — используется Yandex, Mail.ru, VKontakte, Habr и др.

Важно помнить, что многие популярные CMS (например, WordPress) заточены под работу с Apache, поэтому некоторые их функции не будут работать под Nginx-ом без специфических настроек.

Установка выполняется в один шаг:

apt update && apt -y install nginx
yum -y install nginx

После установки проверим, что веб-сервер запустился.

systemctl status nginx

На Ubuntu и Debian службы после установки запускаются и добавляются в автозапуск автоматически, на Centos это нужно сделать вручную. Запустить веб-сервер и настроить его автоматический старт после загрузки системы можно следующим образом:

systemctl start nginx && systemctl enable nginx

Дополнительно можно настроить веб-сервер на автоматический перезапуск в случае аварийного отключения службы. Для этого добавим отдельную директорию и создадим в ней наш новый конфигурационный файл:

mkdir -p /etc/systemd/system/nginx.service.d/ touch /etc/systemd/system/nginx.service.d/restart.conf

Откроем файл в любом консольном текстовом редакторе:

nano /etc/systemd/system/nginx.service.d/restart.conf

В качестве примера приведён редактор nano . Для сохранения файла нажмите сочетание Ctrl + O , проверьте имя файла и нажмите Enter . Для выхода из файла нажмите сочетание Ctrl + X .

vim /etc/systemd/system/nginx.service.d/restart.conf

В качестве примера приведён консольный редактор vim . Для входа в режим редактирования на клавиатуре нажмите I . Для выхода из режима редактирования нажмите Esc . Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

И добавим туда следующие строки:

[Service] Restart=always RestartSec=5s

Сохраним файл и перезагрузим менеджер служб:

systemctl daemon-reload

На CentOS после установки нужно отредактировать настройки встроенного фаервола:

firewall-cmd --permanent --zone=public --add-service=http --add-service=https firewall-cmd --reload

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

firewall-cmd --list-all

В блоке Services в списке должны отображаться http и https .

Чтобы проверить, что веб-сервер заработал и может обрабатывать запросы к серверу, введите IP-адрес вашего сервера в адресной строке браузера. Откроется приветственная страница Nginx:

Для Debian и Ubuntu:

Установка сервера баз данных

В стеке LEMP функции сервера баз данных могут выполнять MariaDB или MySQL.

Установка MariaDB

MariaDB — сервер баз данных с открытым исходным кодом. Процесс установки состоит из двух шагов: установки и запуска автонастройки безопасности.

apt -y install mariadb-server mariadb-client
yum -y install mariadb mariadb-server

Чтобы проверить, что сервер баз данных запустился и работает без ошибок, выполните команду:

systemctl status mariadb

Если сервис не запустился автоматически (статус dead ), активируйте и добавьте службу в автозагрузку вручную:

systemctl start mariadb && systemctl enable mariadb

После установки можно проверить версию установленного сервера баз данных:

mariadb --version
mysql --version

Для редактирования параметров безопасности запустите встроенный инструмент настройки:

mysql_secure_installation

C его помощью вы сможете отключить небезопасные опции, которые по умолчанию включены для работы тестового режима после установки. На первом шаге скрипт предложит ввести текущий пароль root от сервера баз данных. По умолчанию после установки он не задан, достаточно нажать Enter . После этого будет предложено подтвердить или отклонить дополнительные настройки безопасности — для согласия введите y (yes), для отказа — любую другую клавишу и нажмите Enter . Рекомендуется подтвердить все параметры, так как они воплощают базовые рекомендации по безопасности сервера БД.

  • Новый пароль root для сервера баз данных (по умолчанию отсутствует) — потребуется ввести и подтвердить новый пароль;
  • Удаление анонимных пользователей (один присутствует по умолчанию для тестового режима);
  • Отключение удалённого доступа для пользователя root;
  • Удаление тестовой базы данных и доступов к ней;
  • Перезагрузка таблиц для применения новых параметров.

Установка MySQL

MySQL — самый популярный сервер баз данных. Установка состоит из двух этапов:

    Установка самого сервера БД:
    Ubuntu и Debian:

apt -y install mysql-server
yum -y install mysql-server

После установки нужно проверить, запустился ли MySQL:

systemctl status mysql
systemctl status mysqld

При необходимости — запустить его и добавить в автозапуск вручную:

systemctl start mysql && systemctl enable mysql
systemctl start mysqld && systemctl enable mysqld

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

mysql --version

По умолчанию после установки сервер MySQL имеет несколько небезопасных опций. Чтобы их отключить, нужно запустить автонастройку безопасности:

mysql_secure_installation

В процессе система предложит настроить компонент для проверки надёжности паролей, запросит новый пароль для пользователя root сервера MySQL. После этого будет предложено подтвердить или отклонить дополнительные настройки безопасности — для согласия введите y (yes), для отказа — любую другую клавишу и нажмите Enter . Рекомендуется подтвердить все параметры, так как они воплощают базовые рекомендации по безопасности сервера БД. Список настраиваемых параметров по порядку:

  • Активация модуля проверки надёжности паролей
  • Выбор уровня надёжности ( 0 — слабый / 1 — средний/ 2 — сильный)
  • Ввод и подтверждение нового пароля для root -пользователя MySQL
  • Удаление анонимных пользователей
  • Отключение удалённого подключения к БД для root -пользователя MySQL
  • Удаление открытой тестовой базы данных
  • Перезагрузка таблиц привилегий для применения новых настроек

Установка PHP и дополнительных расширений

Проверить доступную для установки версию PHP можно командой:

apt show php
yum info php

Знать её нужно для корректной установки нужных компонентов на следующем шаге (для Ubuntu и Debian). В примере версия PHP — 7.4 . Вам при установке нужно заменить её в команде на ту, которая доступна для вашей операционной системы.

Если версия вам подходит, после этого можно перейти к установке:

apt -y install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl php7.4-zip
yum -y install php-fpm php-mysqlnd php-cli php-json php-mbstring php-xml php-gd php-curl php-zip

Дополнительные расширения PHP, доступные для установки, можно посмотреть командой:

    Ubuntu и Debian: Для конкретной версии:

apt-cache search php | egrep '7.4' | grep module

Версии по умолчанию:

apt-cache search php | egrep 'module' | grep default
yum search php | grep module

Установить выбранный модуль можно командой:

apt -y install php7.4-soap
yum -y install php-soap

После установки PHP запускаем менеджер процессов php-fpm и добавляем его в автозагрузку:

systemctl start php7.4-fpm && systemctl enable php7.4-fpm
systemctl start php-fpm && systemctl enable php-fpm

Проверим установленную версию PHP:

php -v

После установки PHP нужно отредактировать настройки php-fpm по умолчанию, предназначенные для веб-сервера Apache:

nano /etc/php/7.4/fpm/pool.d/www.conf
vim /etc/php-fpm.d/www.conf

В файле ищем блок кода Unix user/group of processes и меняем apache на www-data для Debian и Ubuntu и nginx для CentOS.

Остался последний штрих. Открываем для редактирования конфигурационный файл PHP:

nano /etc/php/7.4/fpm/php.ini
vim /etc/php.ini

В файле ищем раздел Paths and Directories (он почти в самом конце файла), внутри находим параметр cgi.fix_pathinfo . Нужно раскомментировать его (удалить «;» в начале строки) и изменить значение с «1» на «0» .

После этого сохраняем файл и перезапускаем веб-сервер, чтобы новые настройки применились:

systemctl reload nginx && systemctl reload php7.4-fpm
systemctl reload nginx && systemctl reload php-fpm

Настройка базового конфигурационного файла для сайта

Чтобы веб-сервер мог корректно обрабатывать запросы к сайтам, осталось добавить базовый конфигурационный файл вместо установленного по умолчанию. Для этого:

    Удаляем конфигурационный файл default , использующийся по умолчанию, и создаём его замену, default.conf :
    Ubuntu и Debian:

unlink /etc/nginx/sites-enabled/default touch /etc/nginx/sites-available/default.conf ln /etc/nginx/sites-available/default.conf /etc/nginx/sites-enabled/default.conf
touch /etc/nginx/conf.d/default.conf
nano /etc/nginx/sites-available/default.conf
vim /etc/nginx/conf.d/default.conf

Скопируйте в файл следующий блок настроек:

server < listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / < try_files $uri $uri/ =404; >location ~ \.php$ < fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; > location ~ /\.ht < access_log off; log_not_found off; deny all; >>
server < listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html/; index index.php index.html index.htm index.nginx-debian.html; location / < try_files $uri $uri/ =404; >location ~ \.php$ < fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; >location ~ /\.ht < access_log off; log_not_found off; deny all; >>

Осталось проверить, что в конфигурационном файле отсутствуют ошибки, и перезапустить nginx для применения настроек:

nginx -t

systemctl reload nginx

Проверка параметров PHP через phpinfo()

Чтобы вывести подробный список параметров PHP, можно использовать функцию phpinfo() . Это может пригодиться в том числе при отладке настроек сайта после размещения на сервере.

Для начала перейдите в корневую директорию вашего сайта. Если сайта ещё нет, по умолчанию это каталог /usr/share/nginx/html . Создайте файл с именем info.php и откройте его в любом консольном текстовом редакторе:

touch /usr/share/nginx/html/info.php vim /usr/share/nginx/html/info.php

В качестве примера приведён консольный редактор vim . Для входа в режим редактирования на клавиатуре нажмите I . Для выхода из режима редактирования нажмите Esc . Для сохранения и выхода из файла введите сочетание :wq Для выхода без сохранения введите :q!

В файл вставьте следующую конструкцию:

Теперь при переходе по ссылке типа http:// IP-адрес-сервера /info.php вы увидите полный список параметров PHP на вашем сервере:

Не забудьте удалить этот файл после проверки. Если оставить его в открытом доступе, информация из него может быть использована злоумышленниками для атак на ваш сайт.

rm /usr/share/nginx/html/info.php

На этом установка LEMP завершена — можно переходить к настройке сайта.

Как установить и настроить phpMyAdmin в Ubuntu 20.04

Рассказываем, как настроить сервер phpMyAdmin на операционной системе Ubuntu 20.04 на облачном сервере, как работать с пользователями и осуществлять начальные настройки безопасности.

Введение

Данная инструкция рассказывает о процессе установки инструмента phpMyAdmin в операционной системе Ubuntu 20.04. Установку выполняем в облачной инфраструктуре Selectel. Нам потребуется настроенный сервер LAMP. О том, как его развернуть, написали в статье.

PhpMyAdmin — бесплатный инструмент, созданный на языке php, для администрирования MySQL с использованием браузера.

В комплекте — огромный пул возможных операций с MySQL и MariaDB. На данный момент актуальная стабильная версия — phpMyAdmin 5.1.1.

Установка phpMyAdmin

Первый шаг — установка модуля расширения php-mbstring. Mbstring предоставляет функции для работы с многобайтными строками, которые облегчают обработку многобайтовых кодировок в php.

sudo apt install php-mbstring -y 

Вывод успешной установки:

vlan48@apachi:~$ sudo apt install php-mbstring -y [sudo] password for vlan48: Reading package lists. Done Building dependency tree Reading state information. Done The following additional packages will be installed: libonig5 php7.4-mbstring The following NEW packages will be installed: libonig5 php-mbstring php7.4-mbstring 0 upgraded, 3 newly installed, 0 to remove and 27 not upgraded. Need to get 541 kB of archives. After this operation, 1709 kB of additional disk space will be used. Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 libonig5 amd64 6.9.4-1 [142 kB] Get:2 http://mirror.selectel.ru/ubuntu focal-updates/universe amd64 php7.4-mbstring amd64 7.4.3-4ubuntu2.6 [397 kB] Get:3 http://mirror.selectel.ru/ubuntu focal/universe amd64 php-mbstring all 2:7.4+75 [2012 B] Fetched 541 kB in 0s (12.1 MB/s) Selecting previously unselected package libonig5:amd64. (Reading database . 45001 files and directories currently installed.) Preparing to unpack . /libonig5_6.9.4-1_amd64.deb . Unpacking libonig5:amd64 (6.9.4-1) . Selecting previously unselected package php7.4-mbstring. Preparing to unpack . /php7.4-mbstring_7.4.3-4ubuntu2.6_amd64.deb . Unpacking php7.4-mbstring (7.4.3-4ubuntu2.6) . Selecting previously unselected package php-mbstring. Preparing to unpack . /php-mbstring_2%3a7.4+75_all.deb . Unpacking php-mbstring (2:7.4+75) . Setting up libonig5:amd64 (6.9.4-1) . Setting up php7.4-mbstring (7.4.3-4ubuntu2.6) . Creating config file /etc/php/7.4/mods-available/mbstring.ini with new version Setting up php-mbstring (2:7.4+75) . Processing triggers for libc-bin (2.31-0ubuntu9.2) . Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.6) . Processing triggers for php7.4-cli (7.4.3-4ubuntu2.6) . 

Следующим этапом станет инсталляция phpMyAdmin в систему. Выполняется это командой:

sudo apt install phpmyadmin -y 

Обратить внимание на Validate Password

Во время инсталляции LAMP мог быть активирован плагин Validate Password. Это чревато ошибкой при создании пароля для пользователя phpmyadmin. Для деактивации плагина необходимо выполнить следующие шаги:

Открыть консоль управления MySQL:

sudo mysql 

Если активна аутентификация по паролю суперпользователя root, команда будет выглядеть так:

mysql -u root -p 

Теперь отправляем следующую команду:

UNINSTALL COMPONENT "file://component_validate_password"; 

Это действие произведет отключение плагина Validate Password.

Покинем консоль MySQL, команда:

exit 

Можно продолжить установку phpMyAdmin. Эти действия следует производить только в случае возникновения ошибки, во всех остальных случаях в этом нет необходимости.

Продолжим установку. После отправки команды в терминал появится окно установщика, в котором потребуется ответить на ряд вопросов. Навигация в установщике осуществляется посредством использования клавиш Up down, выбор пунктов кнопка «Пробел», переход ниже — Tab. Ввод выбранного ответа — Enter.

На первый вопрос про используемый web-сервер, необходимо ответить — apache2.

Следующий вопрос про инсталляцию и настройку служебной базы данных для самой программы phpMyAdmin, отвечаем положительно.

Следующим пунктом будет установлен пароль ранее созданной базы данных для пользователя phpmyadmin:

Подтвердим созданный ранее пароль:

Вывод успешной работы программы:

vlan48@apachi:~$ sudo apt -y install phpmyadmin [sudo] password for vlan48: Reading package lists. Done Building dependency tree Reading state information. Done Suggested packages: www-browser php-recode php-gd2 php-pragmarx-google2fa php-bacon-qr-code php-samyoul-u2f-php-server Recommended packages: php-curl php-gd php-bz2 php-zip php-tcpdf The following NEW packages will be installed: phpmyadmin 0 upgraded, 1 newly installed, 0 to remove and 28 not upgraded. Need to get 4426 kB of archives. After this operation, 27.2 MB of additional disk space will be used. Get:1 http://mirror.selectel.ru/ubuntu focal/universe amd64 phpmyadmin all 4:4.9.5+dfsg1-2 [4426 kB] Fetched 4426 kB in 0s (34.8 MB/s) Preconfiguring packages . Determining localhost credentials from /etc/mysql/debian.cnf: succeeded. Selecting previously unselected package phpmyadmin. (Reading database . 46341 files and directories currently installed.) Preparing to unpack . /phpmyadmin_4%3a4.9.5+dfsg1-2_all.deb . Unpacking phpmyadmin (4:4.9.5+dfsg1-2) . Setting up phpmyadmin (4:4.9.5+dfsg1-2) . Determining localhost credentials from /etc/mysql/debian.cnf: succeeded. dbconfig-common: writing config to /etc/dbconfig-common/phpmyadmin.conf Creating config file /etc/dbconfig-common/phpmyadmin.conf with new version Creating config file /etc/phpmyadmin/config-db.php with new version checking privileges on database phpmyadmin for phpmyadmin@localhost: user creation needed. granting access to database phpmyadmin for phpmyadmin@localhost: success. verifying access for phpmyadmin@localhost: success. creating database phpmyadmin: success. verifying database phpmyadmin exists: success. populating database via sql. done. dbconfig-common: flushing administrative password apache2_invoke: Enable configuration phpmyadmin 

Установка завершена. Прежде чем пойти далее, необходимо произвести проверку работоспособности на данном этапе, чтобы в случае возникновения проблем, их можно было решить с наименьшими трудозатратами.

Проверим. В любом браузере открываем phpMyAdmin по IP-адресу сервера:

ip_address/phpmyadmin 

вход в систему под созданной учетной записью

Теперь можно войти в систему с использованием учетной записи, созданной во время установки. Проверяем:

вход в систему под учетной записью с паролем панель phpMyAdmin после успешной авторизации

Для учетной записи root по умолчанию применяется доступ с использованием плагина auth_socket. Изменим это на аутентификацию с использованием пароля. В данном случае необходимо изменить тип аутентификации на аутентификацию с использованием пароля.

Откроем консоль MySQL:

sudo mysql 

Произведем проверку таблицы пользователей, чтобы увидеть метод аутентификации для каждого пользователя:

SELECT user,plugin,host FROM mysql.user; 
+-------------------------+----------------------------------+------------+ | user | plugin | host | +-------------------------+----------------------------------+------------+ | debian-sys-maint | caching_sha2_password | localhost | | mysql.infoschema | caching_sha2_password | localhost | | mysql.session | caching_sha2_password | localhost | | mysql.sys | caching_sha2_password | localhost | | phpmyadmin | caching_sha2_password | localhost | | root | auth_socket | localhost | +------------------------+----------------------------------+--------------+ 7 rows in set (0.00 sec) 

Исходя из данных таблицы следует, что аутентификация пользователя root происходит с использованием плагина auth_socket.

Для изменения отправим следующую команду:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; 

Password добавляем свой.

Вывод работы команды:

Query OK, 0 rows affected (0.03 sec) 

В случае возникновения ошибки Plugin caching_sha2_password in not loaded следует обратиться к разделу «Возможные ошибки» в конце статьи.

SELECT user,plugin,host FROM mysql.user; 
+-----------------------+-----------------------------------+-----------+ | user | plugin | host | +------------------------+----------------------------------+-----------+ | debian-sys-maint | caching_sha2_password | localhost | | mysql.infoschema | caching_sha2_password | localhost | | mysql.session | caching_sha2_password | localhost | | mysql.sys | caching_sha2_password | localhost | | phpmyadmin | caching_sha2_password | localhost | | root | caching_sha2_password | localhost | +------------------------+---------------------------------+-------------+ 7 rows in set (0.00 sec) 

Теперь у пользователя root тип аутентификации — caching_sha2_password.

Работа с пользователями

Основная задача в работе с пользователями phpMyAdmin — создание и настройка прав. В качестве примера создадим пользователя с максимальными привилегиями.
Необходимо вернуться в терминал под пользователем с административными правами и отправить команду:

sudo mysql 

Так мы запустим работу с базой данных от имени администратора. Потребуется ввод пароля.

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 14 Server version: 8.0.27-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2021, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 

Теперь необходимо добавить пользователя, а также его пароль. Выполнить это можно командой:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; 

где user — новый пользователь, а password — пароль для этого пользователя.

В рабочем варианте отправленная команда выглядит так:

CREATE USER 'selectel'@'localhost' IDENTIFIED BY 's*****qq'; 
Query OK, 0 rows affected (0.02 sec) 

Добавим необходимые привилегии для созданного пользователя. В данном случае это будут все привилегии для всех баз данных на сервере:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; 

Если пользователю необходимо разрешить создавать пользователей и назначать им привилегии, необходимо добавить опции:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION; 

В данном примере в этом нет необходимости, поэтому будут только назначены полные привилегии для всех баз данных:

GRANT ALL PRIVILEGES ON *.* TO 'selectel'@'localhost'; 
Query OK, 0 rows affected (0.00 sec) 

Остается только применить изменения в настройках привилегий для этого служит команда:

FLUSH PRIVILEGES; 
Query OK, 0 rows affected (0.01 sec) 

В некоторых случаях может потребоваться удаление ранее созданного пользователя.

Это выполняется с использованием команды:

DROP USER 'user'@'localhost'; 

Проверяем что пользователь существует:

SELECT user FROM mysql.user; 

Отправленная команда осуществляет вывод списка текущих пользователей.

+--------------------------+ | user | +--------------------------+ | debian-sys-maint | | mysql.infoschema | | mysql.session | | mysql.sys | | phpmyadmin | | root | | selectel | +---------------------------+ 7 rows in set (0.01 sec) 

Убедившись что пользователь ‘selectel’ активен, можно произвести удаление:

DROP USER 'selectel'@'localhost'; 
Query OK, 0 rows affected (0.01 sec) 

Производим повторную проверку, убеждаясь в его отсутствии в списке.

+--------------------------+ | user | +--------------------------+ | debian-sys-maint | | mysql.infoschema | | mysql.session | | mysql.sys | | phpmyadmin | | root | +---------------------------+ 7 rows in set (0.00 sec) 

На этом настройка пользователей завершена. Для выхода из mysql необходимо отправить команду exit.

Обеспечение безопасности phpMyAdmin

Если к серверу есть хоть какой-то доступ из интернета или ненадежной сети, необходимо обеспечить безопасность, добавив авторизацию.

Требуется создать файл .htaccess, который является конфигурационным файлом web-сервера Apache. Он дает возможность управлять web-сервером и настройками web-приложения с помощью директив, без изменения основного файла конфигурации web-сервера. В данной инструкции будет использован текстовый редактор nano.

Создаем файл .htaccess в директории /usr/share/phpmyadmin/ и вносим в него следующие директивы:

AuthType Basic Authname "Restricted Content" AuthUserFile /etc/phpmyadmin/.htpasswd Require valid-user 
sudo nano /usr/share/phpmyadmin/.htaccess 

AuthType Basic — авторизация по паролю;

Authname «Restricted Content» — сообщение для окна авторизации;

AuthUserFile /etc/phpmyadmin/.htpasswd — путь к файлу пароля, который будет использован для авторизации;

Require valid-user — директива указывает, что только авторизованные пользователи получат доступ к ресурсу.

Теперь необходимо установить пароль учетной записи.

sudo htpasswd -c /etc/phpmyadmin/.htpasswd user 

где user — учетная запись.

sudo htpasswd -c /etc/phpmyadmin/.htpasswd selectel 

и дважды вводим пароль.

Adding password for user selectel 

Далее необходимо включить использование файлов .htaccess для директории /usr/share. Для этого откроем для редактирования файл apache2.conf и внесем изменения директивы для директории.

 AllowOverride All Require all granted  

По умолчанию файл выглядит так:

 Options FollowSymLinks AllowOverride None Require all denied AllowOverride None Require all granted Options Indexes FollowSymLinks AllowOverride None Require all granted # # Options Indexes FollowSymLinks # AllowOverride None # Require all granted #  

Вносим изменения в необходимую директиву:

 AllowOverride All Require all granted  
# This is the main Apache server configuration file. It contains the # configuration directives that give the server its instructions. # See http://httpd.apache.org/docs/2.4/ for detailed information about # the directives and /usr/share/doc/apache2/README.Debian about Debian specific # hints. # # # Summary of how the Apache 2 configuration works in Debian: # The Apache 2 web server configuration in Debian is quite different to # upstream's suggested way to configure the web server. This is because Debian's # default Apache2 installation attempts to make adding and removing modules, # virtual hosts, and extra configuration directives as flexible as possible, in # order to make automating the changes and administering the server as easy as # possible. # It is split into several files forming the configuration hierarchy outlined # below, all located in the /etc/apache2/ directory: # # /etc/apache2/ # |-- apache2.conf # | `-- ports.conf # |-- mods-enabled # | |-- *.load # | `-- *.conf # |-- conf-enabled # | `-- *.conf # `-- sites-enabled # `-- *.conf # # # * apache2.conf is the main configuration file (this file). It puts the pieces # together by including all remaining configuration files when starting up the # web server. # # * ports.conf is always included from the main configuration file. It is # supposed to determine listening ports for incoming connections which can be # customized anytime. # # * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ # directories contain particular configuration snippets which manage modules, # global configuration fragments, or virtual host configurations, # respectively. # # They are activated by symlinking available configuration files from their # respective *-available/ counterparts. These should be managed by using our # helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See # their respective man pages for detailed information. # # * The binary is called apache2. Due to the use of environment variables, in # the default configuration, apache2 needs to be started/stopped with # /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not # work with the default configuration. # Global configuration # # # ServerRoot: The top of the directory tree under which the server's # configuration, error, and log files are kept. # # NOTE! If you intend to place this on an NFS (or otherwise network) # mounted filesystem then please read the Mutex documentation (available # at ); # you will save yourself a lot of trouble. # # Do NOT add a slash at the end of the directory path. # #ServerRoot "/etc/apache2" # # The accept serialization lock file MUST BE STORED ON A LOCAL DISK. # #Mutex file:$ default # # The directory where shm and other runtime files will be stored. # DefaultRuntimeDir $ # # PidFile: The file in which the server should record its process # identification number when it starts. # This needs to be set in /etc/apache2/envvars # PidFile $ # # Timeout: The number of seconds before receives and sends time out. # Timeout 300 # # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Set to "Off" to deactivate. # KeepAlive On # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection. Set to 0 to allow an unlimited amount. # We recommend you leave this number high, for maximum performance. # MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAliveTimeout 5 # These need to be set in /etc/apache2/envvars User $ Group $ # # HostnameLookups: Log the names of clients or just their IP addresses # e.g., www.apache.org (on) or 204.62.129.132 (off). # The default is off because it'd be overall better for the net if people # had to knowingly turn this feature on, since enabling it means that # each client request will result in AT LEAST one lookup request to the # nameserver. # HostnameLookups Off # ErrorLog: The location of the error log file. # If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be # logged here. If you *do* define an error logfile for a # container, that host's errors will be logged there and not here. # ErrorLog $/error.log # # LogLevel: Control the severity of messages logged to the error_log. # Available values: trace8, . trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the log level for particular modules, e.g. # "LogLevel info ssl:warn" # LogLevel warn # Include module configuration: IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf # Include list of ports to listen on Include ports.conf # Sets the default security model of the Apache2 HTTPD server. It does # not allow access to the root filesystem outside of /usr/share and /var/www. # The former is used by web applications packaged in Debian, # the latter may be used for local directories served by the web server. If # your system is serving content from a sub-directory in /srv you must allow # access here, or in any related virtual host. Options FollowSymLinks AllowOverride None Require all denied AllowOverride All Require all granted Options Indexes FollowSymLinks AllowOverride None Require all granted # # Options Indexes FollowSymLinks # AllowOverride None # Require all granted # # AccessFileName: The name of the file to look for in each directory # for additional configuration directives. See also the AllowOverride # directive. # AccessFileName .htaccess # # The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. # Require all denied # # The following directives define some format nicknames for use with # a CustomLog directive. # # These deviate from the Common Log Format definitions in that they use %O # (the actual bytes sent including headers) instead of %b (the size of the # requested file), because the latter makes it impossible to detect partial # requests. # # Note that the use of %i instead of %h is not recommended. # Use mod_remoteip instead. # LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%i\" \"%i\"" vhost_combined LogFormat "%h %l %u %t \"%r\" %>s %O \"%i\" \"%i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %O" common LogFormat "%i -> %U" referer LogFormat "%i" agent # Include of directories ignores editors' and dpkg's backup files, # see README.Debian for details. # Include generic snippets of statements IncludeOptional conf-enabled/*.conf # Include the virtual host configurations: IncludeOptional sites-enabled/*.conf 

Сохраняем, перечитаем конфигурацию Apache2, отправкой команды:

sudo systemctl reload apache2 

Если сервер пока не в активной работе можно перезапустить демона командой:

sudo systemctl restart apache2 

При попытке попасть в phpMyAdmin теперь потребуется дополнительная авторизация.

авторизация в phpMyAdmin

После ввода верных учетных данных авторизация проходит успешно.

авторизация в phpMyAdmin прошла успешно

Удаление phpMyAdmin

Удаление происходит с использованием этих команд:

sudo apt remove phpmyadmin -y 

Отвечаем на все вопросы положительно.

удаление phpMyAdmin - отвечаем положительно про деконфигурацию БД phpMyAdmin - отвечаем положительно про удаление БД

 Reading package lists. Done Building dependency tree Reading state information. Done The following packages were automatically installed and are no longer required: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml Use 'sudo apt autoremove' to remove them. The following packages will be REMOVED: phpmyadmin 0 upgraded, 0 newly installed, 1 to remove and 41 not upgraded. After this operation, 27.2 MB disk space will be freed. (Reading database . 54693 files and directories currently installed.) Removing phpmyadmin (4:4.9.5+dfsg1-2) . Determining localhost credentials from /etc/mysql/debian.cnf: succeeded. dbconfig-common: dumping mysql database phpmyadmin to /var/tmp/phpmyadmin.phpmyadmin.2021-11-16-07.04.mysql.rTp4t6. dbconfig-common: dropping mysql database phpmyadmin. dropping database phpmyadmin: success. verifying database phpmyadmin was dropped: success. dbconfig-common: revoking privileges for user phpmyadmin on phpmyadmin. revoking access to database phpmyadmin from phpmyadmin@localhost: success. Conf phpmyadmin disabled. apache2_invoke postrm:Disable configuration phpmyadmin 

Для очистки неиспользуемых зависимостей применяем:

sudo apt-get autoremove 
Reading package lists. Done Building dependency tree Reading state information. Done The following packages will be REMOVED: dbconfig-common dbconfig-mysql libjs-jquery libjs-openlayers libjs-sphinxdoc libjs-underscore libxslt1.1 php php-google-recaptcha php-phpmyadmin-motranslator php-phpmyadmin-shapefile php-phpmyadmin-sql-parser php-phpseclib php-psr-cache php-psr-container php-psr-log php-symfony-cache php-symfony-cache-contracts php-symfony-expression-language php-symfony-service-contracts php-symfony-var-exporter php-twig php-twig-extensions php-xml php7.4 php7.4-xml 0 upgraded, 0 newly installed, 26 to remove and 41 not upgraded. After this operation, 20.5 MB disk space will be freed. Do you want to continue? [Y/n] y (Reading database . 52976 files and directories currently installed.) Removing dbconfig-mysql (2.0.13) . Removing dbconfig-common (2.0.13) . Removing libjs-sphinxdoc (1.8.5-7ubuntu3) . Removing libjs-jquery (3.3.1~dfsg-3) . Removing libjs-openlayers (2.13.1+ds2-7) . Removing libjs-underscore (1.9.1~dfsg-1ubuntu0.20.04.1) . Removing php-xml (2:7.4+75) . Removing php7.4-xml (7.4.3-4ubuntu2.7) . Removing libxslt1.1:amd64 (1.1.34-4) . Removing php (2:7.4+75) . Removing php-google-recaptcha (1.2.3-1) . Removing php-phpmyadmin-motranslator (5.0.0-1) . Removing php-phpmyadmin-shapefile (2.1-3) . Removing php-phpmyadmin-sql-parser (4.6.1-2) . Removing php-phpseclib (2.0.23-2) . Removing php-symfony-expression-language (4.3.8+dfsg-1ubuntu1) . Removing php-symfony-cache (4.3.8+dfsg-1ubuntu1) . Removing php-symfony-cache-contracts (1.1.8-1) . Removing php-psr-cache (1.0.1-2) . Removing php-symfony-service-contracts (1.1.8-1) . Removing php-psr-container (1.0.0-2) . Removing php-psr-log (1.1.2-1) . Removing php-symfony-var-exporter (4.3.8+dfsg-1ubuntu1) . Removing php-twig-extensions (1.5.4-1) . Removing php-twig (2.12.5-1) . Removing php7.4 (7.4.3-4ubuntu2.7) . Processing triggers for libc-bin (2.31-0ubuntu9.2) . Processing triggers for man-db (2.9.1-1) . Processing triggers for libapache2-mod-php7.4 (7.4.3-4ubuntu2.7) . 

Перезапускаем демон apache2:

sudo service apache2 restart 

PhpMyAdmin удален с сервера.

Возможные ошибки

В процессе изменения типа аутентификации учетной записи root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password'; 

Возможно возникновение ошибки:

Plugin caching_sha2_password in not loaded 

Это вызвано тем, что в свежих версиях mysql тип аутентификации по умолчанию:

caching_sha2_password 

Это не позволит произвести удаленное подключение к mysql и вызовет ошибку плагина:

caching_sha2_password 

Возможным вариантом решения является установка типа аутентификации:

mysql_native_password 

Команда выглядит так:

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 

Теперь возможен доступ пользователя к mysql с localhost.

Для подключения с нескольких хостов необходимо изменить команду:

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 

Для применения изменений необходимо использовать:

FLUSH PRIVILEGES; 

Заключение

В этом мануале мы рассказали о настройке сервера phpMyAdmin на операционной системе Ubuntu 20.04 на облачном сервере от Selectel. Мы разобрали основные моменты, которых достаточно для того, чтобы быстро и качественно установить данный инструмент на сервер, а также рассмотрели настройки безопасности.

Зарегистрируйтесь в панели управления

И уже через пару минут сможете арендовать сервер, развернуть базы данных или обеспечить быструю доставку контента.

Читайте также:

Инструкция

Как быстро написать API на FastAPI с валидацией и базой данных

13 февраля 2024

Инструкция

Как создать 100 серверов в облаке за минуту? Работа с OpenStack клиентом

Инструкция

Как создать веб-приложение на базе Telegram Mini Apps

Файл формата PHP: чем открыть, описание, особенности

Файлы такого формата содержат в себе язык программирования php. Открыть php файл можно специальным П.

Файлы такого формата содержат в себе язык программирования php. Открыть php файл можно специальным ПО, либо в окне браузера. Помимо файлов для программирования сайтов есть три разновидности php-расширения, которые применяются в отдельных нераспространенных сервисах. Это слайд-шоу программы Callisto PhotoParade, рабочий файл CreataCard, содержащий автосохранения и файл издательской программы Microsoft Picture It! Они не так распространены, поэтому вероятность встретить их невелика. Как открыть php файл для веб-программирования, расскажем ниже.

php открыть

Общее описание формата PHP

Язык программирования PHP в 1995 году разработал датский программист Расмус Релдорф. Спустя два года после выхода первой версии Релдорф выпустил улучшенный вариант. Его стал использовать каждый сотый домен в интернете. В 1998 году документ переделали израильские программисты, которые в дальнейшем продолжили заниматься проектом. Их версия получила название PHP 3.0. На сегодняшний день используется 7.0.0 версия, выпущенная в 2015 году. Язык PHP находится на 6 месте по популярности, на нем написаны интернет-гиганты Facebook и Wikipedia.

чем открывать php файлы

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

У формата открытый исходный код на сервере. Сайты на таком движке анализируют php-файлы, создают html страницу и отправляют в браузер . В итоге, при просмотре исходного кода пользователь не видит php-код.

Как и чем открыть файл php расширения

Файл php открыть не так просто, как html. Есть два способа: программный и браузерный. В двух случаях нужен интерпретатор, либо специальное ПО, причем важно отметить, что запустить php и открыть – не одно и то же.

как открыть php в браузере

Открыть php в браузере

Чтобы понять, как открыть файл php в браузере, важно понять отличие php от html. Последний открывается на стороне клиента – то есть в браузере, а php – на сервере. Чтобы запустить php, нужно либо приобрести домен и работать с php на нем, либо установить локальный сервер на компьютере. Последний способ предпочтительнее, поскольку бесплатный и позволяет создавать безграничное количество сайтов, которые хранятся на вашем ПК.

Есть три основных вида локальных серверов:

После установки локального сервера на компьютере необходимо создать сайт.

Затем в папке сервера необходимо найти папку под названием «home», в ней создаете еще одну и называете ее как домен будущего сайта. Далее создаем еще одну папку и называем «www», в нее перетаскиваем нужные документы.

как открывать php файлы в браузере

Далее запускаем браузер и в адресной строке пишем название сайта/название файла php. После нажатия на «Enter», php запускается в виде приложения, а не текстового кода. Это позволяет тестировать интерактивные возможности получившейся страницы.

Открыть php на компьютере

Способов, чем открыть файл php на компьютере достаточно много. Так как они открываются в текстовом формате, специализированные редакторы программного кода смогут работать с php.

Чем открыть php:

  • Notepad++ — редактор, работающий на Linux и Windows;
  • Eclipse PHP Development Tools – специализированная программная среда для веб-разработок на PHP;
  • MPSoftware phpDesigner – аналогичная программа, не распространенная в русскоязычном сегменте;
  • Apache Web Server – свободный сервер для разработок, совместим с Windows, Mac OS, Linux;
  • WampServer – комплект ПО для работы с php;
  • Adobe Dreamweaver CC – программа для веб-дизайна, поддерживающая в том числе язык PHP;
  • Стандартный текстовый редактор.

Некоторые программы из перечисленных работают только на Windows, поэтому в случае использования на других ОС проверьте совместимость перед установкой.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *