Install a LAMP Stack on Ubuntu 22.04
Estamos traduciendo nuestros guías y tutoriales al Español. Es posible que usted esté viendo una traducción generada automáticamente. Estamos trabajando con traductores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en curso.
The LAMP Stack includes an operating system, web server, programming language, and database. These applications are collectively able to implement web applications and other computing solutions. This guide provides some background about the LAMP stack and explains how to install and configure it on Ubuntu 22.04 LTS. It also explains how to quickly test interactions between the applications.
What is a LAMP Stack?
The LAMP Stack is an acronym for Linux, Apache, MySQL, and PHP. It includes an operating system, a web server, a database, and a versatile programming language. All components are available through the default Ubuntu software repositories.
The LAMP Stack is sufficient to host web applications and implement a modern computing environment. Many other Ubuntu applications rely on some or all of these programs. In some cases, substitutions to the LAMP stack can be made. For example, the NGINX web server can be used instead of Apache. Each component has a role within the software stack.
- Linux: Linux is an operating system based on UNIX. Linux is available for free as open source technology. There are several distinct implementations of Linux, which are known as distributions. Ubuntu is one of the most popular distributions. Other alternatives include Debian, Red Hat, Arch, and many, many others. Each distribution of Linux is associated with a software library. This library is used to install other software, including the other LAMP stack components.
- Apache HTTP Server: Apache is the most common web server for Ubuntu and throughout the public internet. The Apache Software Foundation develops and releases Apache as free and open source software. The standard version of Apache includes all components required to host a web site. However, extra modules can be used to add features including authentication and programming language APIs.
- MySQL: MySQL is a relational database management system (RDBMS). Although owned by Oracle, MySQL is free. Its source code is available under the GNU General Public License. MariaDB or PostgreSQL sometimes replace MySQL in the stack.
- PHP: PHP is the server-side scripting and programming language used in the stack. It is commonly used in web development and is firmly integrated with the rest of the stack. An Ubuntu system interprets PHP code using a PHP processor. PHP commands can be efficiently embedded within an HTML page. PHP software is available for free under the PHP License. Alternatives to PHP include Perl and Python, which can also serve as the P in the LAMP stack.
Before You Begin
- If you have not already done so, create a Linode account and Compute Instance. See our Getting Started with Linode and Creating a Compute Instance guides.
- Follow our Setting Up and Securing a Compute Instance guide to update your system. You may also wish to set the timezone, configure your hostname, create a limited user account, and harden SSH access.
This guide is written for a non-root user. Commands that require elevated privileges are prefixed with sudo . If you are not familiar with the sudo command, see the Users and Groups guide.
Installing a LAMP Stack on Ubuntu
This section explains how to install a LAMP Stack on Ubuntu 22.04 LTS. These instructions are also generally valid for Ubuntu 20.04 LTS.
These instructions are valid with or without a registered domain name. If a domain name maps to the IP address of the server, a virtual host should also be configured. For information on domain names and pointing the domain name to a Linode, see the Linode DNS Manager guide.
To install the LAMP stack on Ubuntu 22.04 LTS, follow these steps. In all cases, enter y to proceed with the installation when asked for confirmation.
- Using apt , update the Ubuntu packages:
Установка LAMP в Ubuntu 20.04
LAMP — это популярный набор программного обеспечения для работы с веб-сервером. LAMP назван по первым буквам входящих в его состав компонентов: Linux — операционная система, Apache — веб-сервер, MySQL — СУБД, PHP — язык программирования, используемый для создания веб-приложений.
В этой статье мы рассмотрим, как установить LAMP Ubuntu 20.04 несколькими способами: с помощью утилиты tasksel и вручную с помощью пакетного менеджера.
Установка LAMP в Ubuntu 20.04
1. Установка пакетов LAMP с помощью утилиты tasksel
Утилита tasksel позволяет устанавливать наборы пакетов различных программ буквально в одну команду. Она разработана для Debian, но может использоваться и в Ubuntu. Для её установки выполните в терминале команду:
sudo apt -y install tasksel
Далее, чтобы установить Lamp на Ubuntu, достаточно выполнить команду:
sudo tasksel install lamp-server
Установка займёт определенное время, так как утилите необходимо скачать все необходимые пакеты. После завершения установки вы получите полностью работающий стек LAMP.
Если вы не хотите использовать tasksel, вы можете установить все пакеты по отдельности из стандартных репозиториев и настроить их для совместной работы.
Для начала необходимо установить веб-сервер Apache2:
sudo apt -y install apache2
На момент написания статьи актуальной версией PHP в официальных репозиториях Ubuntu считалась версия 7.4. Самая же последняя официальная версия PHP от разработчиков 8.0.9 по состоянию на 29 июля 2021 года.
Также необходимо установить дополнительные расширения для языка PHP, которые понадобятся для создания будущих проектов и их дальнейшей публикации на хостинг:
sudo apt -y install php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc
3. Настройка брандмауэра
По умолчанию брандмауэр закрывает все неразрешённые входящие подключения. Поэтому, чтобы к вашему веб-серверу можно было получить доступ извне, необходимо добавить его порт в исключения:
Для начала необходимо убедиться, что веб-сервер Apache и СУБД MySQL успешно запустились и при необходимости запустить их. Смотрим статус apache, выполнив команду в терминале:
sudo systemctl status apache2
В разделе Active должно быть active (running). Те же самые действия необходимо сделать для проверки MySQL:
sudo systemctl status mysql
Если в статусах вместо active будет inactive (dead), то сервисы необходимо запустить вручную:
sudo systemctl start apache2
sudo systemctl status mysql
Для проверки наберите в адресной строке браузера IP-адрес сервера, куда вы устанавливали LAMP, в качестве примера выбран localhost:
Если при открытии вы увидели страницу, которая изображена на скриншоте выше, это означает что веб-север apache успешно запущен и работает. Теперь необходимо проверить правильно ли работает PHP. Создайте файл в директории /var/www/html при помощи следующей команды:
sudo vi /var/www/html/phpinfo.php
Вместо vi можно использовать любой другой текстовый редактор на ваш выбор (nano, emacs, gedit и др.).
В файл phpinfo.php впишите следующую команду:
Далее откройте адрес localhost/phpinfo.php в браузере. Если всё работает, вы должны увидеть страничку, которая изображена ниже на скриншоте:
Также можно проверить, работает ли интеграция с СУБД MySQL. Если расширение PHP для MySQL установлено, то на странице с phpinfo будет размещен блок с информацией:
На данном этапе процесс проверки пройден успешно. Далее мы перейдем к настройке стека LAMP на Ubuntu 20.04.
5. Настройка Apache
Для обработки запросов будет использоваться модуль mpm_prefork. Данный модуль запускает по отдельному процессу на каждый запрос. Иначе говоря, каждый процесс одновременно обрабатывает только 1 поток на одно соединение. Для начала необходимо выключить mpm_event и mpm_worker и только потом включить модуль mpm_prefork:
Включаем модуль mod_rewrite. Это модуль, предназначенный для преобразования URL адресов. Модуль использует в своей работе правила, которые могут быть описаны как в конфигурации сервера (httpd.conf), так и в файлах .htaccess непосредственно в файловой структуре Вашего сайта.
Если вы хотите использовать файлы httaccess для настроек, то необходимо в файле /etc/apache2/apache2.conf изменить значение AllowOverride с None на All для нужных местоположений, например, для /var/www.
Откройте файл apache2.conf при помощи любого текстового редактора:
sudo vi /etc/apache2/apache2.conf
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
И замените AllowOverride None на AllowOverride All, затем сохраните изменения и закройте файл. Перезапустите apache:
sudo systemctl restart apache2
6. Настройка PHP
По умолчанию короткие теги, обрамляющие скрипты PHP, отключены. Это может привести к тому, что некоторые скрипты, использующие эти теги, могут не выполнятся. Для включения этой возможности откройте файл php.ini при помощи любого текстового редактора:
sudo vi /etc/php/7.4/apache2/php.ini
Найдите short_open_tag = Off и замените на:
После внесения всех изменений необходимо перезапустить Apache:
sudo systemctl restart apache2
7. Настройка MySQL
По умолчанию MySQL не очень хорошо настроена в плане безопасности. Необходимо задать пароль суперпользователя и удалить гостевой доступ. Для выполнения всех этих задач запустите в терминале следующую команду:
Во всех следующих вопросах нужно отвечать утвердительно путем ввода y/Y или Yes:
- Запретить удалённый вход для пользователя root;
- Запретить гостевой вход;
- Удалить временные таблицы;
- Обновить привилегии пользователей.
Введите пароль пользователя root, который вы задали на этапе запуска mysql_secure_installation.
Не перепутайте пароль от пользователя root который присутствует в операционной системе Ubuntu и пользователя root в MySQL. Это разные пользователи, соответственно вы должны вводить пароль именно к учетной записи root, которая присутствует в MySQL.
Чтобы полностью удалить LAMP из системы, достаточно удалить все пакеты, которые вы установили ранее:
sudo apt -y purge apache2 mysql-server php7.4 libapache2-mod-php7.4 php7.4-mysql php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc
Команда purge позволяет удалить не только пакеты, но и их конфигурационные файлы. Если вы хотите оставить конфигурационные файлы, используйте команду remove.
Выводы
В этой статье мы разобрали, как выполняется установка LAMP Ubuntu 20.04. Как видите, это не очень сложно и с такой задачей может справиться даже новичок. Если у вас остались вопросы, оставляйте их в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.