LAMP на Debian
Понадобилось мне для экспериментов и боевой эксплуатации установить веб сервер, выбор пал в сторону LAMP. Итак на свежую операционную систему Debian 9.4 (как устанавливать Debian я писал в соответствующей статье) начинаем производить установку LAMP.
Установка Apache
Заходим под рутом на наш linux компьютер и выполняем:
1 | sudo apt install apache2 apache2-utils |
После установки демон должен запуститься автоматически, поэтому проверим так ли это:
1 | systemctl status apache2 |
И мы должны получить следующий вывод:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-30 08:50:34 +05; 25s ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 10146 (apache2) Tasks: 6 (limit: 1007) Memory: 17.2M CGroup: /system.slice/apache2.service ├─10146 /usr/sbin/apache2 -k start ├─10150 /usr/sbin/apache2 -k start ├─10151 /usr/sbin/apache2 -k start ├─10152 /usr/sbin/apache2 -k start ├─10153 /usr/sbin/apache2 -k start └─10154 /usr/sbin/apache2 -k start |
Если демон не запущен то выполняем:
1 | sudo systemctl start apache2 |
Также можно добавить в автозагрузку:
1 | sudo systemctl enable apache2 |
Проверим версию Apache:
1 | sudo apache2 -v |
Вывод:
1 2 | Server version: Apache/2.4.38 (Debian) Server built: 2019-10-15T19:53:42 |
Теперь проверим сам Apache, для этого наберите ip адрес вашего сервера в браузере и должны увидеть следующую страницу:
SQL
Теперь нужно выбрать систему управления базами данных, для себя я выбрал MariaDB поэтому выполняем следующие команды:
1 | sudo apt install mariadb-server mariadb-client mariadb-common |
По аналогии с Apache проверяем статус службы:
1 | systemctl status mariadb |
Вывод:
1 2 3 4 5 6 7 8 9 10 11 | ● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2020-04-30 09:05:52 +05; 23s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 11716 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 1007) Memory: 75.4M CGroup: /system.slice/mariadb.service └─11716 /usr/sbin/mysqld |
Если не запущена то выполняем:
1 | sudo systemctl start mariadb |
Также врубаем автозагрузку службы:
1 | sudo systemctl enable mariadb |
Теперь нужно выполнить начальную конфигурацию выполнив следующую команду:
1 | sudo mysql_secure_installation |
Теперь нужно ответить на несколько вопросов:
1 Вас попросят ввести пароль от root, но т.к мы его не задавали то просто жмем Enter
2 Далее нажимаем Y и задаем пароль от root
3 Нажим Y тем самым вырубая гостевые аккаунты
4 Отключаем удаленный доступ root пользователя
5 Удаляем тестовые базы
6 Перезаписываем таблицы привилегий
Теперь проверим версию:
1 | mariadb --version |
Вывод:
1 | mariadb Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 |
Установка PHP
Устанавливаем PHP выполнив следующую команду:
1 | sudo apt install php7.3 libapache2-mod-php7.3 php7.3-mysql php-common php7.3-cli php7.3-common php7.3-json php7.3-opcache php7.3-readline |
Включаем php на самом Apache и перезапускаем его:
1 2 | sudo a2enmod php7.3 sudo systemctl restart apache2 |
Проверим версию php:
1 | php --version |
Вывод:
1 2 3 4 | PHP 7.3.14-1~deb10u1 (cli) (built: Feb 16 2020 15:07:23) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.14, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.3.14-1~deb10u1, Copyright (c) 1999-2018, by Zend Technologies |
Для теста PHP создадим на нашем веб сервере файл info.php в директории по умолчанию:
1 | sudo nano /var/www/html/info.php |
Вставив следующий код и сохранив файл:
1 | <?php phpinfo(); ?> |
Теперь набираем в браузере ваш-адрес-сервера/info.php и должна открыться след страница:
Установка PHP-FPM
Для начала вырубим Apache PHP модуль:
1 | sudo a2dismod php7.3 |
И установим PHP-FPM:
1 | sudo apt install php-fpm |
Включаем proxy_fcgi
и setenvif
модули:
1 | sudo a2enmod proxy_fcgi setenvif |
Потом сам PHP-FPM:
1 | sudo a2enconf php7.3-fpm |
И перезапускаем Apache:
1 | sudo systemctl restart apache2 |
Теперь набираем в браузере ваш-адрес-сервера/info.php и смотрим строку Server API:
После этого можно удалить файл info.php:
1 | sudo rm /var/www/html/info.php |
Настройка Apache
Для начала нужно настроить сам apache для это открываем файл настроек:
1 | nano /etc/apache2/apache2.conf |
После открытия файла добавляем в конец строчку:
1 | ServerName localhost:80 |
и сохраняемся
Далее нужно добавить конфигурационный файл
1 | nano /etc/apache2/sites-available/mysite.org.conf |
1 2 3 4 5 6 7 8 9 10 | <VirtualHost *:80> ServerName mysite.org ServerAlias www.mysite.org DocumentRoot /var/www/mysite.org/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <Directory "/var/www/mysite.org/html"> AllowOverride All </Directory> |
Создадим каталог для нашего сайта:
1 | mkdir -p /var/www/mysite.org/html |
Добавим тестовую страницу:
1 | nano /vat/www/mysite.org/html/index.html |
1 2 3 4 5 6 7 8 | <html> <head> <title>Welcome</title> </head> <body> <h1>mysite.org</h1> </body> </html> |
Теперь нужно назначить владельца на папку с нашим сайтом:
1 | chown -R www-data:www-data /var/www/mysite.org/html |
Далее назначаем права на наш каталог:
1 | chmod -R 755 /var/www |
Подключаем наш домен:
1 | a2ensite mysite.org.conf |
И перезапускаем апач:
1 | service apache2 restart |
Для того чтобы открыть наш домен нужно у себя на машине прописать dns запись, для этого открываем файл hosts, в windows это (%SystemRoot%\System32\drivers\etc) в nix (/etc/hosts) и делаем запись вида
1 | Ip адрес сервера mysite.org |