Установка Apache2 + php + MySQL + PhpmyAdmin | LAMP
Буквально у каждого веб-разработчика рано или поздно возникает потребность установить веб-сервер на виртуальный VPS или выделенный сервер для хостинга своих проектов.
Для этого на наш заранее подготовленный виртуальный выделенный сервер необходимо установить стек LAMP.
Стек LAMP — это набор программного обеспечения с открытым исходным кодом, который позволяет нам размещать динамические веб-сайты и такие популярные СMS системы как: WordPress, Drupal, CS-CART и другие. LAMP является аббревиатурой: состоит из серверной операционной системы Linux, веб-сервера Apache, системы управления базами данных MariaDB (замена MySQL) и языка веб-сценариев PHP.
Приступим к установке стека LAMP на виртуальный выделенный сервер с установленной операционной системой Debian 10 (Buster).
Подключимся к нашему серверу с правами супер пользователя (root) и выполним
Обновление пакетов и компонентов системы:
1 | apt update && apt upgrade |
Установка Apache
Устанавливаем Apache и соглашаемся на установку всех зависимостей.
1 | apt-get install apache2 |
Проверяем работоспособность службы после установки
1 | systemctl status apache2.service |
Список команд для работы со службой Apache
1 2 3 4 | systemctl start apache2.service # Запустить Apache systemctl restart apache2.service # Перезапуск Apache systemctl stop apache2.service # Остановить сервер systemctl reload apache2.service # Перезагрузить серверный конфиг |
Apache имеет поддержку большого количества модулей. Рассмотрим некоторые из них. Введем команду для активации мода ssl:
1 | a2enmod ssl |
Данный модуль активирует поддержку ssl и дает возможность создавать виртуальные хосты по протоколу HTTPS.
1 | a2enmod rewrite |
Данный модуль включает поддержку для преобразования URL адресов
Обязательно после каждой активации или отключения модуля перезапускаем службу Apache
1 | service apache2 restart |
Установка PHP
PHP (Hypertext Preprocessor) – это серверный язык сценариев с открытым исходным кодом, используемый для разработки веб-приложений и работы с базами данных
PHP может быть встроен в HTML, и он хорошо подходит для веб-разработки и создания динамических веб-страниц для веб-приложений, приложений электронной коммерции и приложений баз данных. Он считается дружественным языком, способным легко соединяться с MySQL, Oracle и другими базами данных.
Для установки введем команду:
1 | apt-get install php7.3 libapache2-mod-php php-mysql |
Данной командой мы установим php версии 7.3. Установка libapache2-mod-php поможет в взаимодействии apache с php, а php-mysql для взаимодействия с mysql.
так же при необходимости можете добавить модули:
1 | apt-get install php-cli php-imagick php-phpseclib php-php-gettext php-common php-mysql php-gd php-imap php-json php-curl php-zip php-xml php-mbstring php-bz2 php-intl php-gmp |
Соглашаемся на установки всех зависимостей и переходим к установке СУБД.
Установка MySQL (MariaDB)
СУБД будем использовать MariaDB.
MariaDB полностью совместима с оригинальной MySQL, при этом она более оптимизированная, производительная и распространяется под бесплатной лицензии GPL.
Используем команду для установки СУДБ MariaDB:
1 | apt install mariadb-server –y |
параметр –y означает, автоматическое подтверждение на установку всех зависимых пакетов
1 2 3 | systemctl enable mariadb #добавить службу mariadb в астозагрузку systemctl start mariadb #запустить службу mariadb systemctl status mariadb #проверить работу mariadb |
Далее необходимо запустить сценарий безопасности, который позволяет повысить безопасность установки MariaDB, для этого выполним команду:
1 | mysql_secure_installation |
Запуститься скрипт и необходимо будет ответить на ряд вопросов:
• Set root password? [Y/n]: Y #устанавливаем пароль нашей БД
• New password: новый пароль #
• Re-enter new password: повторить пароль #
• Remove anonymous users? [Y/n]: Y #удаляем анонимных пользователей
• Disallow root login remotely? [Y/n]: Y #Запрещаем возможность удаленного подключения от пользователя root
• Remove test database and access to it? [Y/n]: Y #Удаляем тестовую базу данных и доступ к ней
• Reload privilege tables now? [Y/n]: Y #перезаписываем таблицы привилегий
После окончания настройки нашей СУБД, переходим к тестированию работоспособности вашего веб сервера. Для этого в адресной строке браузера откроем адрес нашего домена, например:
вместо доменного имени (mydomain), можно использовать IP адрес сервера.
Установка PhpmyAdmin
Скачаем последнюю версию PhpmyAdmin с официального сайта.
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.1/phpMyAdmin-5.0.1-all-languages.zip
Посмотреть последнюю актуальную версию можно на сайте:
https://www.phpmyadmin.net/files/
Предварительно установим архиватор, чтобы распаковать скачанный архив с PhpmyAdmin:
1 | apt install unzip -y |
Распакуем архив:
1 | unzip phpMyAdmin-5.0.1-all-languages.zip |
Переместим разархивированные файлы в директорию /usr/share
1 | mv phpMyAdmin-5.0.1-all-languages /usr/share/phpmyadmin |
Установим права www-data для каталога phpmyadmin
1 | chown -R www-data:www-data /usr/share/phpmyadmin |
создадим конфигурационный файл phpmyadmin:
1 | nano /etc/apache2/conf-available/phpmyadmin.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #phpMyAdmin default Apache configuration# Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options SymLinksIfOwnerMatch DirectoryIndex index.php <IfModule mod_php5.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> <IfModule mod_php.c> <IfModule mod_mime.c> AddType application/x-httpd-php .php </IfModule> <FilesMatch ".+.php$"> SetHandler application/x-httpd-php </FilesMatch> php_value include_path . php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/ php_admin_value mbstring.func_overload 0 </IfModule> </Directory> Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authz_core.c> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </IfModule> </Directory> Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/templates> Require all denied </Directory> <Directory /usr/share/phpmyadmin/libraries> Require all denied </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Require all denied </Directory> |
Включим конфигурацию и перезагрузим apache:
1 | a2enconf phpmyadmin.conf && systemctl reload apache2 && systemctl restart apache2 |
Теперь phpmyadmin доступен по адресу http://mydomain.com/phpmyadmin
Нам осталось создать пользователя для работы с mysql, базу данных и можно приступать к работе:
1 2 3 4 5 | mysql -u root -p create database dbase_name; CREATE USER 'fulladmin'@'localhost' IDENTIFIED BY 'strongpassword'; GRANT ALL PRIVILEGES ON dbase_name.* to 'fulladmin'@'localhost' IDENTIFIED BY 'strongpassword' WITH GRANT OPTION; FLUSH PRIVILEGES; |
где dbase_name — это имя нашей базы данных;
fulladmin — имя пользователя базы данных;
strongpassword — пароль от базы данных dbase_name;
Перезапустим сервер Apache:
1 | systemctl restart apache2.service |
Протестируем работу нашего веб-сайта или приложения.
Создаем файл:
1 | nano /var/www/html/index.php |
Запишите и сохраните следующий код:
1 | <?php phpinfo();?> |
Данная функция phpinfo() — выводит информацию о текущей конфигурации PHP.
Заново перезапустите веб-сервер:
1 | service apache2 restart |
Перейдите в браузере по следующей ссылке, указав IP-адрес вашего сервера:
http://IP-сервера/index.php
Отобразиться страница с информации о текущем состоянии и версии PHP, информация о сервере, о версии ОС, установленных плагинах и многое другое.
В следующей статье мы подробно разберем, как установить CMS систему WordPress на уже созданный стек LAMP, оставайтесь с нами 🙂
Вы заметили ошибку или не точность в статье? У Вас есть идеи и предложения по улучшению контента или возникли вопросы? Для этого активно задавайте вопросы, оставляйте комментарии и если понравилась статья порекомендуйте друзьям.
Спасибо за внимание.