Как установить LAMP на Ubuntu 20.04
LAMP представляет собой набор серверных программ с открытым исходным кодом, который устанавливается на сервер как комплект софта, предназначенный для размещения веб-сайтов. Данная четырёхбуквенная аббревиатура обозначает, что:
- в операционной системе семейства Linux ( L )
- разворачивается веб-сервер Apache ( A )
- и устанавливается система управления базами данных MySQL ( M )
- для создания веб-страниц на языке PHP ( P ).
В качестве сервера будем использовать VPS, работающий под управлением Ubuntu Server 20.04. Предварительно, перед установкой LAMP, необходимо будет произвести первоначальную настройку операционной системы. О том, как это сделать, у нас есть специальное руководство.
Установка Apache
Основа LAMP — это веб-сервер, а именно, веб-сервер Apache, один из популярнейших веб-серверов, который до возникновения Nginx являлся стандартным веб-сервером для большей части сайтов в интернете.
Как всегда перед установкой нового софта необходимо обновить список пакетов нашего сервера:
Непосредственно установка Apache запускается следующей командой:
Настройка брандмауэра
Если вы производили настройки межсетевого экрана на основе нашей инструкции, то теперь вы можете воспользоваться одним из готовых профилей брандмауэра для Apache:
- Apache – открывает доступ на 80-й порт;
- Apache Full – открывает доступ на 80-й и 443-й порт;
- Apache Secure – открывает доступ только на 443-й порт.
В случае, если для доступа к своим веб-ресурсам вы планируете использовать сертификат SSL, то вам потребуется открыть доступ к портам 80 и 443. Если такой необходимости нет, то достаточно открыть доступ только к порту 80. В нашем примере мы применяем настройку брандмауэра по первому варианту:
Увидеть, какие порты открыты в UFW, можно с помощью следующей команды:
Теперь можно будет проверить работу веб-сервера. Для этого необходимо перейти в браузере на страницу вашего сервера:
В данном случае, XXX.XXX.XXX.XXX – IP-адрес вашего VPS.
Если все было настроено правильно, вы увидите дефолтную страницу установленного веб-сервера:
Установка MySQL
Следующий этап — это установка системы управления базами данных, а именно, MySQL.
MySQL является довольно популярной СУБД. MySQL используется для хранения данных сайта и довольно часто используется в приложениях, написанных с помощью PHP.
Команда для инсталляции выглядит следующим образом:
$ sudo apt install mysql-server
После завершения процесса можно проверить версию установленного пакета:
Команда должна вернуть строку подобную следующей:
Теперь необходимо произвести настройку СУБД, которая позволит изменить некоторые параметры безопасности, используемые системой по умолчанию. Для того, чтобы это сделать, нужно запустить специальный скрипт. Запуск скрипта производится командой:
$ sudo mysql_secure_installation
Во-первых, скрипт попросит вас включить валидацию паролей пользователей. Для согласия на включение следует нажать y или Y .
Во-вторых, если вы включили компоненту валидации, потребуется выбрать её уровень. Выбирать нужно набирая цифры: 0 – низкий, 1 – средний, 2 – высокий.
Далее, система запросит установить пароль для учётной записи root , которая будет использоваться при подключении к MySQL.
Для всех остальных вопросов нужно выбирать Y и нажимать в каждом из шагов диалога. Выбрав эти ответы, вы удалите анонимных пользователей, тестовую базу данных, а так же отключите возможность удаленного входа для пользователя root , после чего новые правила будут активированы в MySQL.
В некоторых случаях на этапе установки нового пароля для учётной записи root система выдаёт сообщение следующего вида:
… Failed! Error: SET PASSWORD has no significance for user ‘root’@’localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
Чтобы устранить данную ошибку, необходимо:
● прервать работу скрипта завершив SSH-сессию
● подключиться к MySQL: sudo mysql
● сбросить пароль root ‘а: ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password by ‘NewPassForRoot’; (здесь NewPassForRoot – новый пароль, вместо которого вам, конечно же, необходимо придумать и ввести свой)
● выйти из MySQL: exit
● повторно запустить на исполнение скрипт: sudo mysql_secure_installation
В качестве проверки работоспособности MySQL попробуйте подключиться к нему из командной строки. Для подключения вам понадобится пароль пользователя root :
Для выхода из консоли MySQL используйте следующую команду:
Более подробно процесс установки и настройки MySQL на Ubuntu 20.04 описан в нашей статье, посвящённой именно этой СУБД.
Установка PHP
PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. Поддерживается большинством провайдеров и позволяет выполнять приложения написанные на PHP.
Для дальнейшей работы вам также понадобится библиотека libapache2-mod-php для обработки PHP в Apache и библиотека php-mysql для PHP, используемая для подключения к MySQL из PHP.
Чтобы проинсталлировать PHP, а также необходимые библиотеки, используйте следующую команду:
$ sudo apt install php libapache2-mod-php php-mysql
По завершению установки есть возможность посмотреть версию установленного пакета:
На данном этапе уже можно использовать связку LAMP для своей работы. Однако, для того, чтобы, провести тест работоспособности PHP, логично было бы предварительно настроить виртуальный хост Apache. В нём будут содержаться каталоги и файлы вашего сайта.
Создание виртуального хоста для сайта
В этом разделе мы создадим виртуальный хост с использованием веб-сервера Apache, в котором будут инкапсулироваться данные конфигурации нашего веб-сайта. В качестве сайта мы будем использовать my-domain.host . Естественно, вместо него на своём сервере вы должны использовать имя вашего онлайн-ресурса.
По умолчанию на веб-сервере Apache присутствует единственный серверный блок, конфигурация которого настроена на каталог /var/www/html . Если вы уверены, что на вашем сервере будет работать только один веб-сайт, то можно разместить его там. Мы же поместим наш хост в отдельную директорию, а /var/www/html оставим в качестве дефолтного каталога.
Для начала необходимо создать директорию для нашего сайта (не забывайте подставлять имя своего хоста вместо my-domain.host ):
$ cd /var/www $ sudo mkdir my-domain.host
Далее, нужно будет назначить соответствующие права на созданный каталог. Права будем назначать при помощи переменной среды $USER . Через эту переменную владеть директорией сможет текущий системный пользователь:
$ sudo chown -R $USER:$USER /var/www/my-domain.host
На следующем шаге необходимо создать конфигурационный файл в каталоге веб-сервера. Создавать его будем при помощи редактора nano :
$ cd /etc/apache2/sites-available $ sudo nano my-domain.host.conf
В пустой созданный файл вставьте следующий текст (не забывайте про то, что нужно подставлять имя именно вашего сайта):
ServerName my-domain.host ServerAlias www.my-domain.host ServerAdmin webmaster@localhost DocumentRoot /var/www/my-domain.host ErrorLog $/error.log CustomLog $/access.log combined
При выходе из текстового редактора сохраните внесённые в файл изменения.
Теперь можно активировать новый виртуальный хост:
$ sudo a2ensite my-domain.host
Если есть необходимость отключить дефолтный виртуальный хост, то сделать это можно при помощи команды:
$ sudo a2dissite 000-default
Далее, нужно проверить конфигурацию нашего хоста на предмет отсутствия синтаксических ошибок:
$ sudo apache2ctl configtest
Если проверка выдаст сообщение вида Syntax OK , то перезапустите веб-сервер для применения внесённых изменений:
$ sudo systemctl reload apache2
Таким образом, мы активировали наш сайт, но он ещё не имеет никакого содержимого. Поэтому теперь необходимо создать для него стартовую страницу. Для этого в директории /var/www/ my-domain.host нужно будет создать файл index.html :
$ cd /var/www/my-domain.host $ nano index.html
В качестве примера наполните созданный файл следующим содержимым:
My Apache site - my-domain.host
You see my Apache site my-domain.host on Ubuntu 20.04
Закройте файл сохранив изменения, после чего попробуйте перейти на созданную страницу. Для этого введите IP-адреса вашего VPS в строке браузера. Более того, если имя вашего сайта имеет привязку A-записи к IP-адресу вашего сервера, то вы сможете перейти на страницу вашего сайта набрав в строке браузера его имя.
Отображение браузером страницы, созданной при помощи файла index.html , будет означать, что ваш виртуальный хост функционирует.
Поскольку мы настаиваем веб-сервер для создания сайта на PHP, то скорее всего ваша начальная страница будет содержаться в файле вида index.php . Когда такой файл вы поместите в каталог вашей онлайн-страницы, файл index.html можно будет удалить. Вернее, это нужно будет сделать, так как по умолчанию index.html имеет приоритет над файлом index.php . С другой стороны, настройку приоритетов тоже можно будет изменить.
Таким образом, можно переходить к проверке корректности установки и настройке пакета PHP.
Настройка PHP
Теперь мы поместим на наш ресурс тестовый PHP-скрипт, который поможет нам убедиться, что веб-сервер Apache способен работать с PHP.
В директории /var/www/my-domain.host/ (вместо my-domain.host вам нужно использовать имя своего хоста) создайте файл info.php :
$ cd /var/www/my-domain.host $ nano info.php
Файл info.php должен содержать следующий текст:
Закройте файл сохранив внесённые в него изменения, после чего перейдите в браузере по адресу http://XXX.XXX.XXX.XXX/info.php , где XXX.XXX.XXX.XXX – IP-адрес вашего виртуального сервера. В результате в вашем браузере должна открыться конфигурационная страница PHP:
Поскольку на выведенной странице содержится большое количество конфиденциальной информации о вашей системе, лучше удалить файл info.php после того, как вы теперь убедились, что PHP настроен корректно:
$ sudo rm /var/www/my-domain.host/info.php
Заключение
Таким образом, в результате проделанной работы мы развернули универсальный инструмент для хостинга и разработки онлайн-ресурсов. В итоге, теперь вы можете создавать веб-страницы на PHP, используя MySQL в качестве системы управления базами данных. При этом как веб-сервер в данном мануале мы использовали такое программное обеспечение как Apache.
Apache mod php mysql
перед последним make install выполнил
apache_1.3.27/src/httpd -l
не увидел mod_perl, удивился
выполнил make install
добавил в конф.файл
ServerName xx.xx.xx
DocumentRoot /opt/rt2/WebRT/html
PerlModule Apache::DBI
PerlRequire /opt/rt2/bin/webmux.pl
SetHandler perl-script
PerlHandler RT::Mason
/usr/local/apache/bin/apachectl configtest
получил ошибку
Invalid command ‘PerlModule’, perhaps mis-spelled or defined by a module not included in the server configuration
у кого-нибудь обновременно работают статические mod_php и mod_perl
Solaris 8,
Sun WorkShop 6 update 1 C 5.2 Patch 109513-10 2002/04/16
Я собираю проще: Беру последнюю версию русского апачи с ftp.lexa.ru
А насчёт перла всё просто
./configure —with-apache=../apache_1.3.26 —with-ssl=../openssl-0.9.6d \
—prefix=/usr/local/ apache —activate-module=src/modules/php4/libphp4.a -Это же есть и он работает, а кто будет делать это?
—activate-module=src/modules/perl/libperl.a ? 🙂
>P.S. И во FreeBSD НАДО СТАВИТЬ ИЗ ПОРТОВ.
А вот с этим, уважаемый, позволь не согласиться.
Лучше, если умеешь конечно, компилять все полностью самостоятельно. А если не умеешь — учиться. )
Если у вас такая ошибка, значит не запущен сервер MySQL.
У автора опечатка или неточность:
# cp /usr/local/src/mysql-3.23.52/support-files/mysql.server /usr/local/etc/rc.d
нужно копировать не в /usr/local/etc/rc.d а просто в /etc/rc.d ибо по умолчанию ссылки не установлено. Ну или создать линк командой ln /usr/local/etc должна указывать на /etc
Хотя я просто написал скрипт:
#!/bin/sh
/usr/local/etc/rc.d/mysql.server start