Стек LAMP - это набор программных продуктов с открытым исходным кодом, которые часто используются вместе. Аббревиатура LAMP используется для описания компьютерной системы, состоящей из следующих компонентов: Linux, Apache HTTP Server (или просто сервер), MySQL и PHP/Perl/Python.
Пользователь может установить все эти компоненты отдельно на одном компьютере или, что более распространено, на отдельных компьютерах, соединенных сетью; однако некоторые компоненты зависят от других компонентов - например, невозможно установить Apache без предварительной установки Linux - поэтому стандартной практикой установки является установка всех компонентов на одной компьютерной системе.
Стек LAMP - это сочетание программного обеспечения с открытым исходным кодом для создания серверной среды, наиболее часто используемой в веб-разработке.
Под открытым исходным кодом понимается что-то, особенно приложение или операционная система, исходный код которой доступен для свободного использования или распространения, хотя могут применяться определенные пользовательские ограничения. Это позволяет пользователям создавать копии любого продукта и вносить в них любые изменения.
В этой статье будет показана установка стека LAMP на Debian 11. После завершения установки у вас будет веб-сервер, который с легкостью обслуживает ваши сайты и приложения. Здесь мы покажем, как установить их вручную из терминала, если вы хотите иметь полный контроль над настройками системы, например, самостоятельно редактировать конфигурационные файлы.
Обновление системы
Чтобы приступить к "лучшим практикам", вам следует начать с обновления установленных пакетов в вашей системе. Вы можете сделать это либо из графического интерфейса пользователя, либо из интерфейса командной строки (shell).
1 2 | sudo apt update sudo apt upgrade |
Установка Apache
Веб-сервер Apache - это бесплатная программа с открытым исходным кодом, которая может использоваться на различных типах компьютерных систем. Это самый используемый в мире веб-сервер. Проект веб-сервера Apache был запущен в 1995 году, и он сыграл ключевую роль в развитии Всемирной паутины, предоставив платформу, которая позволяет любому человеку свободно создавать свои собственные веб-сайты.
Вы можете установить apache на Debian 11 с помощью следующей команды. Эта команда извлечёт все зависимости Apache и модули поддержки.
1 | sudo apt-get install apache2 apache2-utils -y |
После установки запустите и включите службу Apache, чтобы Apache загружался автоматически при загрузке.
1 | sudo systemctl enable apache2 --now |
Apache прослушивает порт 80 для HTTP-запросов и порт 443 для HTTPS-запросов. Вы можете убедиться в этом, проверив порты прослушивания Apache с помощью команды ss (аналогично netstat ).
1 | sudo ss -antpl | grep apache2 |
Чтобы проверить, запущен ли сервер Apache, используйте команду systemctl status для проверки его состояния.
1 | sudo systemctl status apache2 |
Мы видим, что Apache активен, запущен и включен при загрузке. Он выделяет 23,2 МБ памяти и имеет три процесса.
Служба Apache запущена. Однако лучший способ проверить его работу - запросить веб-страницу с сервера.
Вы можете запросить веб-страницу, указав браузеру IP-адрес или доменное имя вашего сервера.
http://[IP-адрес или доменное имя]
Если служба Apache работает правильно, будет показана страница Apache по умолчанию.
Установка сервера базы данных MariaDB
MariaDB - это система управления реляционными базами данных с открытым исходным кодом, которая является полноценной заменой MySQL. MariaDB, как и многие другие проекты и базы данных с открытым исходным кодом, является бесплатной. Она разработана в духе обмена и сотрудничества - настолько, что ее название было переведено с Maria Damon Burton и означает "промоутер". Официально она принадлежит MariaDB Corporation AB, шведской компании и основному разработчику MariaDB.
Вы можете установить MariaDB на Debian 11 с помощью следующей команды. При этом будут извлечены все зависимости и модули поддержки MariaDB.
1 | sudo apt-get install mariadb-server -y |
После установки запустите и включите службу Mariadb, чтобы MariaDB загружалась автоматически при загрузке.
1 | sudo systemctl enable mariadb --now |
Чтобы проверить, запущен ли сервер MariaDB, используйте команду systemctl status для проверки его состояния.
1 | sudo systemctl status mariadb |
MariaDB - это программа сервера баз данных, которая может использоваться для хранения и получения данных. Она более безопасна, если вы не допускаете настройки конфигурации по умолчанию, что должно защитить вашу установку MariaDB от любых уязвимостей. Вы можете запустить сценарий безопасной установки mysql, предоставляемый пакетом mariadb-server, чтобы защитить вашу установку.
1 | sudo mysql_secure_installation |
Этот скрипт проведет вас через серию подсказок, которые помогут вам сделать вашу установку MariaDB безопасной.
Первая подсказка попросит вас ввести пароль для административного пользователя root. Вы вводите текущий пароль для пользователя root. Поскольку вы не задавали пароль root, просто нажмите Enter, чтобы не вводить его.
Следующая подсказка попросит вас переключиться на аутентификацию unix_socket, введите Y и нажмите Enter.
Следующая подсказка проверяет, хотите ли вы создать пароль корня базы данных. Установка корневого пароля является важным шагом в обеспечении безопасности MariaDB. Он гарантирует, что никто не сможет получить доступ к вашей базе данных в качестве администратора без разрешения, и дает вам больше контроля над безопасностью в целом.
Введите Y и нажмите клавишу Enter. Введите выбранный вами пароль для пользователя MariaDB root. Вам нужно будет использовать этот пароль при подключении к подсказке MariaDB. Выберите пароль, который будет трудно угадать, но легко запомнить.
Для остальных подсказок вы можете ввести Y и нажать Enter, чтобы принять значения по умолчанию. Эти подсказки касаются удаления тестовой базы данных, запрета удаленного входа root и перезагрузки таблиц привилегий.
Теперь, когда вы закончили защиту вашей установки MariaDB. Вы можете проверить соединение с помощью утилиты mysqladmin, которая позволит установить связь с базой данных. Например, следующая команда позволяет нам подключиться от имени root и отобразить информацию о версии нашей установки MariaDB.
1 | sudo mysqladmin version |
Установка языка сценариев PHP
Если вы хотите создать динамичный и интерактивный веб-сайт, то ваш выбор должен остановиться на языке программирования PHP. Он широко используется на современных веб-страницах благодаря своей способности создавать большую интерактивность с различными функциями, такими как календари или корзины для покупок, среди прочих.
Вы можете установить PHP вместе с другими часто используемыми модулями с помощью следующей команды.
1 2 | sudo apt-get install php -y sudo apt-get install php-mysql php libapache2-mod-php php-cli -y |
Чтобы получить список всех установленных модулей PHP, выполните следующую команду.
1 | php -m |
Чтобы проверить версию PHP, установленную на вашей машине, используйте команду php -v.
1 | php -v |
Вы можете проверить установку PHP, написав простой php-код в файле, поместив его в корневой каталог сайта и выполнив его.
1 | echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php |
Перезапустите сервер apache, чтобы получить доступ к файлу php в браузере.
1 | sudo systemctl restart apache2 |
Откройте веб-браузер и перейдите к файлу you_server_ip/info.php, где you_server_ip - это фактический IP-адрес вашего сервера.
1 | you_server_ip/info.php |
Этот URL откроет страницу, отображающую информацию о php, такую как версия и параметры конфигурации, используемые при установке двоичных файлов php.
Создание виртуального хоста для Apache
На данном этапе ваш стек LAMP настроен и готов к работе. Чтобы обеспечить себе свободу размещения нескольких веб-сайтов, создайте виртуальный хост и используйте этот сервер для всех будущих проектов. Виртуальные хосты - один из самых распространенных способов запуска веб-сайтов с помощью Apache. Виртуальный хост позволяет привязать несколько доменных имен (или псевдонимов) к одному IP-адресу. В большинстве случаев это делается для веб-серверов, которые размещают несколько веб-сайтов с разными доменными именами на одной машине.
В этой части мы создадим виртуальный хост example.com. Не стесняйтесь заменять example.com своим собственным доменным именем, когда будете следовать за нами.
Первым шагом является создание корневых каталогов документов для каждого из сайтов, которые вы будете обслуживать с вашей машины. В этом примере мы создадим каталог /var/www/html/example.com
1 | sudo mkdir -p /var/www/html/example.com |
Затем назначьте некоторые права доступа к этим каталогам.
1 | sudo chown -R www-data:www-data /var/www/html/example.com |
Теперь перейдите в каталог /www/html/example.com и создайте файл example.html
1 2 | cd /var/www/html/example.com sudo nano example.html |
и заполните его следующими строками.
1 2 3 4 5 | <html> <body> <center><h1>Здравствуй мир!</h1></center> </body> </html> |
Сохраните и закройте этот файл, когда закончите.
Теперь мы можем создать наш файл виртуального хоста. Откройте файл /etc/apache2/sites-available/example.com.conf с помощью выбранного вами редактора.
1 | sudo nano /etc/apache2/sites-available/example.com.conf |
Заполните файл следующими строками.
1 2 3 4 5 6 7 | <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName example.com DocumentRoot /var/www/html/example.com ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log комбинированный </VirtualHost> |
Сохраните и закройте этот файл, когда закончите.
Теперь мы можем включить этот виртуальный хост и перезапустить Apache2:
1 2 | a2ensite example.com.conf systemctl restart apache2 |
Вы можете проверить виртуальный хост, который вы только что создали, с помощью следующей команды.
1 | sudo apache2ctl configtest |
Если все правильно, будет показан результат OK.
Вы также можете еще раз проверить состояние службы Apache с помощью следующей команды.
1 | sudo systemctl status apache2 |
Вы можете протестировать свои виртуальные хосты, зайдя на сайт example.com в веб-браузере после того, как вы их настроили.
Убедитесь, что во время тестирования на экране не появляются какие-либо ошибки или странное поведение сервера, например, в течение нескольких минут загружается только одна страница, сервер выдает сообщение об ошибке о невозможности получить доступ и т.д.
Заключение
В этой статье мы кратко познакомили вас со стеком LAMP и показали, как установить его на систему Debian 11. Мы надеемся, что предоставленная информация поможет быстрее начать ваш проект веб-разработки. Если у вас возникли вопросы или вам нужна дальнейшая помощь в установке, пожалуйста, сообщите нам об этом в комментариях ниже.