Установка комплекта linux, apache, mysql, php (lamp) в ubuntu 20.04

Шаг 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 адрес для доступа к серверу через адресную сроку веб-браузера.

Установка MariaDB на Ubuntu

Буква “М” аббревиатуры LAMP это установка базы данных MariaDB.  Нам потребуется установить систему управления базами данных для хранения и управления данными сайта/приложения. Давайте сделаем выбор в пользу на MariaDB. MariaDB является производной MySQL, однако эта БД предлагает более высокую производительность.

Выполните приведенную ниже команду, чтобы установить MariaDB на Ubuntu 20.04.

Введите Y, если вам будет предложено продолжить установку.

После успешной установки MariaDB проверьте состояние службы с помощью следующей команды.


Проверка Состояние Службы MariaDB

Вы должны увидеть, что Служба MariaDB активна (работает). Теперь можете нажать q, чтобы вернуться к командной строке. Если служба БД не работает, тогда запустите ее с помощью приведенной ниже команды, а затем снова проверьте состояние.

Далее выполните команду для запуска сценария установки mysql_secure_installation, а затем следуйте инструкциям по защите MariaDB.

Ниже приведен пример того, что ожидается после запуска скрипта.

Теперь выполните следующую команду, чтобы войти в mysql с выбранным паролем.

Если вы видите подсказку MariaDB, вы на правильном пути.

Шаг 1 — Создание базы данных MySQL и пользователя для WordPress

Первый шаг, который мы выполним, будет подготовительным. WordPress использует MySQL для управления и хранения сайта, а также информации пользователя. Мы уже установили MySQL, но нам нужно создать базу данных и пользователя, которые будет использовать WordPress.

Для начала войдите в учетную запись root в MySQL (административную) с помощью следующей команды (обратите внимание, что это не root user вашего сервера):

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

Примечание. Если вы не можете получить доступ к базе данных MySQL через root, как пользователь , вы можете обновить пароль root user, войдя в базу данных следующим образом:

После того как вы увидите командную строку MySQL, вы можете обновить пароль root user. Для этого замените ​​​ выбранным новым надежным паролем.

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

В базе данных мы можем создать отдельную базу данных, которую будет контролировать WordPress. Вы можете использовать любое название, а в данном руководстве мы будем использовать wordpress. Создайте базу данных для WordPress, введя следующую команду:

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

Затем мы создадим отдельную учетную запись пользователя MySQL, которую будем использовать исключительно для работы с нашей новой базы данных. Создание отдельных баз данных и учетных записей может быть полезно с точки зрения управления и безопасности. В данном руководстве мы будем использовать имя wordpressuser, но вы можете выбрать любое подходящее название.

Мы создадим учетную запись, установим пароль и предоставим доступ к созданной нами базе данных. Для этого мы воспользуемся следующей командой: Не забудьте задать надежный пароль для пользователя базы данных на этом шаге ​​​:

Затем сообщите базе данных о том, что наш wordpressuser должен иметь полный доступ к созданной базе данных:

Теперь у вас есть база данных и учетная запись пользователя, которые созданы специально для WordPress. Нам нужно обновить привилегии, чтобы текущий экземпляр MySQL узнал о последних внесенных нами изменениях:

Выйдите из MySQL, введя следующую команду:

На следующем шаге мы заложим некоторые основы для плагинов WordPress, загрузив расширение PHP для нашего сервера.

ПРОВЕРКА РАБОТЫ LAMP

Для начала необходимо убедиться, что веб-сервер Apache и СУБД MySQL успешно запустились и при необходимости запустить их. Смотрим статус apache, выполнив команду в терминале:

В разделе Active должно быть active (running). Те же самые действия необходимо сделать для проверки MySQL:

Если в статусах вместо active будет inactive (dead), то сервисы необходимо запустить вручную:

Для проверки наберите в адресной строке браузера IP-адрес сервера, куда вы устанавливали LAMP, в качестве примера выбран localhost:

Если при открытии вы увидели страницу, которая изображена на скриншоте выше, это означает что веб-север apache успешно запущен и работает. Теперь необходимо проверить правильно ли работает PHP. Создайте файл в директории /var/www/html при помощи следующей команды:

Вместо vi можно использовать любой другой текстовый редактор на ваш выбор (nano, emacs, gedit и др.).В файл phpinfo.php впишите следующую команду:

Далее откройте адрес localhost/phpinfo.php в браузере. Если всё работает, вы должны увидеть страничку, которая изображена ниже на скриншоте:

Также можно проверить, работает ли интеграция с СУБД MySQL. Если расширение PHP для MySQL установлено, то на странице с phpinfo будет размещен блок с информацией:

На данном этапе процесс проверки пройден успешно. Далее мы перейдем к настройке стека LAMP на Ubuntu 20.04.

Шаг 3 — Настройка конфигурации Apache для получения доступа к переопределению и перезаписи .htaccess

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

В этом обучающем руководстве в качестве примера мы будем использовать , а вам необходимо заменить путь к вашему файлу конфигурации в соответствующем месте. Также мы будем использовать ​​​ в качестве корневой директории для нашей установки WordPress. Вы должны использовать корневой веб-узел, указанный в вашей собственной конфигурации. Если вы следовали указаниям нашего руководства по LAMP, вы можете использовать ваше доменное имя вместо в обоих случаях.

Примечание. Вы можете использовать конфигурацию по умолчанию (с в качестве корневого веб-узла). Это допустимо, если вы собираетесь размещать только один веб-сайт на этом сервере. Если нет, рекомендуется разделить необходимую конфигурацию на логические части, по одному файлу на каждый сайт.

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

Активация переопределения .htaccess

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

Откройте файл конфигурации Apache для вашего веб-сайта с помощью текстового редактора, например nano.

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

/etc/apache2/sites-available/wordpress.conf

После завершения редактирования сохраните и закройте файл. В редакторе nano вы можете сделать это, нажав сочетание клавиш и , затем , затем .

Активация модуля перезаписи

Теперь мы сможем активировать для использования постоянных ссылок в WordPress:

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

Команда ​​​ вызывает скрипт, который активирует заданный модуль в конфигурации Apache.

Активация изменений

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

Вывод может выглядеть следующим образом:

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

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

Теперь мы загрузим и настроим непосредственно WordPress.

Создание блоков для нескольких доменов

Для примера создадим домен test.ru на машине с только что установленным LEMP. Если машина локальная, то сначала нужно добавить домен в файл hosts, чтобы можно было обратиться к нему из браузера, на хостинге же нужно просто указать вручную в NS записях домена (у регистроатора домена), свой ip адрес сервера и дождаться обновления DNS и делать все по аналогии (в hosts добавлять не нужно, хотя и можно, чтобы не ждать, пока обновятся записи DNS).

Добавим домен в файл hosts:

sudo nano /etc/hosts

Впишем строку:

127.0.0.1       test.ru

Далее продолжим обязательные манипуляции и создадим каталог для домена (не обязательно он должен располагаться в /usr/share/nginx/html, он может быть, например в /var/www):

sudo mkdir /usr/share/nginx/html/test.ru

Зададим права и пользователя для каталога:

sudo chown www-data:www-data /usr/share/nginx/html/test.ru -R
sudo chmod ug+rwx /usr/share/nginx/html/test.ru -R

Создадим в каталоге файл index.html:

nano /usr/share/nginx/html/test.ru/index.html

В него вставим html код:

<html><head></head><body>Hello world!</body></html>

Далее копируем наш файл default.conf в каталог sites-available и назовем его test.ru:

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/test.ru

Откроем его в текстовом редакторе и немного изменим:

sudo nano /etc/nginx/sites-available/test.ru
server {
  listen 80;
  listen :80;
  server_name test.ru www.test.ru;
  root /usr/share/nginx/html/test.ru;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php;
  }

  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;
  }
}

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

Теперь активируем сайт, задав на него ссылку:

sudo ln -s /etc/nginx/sites-available/test.ru /etc/nginx/sites-enabled/test.ru

Все, нужно перезагрузить Nginx, чтобы изменения вступили в силу:

sudo systemctl restart nginx

Открываем в браузере test.ru для проверки:

Тестовый сайт

Настройки Nginx для сайта test.ru будут в созданном файле /etc/nginx/sites-available/test.ru (например настройка кэша или IP6). И по аналогии с созданием test.ru можно создать любое количество сайтов.

Step 4: Test PHP Processing on your Web Server

In order to test that our system is configured properly for PHP, we can create a very basic PHP script.

We will call this script . In order for Apache to find the file and serve it correctly, it must be saved to a very specific directory, which is called the “web root”.

In Ubuntu 16.04, this directory is located at . We can create the file at that location by typing:

This will open a blank file. We want to put the following text, which is valid PHP code, inside the file:

info.php

When you are finished, save and close the file.

Now we can test whether our web server can correctly display content generated by a PHP script. To try this out, we just have to visit this page in our web browser. You’ll need your server’s public IP address again.

The address you want to visit will be:

The page that you come to should look something like this:

This page basically gives you information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.

If this was successful, then your PHP is working as expected.

You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, you can type this:

You can always recreate this page if you need to access the information again later.

PhpMyAdmin


Возможно, PhpMyAdmin — самое распространённое приложение администрирования баз MySQL. Оно мощное и надёжное. Для установки наберите в консоли:

sudo apt-get install phpmyadmin 

В ходе установки согласитесь с записью BIND по умолчанию. Откройте браузер и введите:

http:<your server IP>/phpmyadmin

введите ‘root‘ и пароль MySQL, заданный при установке.
Совет: Если доступ к MySQL организован при помощи других средств управления (например, MySQL Administrator), не забудьте, что по умолчанию доступ закрыт для всех IP-адресов, кроме localhost 127.0.0.1. Если вы не привязали базу данных к определённому IP-адресу или не открыли доступ для всех, закомментировав (#) запись ‘bind’, MySQL выдаст ошибку 1130. Чтобы её избежать, просто откройте доступ в phpMyAdmin для нужных IP-адресов. Этот шаг легко забыть, а ошибка может вас удивить, если не предпринять меры.

Adjusting the Firewall to Allow Web Traffic

Assuming that you have followed our Initial Server Setup blog instructions to enable UFW firewall, make sure that your firewall allows HTTP and HTTPS traffic. You can list application profile for Apache using the following command:

$ sudo ufw app listOutput:Available applications:  Apache  Apache Full  Apache Secure  OpenSSH

Now look at Apache Full profile, it shows that it enables the traffic to ports 80 and 443:

$ sudo ufw app info "Apache Full"Output:Profile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports:  80,443/tcp

Now allow incoming traffic for this profile:

$ sudo ufw allow in "Apache Full"

You can verify on the spot to check whether things go as planned by visiting your server’s public IP address in your web browser.

http://YOUR_SERVER_IP_ADDRESS

If you see this page, then your web server is correctly installed.

Step 2: Install MySQL

Now our web server is up and running, it’s time to install MySQL. MySQL is a an open source Relational Database Management System.

We can use apt to install mysql.

$ sudo apt-get install mysql-server

During the installation, your server will ask you to select and confirm a password for the MySQL “root” user. This is an administrative account in MySQL that has heightened privileges similar to the root account of the server itself. Make sure the password is strong and unique and don’t leave it blank.

When the installation is complete, we have to run a simple security script that will remove some dangerous defaults and lock down access to our database system a little bit. To run the script type in the terminal:

$ mysql_secure_installation

After the script is completed, your database setup is completed and we proceed further.

Step 3: Install PHP

PHP (recursive acronym for “PHP: Hypertext Preprocessor” is a widely used, open source general purpose scripting language. We will be using PHP to dynamically displaying the web pages by leveraging the data from MySQL database.

We again use APT to install our components. We are also going to install some helper packages as well, so that PHP code can run under Apache server and talk to MySQL database:

$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Now, we have our PHP installed on our server. We will test it in a moment.

We want to modify the way apache server files when a directory is requested. Currently, if a user requests a directory from the server, Apache first first looks for index.html. We want to tell our server to prefer PHP files, so we’ll make apache look for PHP files first.

To do this, open the dir.conf file using the command below:

$ sudo nano /etc/apache2/mods-enabled/dir.confOutput:<IfModule mod_dir.c>        DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>

We want to move the highlighted php index file to the first position after DirectoryIndex specification, like this:

<IfModule mod_dir.c>        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>

Now save and close the file and restart Apache.

$ sudo systemctl restart apache2

Step 4: Testing PHP processing on your Web Server

To test our system we’ll create a very basic PHP script. We will call this test.php. In order for Apache to find and serve the file, it must be saved in a very specific directory called as “web root”.

In Ubuntu 16.04, it is located at /var/www/html/. We can create a file at this location by the following command:

$ sudo nano /var/www/html/test.php

This will open a blank file and we will put the following text in it.

<?phpecho phpinfo();?>

Now save and close the file when you are done.

We can now test whether our web server correctly display content generated by a PHP script. To try this out, visit this page in your web browser:

http://YOUR_SERVER_PUBLIC_IP/test.php

The page will be served something like this:

If you found this page, give a pat on your shoulder. You have successfully setup your first Web Server.

Thanks for reading this article. If you found this article useful be sure to clap to recommend this article.

For such related articles follow me and TechkyLabs.

Follow us on other social accounts: , , Github

PS: Don’t forgot to give a clap :)

Установка Apache на Ubuntu

HTTP —  Apache сервер  используется для обслуживания ресурсов клиентов через интернет. Прежде всего обновите свои пакеты Ubuntu с помощью приведенной ниже команды, если вы не делали это  в последнее время.

Затем выполните следующую команду, чтобы установить Apache сервер версии 2 на Ubuntu 20.04.

После запроса на разрешение установки, введите Y, чтобы продолжить установку.

Далее вы можете проверить версию HTTP-сервера Apache2 с помощью:

Теперь убедитесь, что сервер Apache2 активен (работает). Это можно сделать с помощью следующей команды.

Проверка Состояние Службы Apache2

Теперь откройте веб-браузер и введите IP-адрес вашего сервера. Или введите localhost, если вы локально подключены к серверу.

Вы должны увидеть страницу Apache2 Ubuntu по умолчанию, как показано на рисунке ниже.


Страница Apache2 Ubuntu По Умолчанию

Вы можете разместить несколько сайтов на одном веб-сервере Apache2 и соответственно подключить свои зарегистрированные домены.

Это вторая буква в аббревиатуре LAMP

8.1. Зашифруем автоматическое продление

Шифрующие SSL-сертификаты действительны только в течение короткого периода в 80 дней. Поэтому мы сейчас настроим cronjob для автоматического обновления SSL-сертификата при необходимости. Команда: «продлить лицензию».

Установите cronjob для автоматического обновления LE. Бег:

Для открытия корневого кронтаба в редакторе. Вставьте следующую строку в конец файла:

Сохраните файл, это активирует cronjob. Этот cronjob будет вызывать команду Let’s Encrypt renew каждый вечер в 1 час ночи. Команда обновит SSL-сертификат только при необходимости (за 30 дней до истечения срока его действия), нет проблем запускать его каждую ночь.

Взаимодействие элементов

Взаимодействие элементов можно проследить в общем представлении порядка выполнения стека LAMP. Процесс начинается с того, что веб-сервер Apache получает от браузера пользователя запросы на веб-страницы. Если запрос касается файла PHP, то Apache передает запрос PHP, который загружает файл и выполняет содержащийся в нем код. Если в коде упоминаются данные, которые требуется извлечь, то PHP взаимодействует с MySQL.

Затем на основе кода в файле и данных, извлеченных из базы данных, PHP создает разметку HTML, согласно которой браузеры отображают веб-страницы. Стек LAMP эффективен для работы не только со статическими, но и с динамическими веб-страницами, содержимое которых может меняться при каждой загрузке в зависимости от даты, времени, ИД пользователя и других факторов.

После выполнения кода PHP передает полученные данные обратно на веб-сервер Apache для отправки в браузер. Также эти новые данные могут сохраняться в MySQL. И, разумеется, все эти операции поддерживаются операционной системой Linux, лежащей в основе всего стека.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: