Установка LAMP на Debian 8.7

Аватара пользователя

Автор темы
zuzabrik
Сообщения: 1744
Зарегистрирован: 29 авг 2016, 12:08
Решено: 20
Благодарил (а): 108 раз
Поблагодарили: 521 раз
Контактная информация:

Установка LAMP на Debian 8.7

#1

18 фев 2017, 19:03

Что это такое?

LAMP обычно называют веб-сервер с поддержкой PHP и SQL. Изначально LAMP означает Linux+Apache+MySQL+PHP, но сейчас часто можно услышать про LAMP на Windows и прочие забавности. То есть это уже скорее не аббревиатура дословно, а некое собирательное название веб-сервера с БД и скриптами :-D

Мы будем ставить по классике - Apache, MySQL, PHP. Внимательный читатель заметит, что ставить мы это будем на Debian, а не Linux Mint, но так судьба сложилась :-D Минта под рукой нет. Но рецепт установки должен быть верен и для этой ОС. Также в качестве СУБД и веб-сервера могут быть другие решения (например mariadb, lighttpd итд итп).

ВНИМАНИЕ!

Руководство предназначено для поднятия у себя на компьютере тестового сервера. Например если вам нужно обкатать или поправить сайт, который затем вы зальете на нормальный сервер :-D По этой инструкции можно установить LAMP и для работы, но он потребует дополнительно конфигурации для безопасности и производительности.

Шаг 1 - ставим пакеты

Устанавливаем пакеты apache2, libapache2-mod-php5, mysql-server, php5-mysql, phpmyadmin любым удобным для вас способом.

В процессе установки он задаст нам несколько вопросов по настройке MySQL и phpmyadmin.
1.png
2.png
3.png
4.png
5.png
6.png
7.png
Шаг 2 - проверяем работоспособность

Для проверки достаточно зайти в phpmyadmin. Если он работает корректно, значит веб-сервер, php, mysql запущены и отлично работают вместе.

Мы же проверим их по одному :)

a) Откроем браузер и перейдем по адресу 127.0.0.1 Если вы увидите перед собой веб-страницу вроде той что под спойлером - веб-сервер запущен и работает.
8.png
б) По умолчанию в дебиан содержимое сайта лежит в /var/www/html/ Права на запись в эту папку есть только у root. Давайте добавим туда к файлу index.html файл index.php с таким содержанием:

Код: Выделить всё

<?php
    phpinfo ();
?>
и наберем в браузере 127.0.0.1/index.php. Если php работает нормально, вы увидите экран похожий на скрин под спойлером.
9.png
в) Для проверки MySQL можно набрать в терминале mysql -u root -p и ввести пароль который вы установили при добавлении пакетов. Выйти из консоли mysql можно набрав exit.

Код: Выделить всё

yafu@pc:~$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 54
Server version: 5.5.54-0+deb8u1 (Debian)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit
Bye
yafu@pc:~$
г) Наконец проверяем phpmyadmin. Его установка не обязательна, но упрощает работу с базой данных. Для этого введем в браузере 127.0.0.1/phpmyadmin/ и увидим нечто похожее на скрин под спойлером.
10.png
Шаг 3 - тюнинг и допилинг

Обычно нам не нужно чтобы при старте ОС автоматически запускались и наши сервера. Отключим их автозапуск командами

Код: Выделить всё

systemctl disable apache2.service
systemctl disable mysql.service
С другой стороны хотелось бы иметь возможность быстро и просто запускать их и останавливать :) Давайте для этого создадим 3 коротких скрипта и подредактируем настройки sudo. По умолчанию в Linux Mint bash настроен так что при наличии в домашней директории пользователя папки bin он включает ее в переменную $PATH

Создадим папку ~/bin и добавим туда 3 файла lampstart, lampstop и lamprestart с правами на выполнение

lampstart

Код: Выделить всё

sudo systemctl start apache2.service
sudo systemctl start mysql.service
lampstop

Код: Выделить всё

sudo systemctl stop apache2.service
sudo systemctl stop mysql.service
lamprestart

Код: Выделить всё

sudo systemctl restart apache2.service
sudo systemctl restart mysql.service
А также добавим в файл /etc/sudoers следующие строки (где user меняем на ваше имя пользователя)

Код: Выделить всё

user	ALL = NOPASSWD: /bin/systemctl start apache2.service
user	ALL = NOPASSWD: /bin/systemctl start mysql.service
user	ALL = NOPASSWD: /bin/systemctl restart apache2.service
user	ALL = NOPASSWD: /bin/systemctl restart mysql.service
user	ALL = NOPASSWD: /bin/systemctl stop apache2.service
user	ALL = NOPASSWD: /bin/systemctl stop mysql.service
Теперь вы можете командами lampstart lampstop lamprestart запускать останавливать и перезапускать ваши веб-сервер и СУБД без пароля СМС и регистрации.

Давайте также настроим сервер так чтобы при обращении из браузера по адресу http://testserver он нам выдавал содержимое сайта из папки /var/www/html/testserver/ Для этого создадим эту папку и изменим ее владельца на нашего пользователя.

Добавим в файл /etc/hosts строчку

Код: Выделить всё

127.0.0.1	testserver
Конфиги apache лежат в папке /etc/apache2/ В подпапке sites-available создадим файл testserver.conf и запишем туда нечто вроде этого.

Код: Выделить всё

<VirtualHost testserver:80>
	ServerName testserver
	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html/testserver

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
после чего создадим на него ссылку в папке sites-enabled

В заключение

Последней частью руководства я хотел описать установку phpbb на наш новенький тестовый сервер, но она оказалась такой простой что постить ее я не буду :-D
А мог бы стать нормальным человеком...

Закрыто

Вернуться в «Руководства»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей