Lamp ubuntu удаление. Если нужны изменения в my.conf. Корневой доступ к PHPMyAdmin с помощью MariaDB.
Основные операции при использовании LAMP в Ubuntu 16.04
Введение
Это статья повторяет статью Меняем среду обитания на Ubuntu 16.04 , но сдесь более подробно рассматривается установка lamp и настройка окружения, которое может понадобится.
Установка LAMP Ubuntu 16.04
Ctrl+Alt+T и вводим именно так (c символом крышки на конце)
sudo apt install lamp-server^
Настройка своего виртуального хоста
sudo mkdir /var/www/site.local/publick_html Создаём папку для сайта
sudo vi /var/www/site.local/publick_html/index.php Создаём файл
Теперь можно добавлять виртуальный хост
sudo vi /etc/apache2/sites-available/site.local.conf
Options Indexes FollowSymlinks - это чтобы иметь возможность видеть файлы в директории если нет index.html.
AllowOverride All - это позволяет использовать.htaccess.
Require all granted - доступ разрешён всем.
Потом добавляем хост в локальную dns
sudo vi /etc/hosts
И перезагружаем apache
sudo service apache2 reload
Поправим некоторые настройки в php.ini (по желанию)
sudo vi /etc/php/7.0/apache2/php.ini
display_errors = On
short_open_tag = On
Включить mod_rewrite Ubuntu 16.04
После установки LAMP в Ubuntu 16.04 mod_rewrite уже установлен. Но нужно его включить
sudo a2enmod rewrite
Установка других необходимых модулей Php
Установлен или нет модуль curl не понятно, однако чтобы заработал curl_init() оказалось достаточным произвести инсталяцию php7-curl
sudo apt install php7.0-curl
Достоверно известно (на собственном опыте) что sqlite3 не заработает в стандартной сборке LAMP. И чтобы заработал нужно инсталировать модуль php7.0-sqlite3
sudo apt install php7.0-sqlite3
Если понадобится работа с Excel файлами (PHPExcel), то нужны будут библиотеки php7.0-zip и php7.0-xml
sudo apt install php7.0-zip
sudo apt install php7.0-xml
Кроме этого мне понадобилось установить GD
sudo apt install php7.0-gd
Если необходимо установить все доступные модули php можно выполнить такую команду
sudo apt install php*
Установка PhpMyAdmin
При установке phpmyadmin необходимо позаботится о том, чтобы запустить автонастройку его для сервера apache2 (он сам предложит, нужно только выбрать сервер с помощью клавиши «Пробел»)
sudo apt install phpmyadmin php7.0-mbstring php-gettext
Файлы настроек LAMP Ubuntu 16.04
Apache: /etc/apache2
Php server: /etc/php/7.0/apache2/php.ini
Php console: /etc/php/7.0/cli/php.ini
MySQL: /etc/mysql/my.cnf
Если нужны изменения в my.conf
Изменения в my.cnf делать не следует поскольку все файлы лежащие в каталоге
/etc/mysql/conf.d/ с расширением.cnf будут подключены автоматически.
И сразу изменим кодировку для mysql поскольку по умолчанию в Ubuntu используется кодировка latin-1. Ну а чтобы убедится что это действительно так вводим
show variables like `char%`;
Исправляем это:
sudo vi /etc/mysql/conf.d/utf8_set.cnf
character-set-server=utf8
collation-server=utf8_general_ci
Прочие сведения о среде в Ubuntu 16.04
Имя пользователя под которым работает apache2 в Ubuntu 16.04: www-data
Отсюда следует, если мы хотим сделать папку доступной для записи файлов через веб сервер то нужно сделать это так chown -R www-data:www-data /path/to/folder/
Разумеется это нужно сделать только в том случае, если мы не хотим делать вот так.
Каждый начинающий веб-разработчик однажды сталкивается с необходимостью самостоятельно установить и настроить LAMP. Сегодня я расскажу, как это сделать.
Цикл статей о LAMP:
Примечание.
Данная статья описана для Ubuntu 16.04 и выше.
Но прежде, чем переходить к самому руководству, давайте расшифруем эту аббревиатуру.
Apache – собственно веб-сервер. Отвечает за получение и обработку запросов пользователей, но умеет гораздо больше.
MySQL – одна из самых распространенных систем управления базами данных. Строго говоря, вывести заветный ‘Hello World’ с помощью PHP можно и без этого компонента. Тем не менее, он необходим как для популярных CMS вроде WordPress, Joomla и Drupal, так и для самописных систем.
PHP – один из самых популярных языков программирования. На PHP написана серверная часть подавляющего большинства сайтов в мире.
Установка Apache, MySQL и PHP.
Установить вышеперечисленный набор можно как с помощью графического интерфейса, так и через командную строку. Мы рассмотрим второй вариант, как более универсальный.
Обратите внимание: в этой статье рассматривается установка и настройка сервера для локального использования. Подготовка площадки для размещения сайта, доступного извне, потребует более серьезной настройки.
Обновим список доступных пакетов:
sudo apt-get update
После этого установим Apache:
sudo apt-get install apache2
Пакетный менеджер отыщет необходимые зависимости и попросит подтвердить согласие на установку. Вводим Y, жмем Enter, дожидаемся завершения установки.
Проверяем работу Apache, введя в адресной строке браузера следующий адрес:
Если вы увидите страницу, изображенную ниже – значит, сервер работает как надо.
При получении сообщения об ошибке не спешите расстраиваться, скорее всего, Apache не запустился автоматически. Сделайте это вручную:
sudo service apache start
После чего обновите страницу.
Устанавливаем сервер MySQL:
sudo apt-get install mysql-server
Снова подтверждаем согласие и через несколько секунд получаем предложение установить пароль.
Выполнив требуемое, дожидаемся окончания и вводим следующую команду:
sudo apt-get install php
Менеджер пакетов снова соберет список зависимостей, нам останется лишь согласиться.
Стек LAMP – это группа открытых программ, которая необходима серверу для поддержки динамических сайтов и веб-приложений. Акроним LAMP расшифровывается как Linux (операционная система), Apache (веб-сервер), MySQL (система управления базами данных) и PHP (серверный язык сценариев для обработки динамического контента).
На сервере уже установлен первый компонент – операционная система Ubuntu, которая является дистрибутивом Linux. Данное руководство поможет установить остальные компоненты стека.
Требования
- Сервер Ubuntu 16.04.
- Не-root пользователь с доступом к команде sudo (все инструкции по созданию такого пользователя можно найти ).
1: Установка Apache и настройка брандмауэра
Apache является одним из самых популярных веб-серверов в мире.
Установить Apache очень просто, пакеты этого веб-сервера доступны в стандартном репозитории Ubuntu. Для установки используйте пакетный менеджер apt; он помогает устанавливать программное обеспечение и поддерживать его в актуальном состоянии.
Примечание : Подробнее о менеджере apt — в .
Обновите индекс пакетов и установите Apache:
sudo apt-get update
sudo apt-get install apache2
Чтобы запустить команды с правами sudo, нужно предоставить пароль текущего пользователя.
Получив валидный пароль, менеджер apt сообщит, какие пакеты он собирается установить и сколько дискового пространства для этого потребуется.
Чтобы продолжить, нажмите Y и Enter.
Теперь нужно убедиться, что брандмауэр UFW пропускает трафик HTTP и HTTPS. Просмотрите доступные профили Apache:
sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Профиль Apache Full разрешает трафик на порт 80 и 443.
sudo ufw app info "Apache Full"
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
80,443/tcp
Разрешите входящий трафик:
sudo ufw allow in "Apache Full"
Чтобы убедиться, что теперь брандмауэр поддерживает входящий трафик на порт 80 или 443, посетите внешний IP своего сервера в браузере.
http://your_server_IP_address
На экране должна появиться стандартная страница Apache для Ubuntu:
It works!
This is the default welcome page used to test the correct operation of the Apache2 server after installation on Ubuntu systems. …
Как узнать свой внешний IP-адрес
Существует несколько способов определить внешний IP-адрес сервера при помощи командной строки.
Во-первых, можно использовать инструменты iproute2:
ip addr show eth0 | grep inet | awk "{ print $2; }" | sed "s/\/.*$//"
Команда вернёт несколько адресов, однако сервер может использовать не все эти адреса, а только один из них; проверьте каждый полученный адрес.
Также можно запросить свой адрес у третьей стороны при помощи утилиты curl.
sudo apt-get install curl
curl http://icanhazip.com
2: Установка MySQL
MySQL – это реляционная система управления базами данных (СУБД), которая систематизирует и хранит данные сайта.
Эту систему также можно установить с помощью менеджера apt. Чтобы установить MySQL и несколько вспомогательных программ, введите:
sudo apt-get install mysql-server
Примечание: В данном случае обновлять индекс пакетов не нужно, потому что он был обновлён перед установкой Apache.
Менеджер сообщит список пакетов, которые будут установлены, и необходимое для этого дисковое пространство.
Во время установки программа предложит выбрать и подтвердить пароль root пользователя MySQL. Это пароль администратора MySQL. Обязательно выберите надёжный пароль и установите его.
После завершения установки нужно запустить сценарий безопасности, который удалит ненадёжные параметры и защитит БД от несанкционированного доступа.
sudo mysql_secure_installation
Сценарий предложит указать root-пароль MySQL, а затем задаст ряд вопросов.
Предупреждение: Сценарий предложит включить параметр VALIDATE PASSWORD PLUGIN. Если этот параметр включен, пароли, которые не соответствуют указанным критериям, будет отклонены системой MySQL как ошибка. Это вызовет проблемы, если вы используете слабый пароль в программах, которые автоматически настраивают учетные данные пользователя MySQL (например PhpMyAdmin). Безопаснее отключить этот параметр и использовать надёжные уникальные пароли.
Чтобы принять настройки по умолчанию, нажмите y на остальные вопросы сценария.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
Если вы включили валидацию паролей, программа предложит выбрать уровень. Уровень 2 – наивысший; при этом валидацию пройдут только пароли, содержащие цифры, буквы верхнего и нижнего регистра и специальные символы. Пароли, состоящие из обычных слов, будут отклонены.
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Если валидация паролей включена, программа покажет надёжность текущего root пароля и предложит изменить его. Если вас устраивает ваш пароль, введите n.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MySQL.
3: Установка PHP
PHP – это серверный язык сценариев для создания динамических страниц. Он позволяет запускать сценарии, подключаться к БД MySQL и передавать обработанный контент в браузер для отображения.
PHP также можно установить с помощью менеджера apt. Чтобы установить PHP и несколько вспомогательных пакетов (для настройки взаимодействия с Apache и MySQL), введите команду:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
В большинстве случаев рекомендуется настроить обработку файлов веб-сервером Apache при запросе каталога. На данный момент Apache сначала обслуживает index.html. Чтобы веб-сервер обслуживал PHP-файлы первыми, нужно отредактировать файл dir.conf:
sudo nano /etc/apache2/mods-enabled/dir.conf
Файл выглядит так:
DirectoryIndex index.html index.cgi index.pl index.php
index.xhtml index.htm
Как видите, файлы index.php находятся в конце строки, а значит, веб-сервер будет обслуживать их в последнюю очередь. Переместите index.php в начало строки DirectoryIndex:
DirectoryIndex index.php
index.html index.cgi index.pl index.xhtml index.htm
Сохраните и закройте файл (Ctrl-X, Y, Enter).
Теперь перезапустите Apache, чтобы обновить настройки:
sudo systemctl restart apache2
Проверьте состояние сервиса apache2 при помощи systemctl:
sudo systemctl status apache2
apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start
Apr 13 14:28:42 ubuntu-16-lamp systemd: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd: Starting LSB: Apache2 web server...
Apr 13 14:28:42 ubuntu-16-lamp apache2: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2: AH00558: apache2: Could not reliably determine the server"s fully qualified domain name, using 127.0.1.1. Set the "ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2: *
Apr 13 14:28:43 ubuntu-16-lamp systemd: Started LSB: Apache2 web server.
Установка модулей PHP (опционально)
Функционал PHP можно расширить при помощи модулей.
Чтобы просмотреть список доступных модулей и библиотек PHP, используйте следующую команду:
apt-cache search php- | less
Примечание: Для навигации используйте кнопки со стрелками; чтобы закрыть список, нажмите q.
На экране появится список опциональных компонентов с кратким описанием каждого из них:
libnet-libidn-perl - Perl bindings for GNU Libidn
php-all-dev - package depending on all supported PHP development packages
php-cgi - server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli - command-line interpreter for the PHP scripting language (default)
php-common - Common files for PHP packages
php-curl - CURL module for PHP
php-dev - Files for PHP module development (default)
php-gd - GD module for PHP
php-gmp - GMP module for PHP
…
Чтобы получить подробную информацию о модуле, используйте:
apt-cache show package_name
Данная команда вернёт объёмный вывод, включая поле Description-en, в котором содержится подробное объяснение работы запрашиваемого модуля.
К примеру, можно узнать больше о модуле php-cli:
apt-cache show php-cli
…
Description-en: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Debian"s default
PHP version (currently 7.0).
…
Чтобы установить выбранный модуль, используйте команду apt-get install, указав имя модуля. Например, чтобы установить php-cli, нужно ввести:
sudo apt-get install php-cli
Чтобы установить несколько модулей с помощью одной команды, просто перечислите имена необходимых модулей через пробел.
sudo apt-get install package1 package2 ...
4: Тестирование PHP
Итак, стек LAMP полностью установлен и готов к работе. Теперь нужно убедиться в том, что веб-сервер взаимодействует с PHP. Для этого нужно создать простой сценарий PHP, info.php. Чтобы веб-сервер Apache мог найти этот файл, его нужно поместить в root-каталог веб-сервера (в Ubuntu это /var/www/html/).
sudo nano /var/www/html/info.php
На экране появится пустой файл. Поместите в него такой код:
phpinfo();
Сохраните и закройте файл.
Теперь попробуйте открыть его в браузере:
http://server_domain_or_IP/info.php
На экране появится веб-страница, содержащая информацию о сервере. Если такая страница появилась, веб-сервер обслуживает файлы PHP.
Важно! После проверки обязательно удалите этот файл, иначе любой пользователь сможет получить доступ к конфиденциальным данным о сервере.
sudo rm /var/www/html/info.php
Заключение
Теперь на сервере Ubuntu 16.04 установлен программный стек LAMP – надёжная и гибкая платформа для развёртывания сайта или приложения.
Чтобы защитить соединения веб-сервера с клиентами, .
Также вам могут пригодиться следующие статьи:
Tags: ,Для создания файлов в папке /var/www требуются права администратора, поэтому на выбор:
- Открыть редактор под правами администратора
- Выставить папке права на запись всем
sudo chmod -R 777 /var/www - Переопределить владельца папки
sudo chown -R $USER:$USER /var/www
2.1.1. Добавление нового виртуального хоста
Для примера нужно сделать сайт, который хранится в /var/www/test и доступен по URL test.dev.
2.1.1.1. Создать конфиг
В папке /etc/apache2/sites-available создать файл, пусть он называется test.conf и содержит это:
ServerName test.dev
DocumentRoot /var/www/test
Этот конфиг сокращён до крайнего минимума. Его можно расширить другими директивами , но для тестового хоста этого достаточно. Для полноценной работы лучше создать нечто такое:
ServerName test.dev
DirectoryIndex index.php
DocumentRoot /var/www/test
Options Indexes FollowSymLinks MultiViews
Require all granted
Order allow,deny
Allow from all
AllowOverride All
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Логи по умолчанию хранятся в папку /var/log/apache2.
2.1.1.2. Сделать хост активным
Все имеющиеся хосты можно делать активными и неактивными с помощью команд a2ensite и a2dissite.
sudo a2ensite test
sudo a2dissite test
В параметре нужно указывать название conf-файла, в данном примере это test. После этих команд требуется перезагрузка apache2:
sudo service apache2 restart
2.1.1.3. Прописать домен
Добавить в файл /etc/hosts эту строку:
127.0.1.1 test.dev
2.1.1.4. Написать сайт
В папку /var/www/test нужно поместить что-то вебовское. Пусть это будет index.php с таким содержимым.
LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый в интернете. LAMP назван по первым буквам входящих в его состав компонентов:
- Linux — операционная система Linux;
- Apache — веб-сервер;
- MariaDB / MySQL — СУБД;
- PHP — язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).
Устанавливать все пакеты будем в терминале, в Ubuntu с Unity терминал можно запустить одновременным нажатием клавиш
Sudo apt-get install lamp-server^
Чтобы не набирать команду установки вручную, ее можно вставить в терминал комбинацией клавиш
Рис. 1. Установка веб-сервера LAMP |
Во время установки нужно будет придумать и ввести пароль для MySQL пользователя root:
Затем нас попросят повторить пароль:
В Ubuntu 14.04 во время установки LAMP сервера появилось предупреждение:
Could not reliably determine the server"s fully qualified domain name, using 127.0.1.1. Set the "ServerName" directive globally to suppress this message.Проблема решалась созданием конфигурационного файла apache2 с указанием имени локального сервера. Хотя в Ubuntu 16.04 нету этого предупреждения, я все равно решил прописать имя локального сервера. Для этого создаем файл /etc/apache2/conf-available/servername.conf :
Sudo pluma /etc/apache2/conf-available/servername.conf
И в него вставляем строчку:
ServerName localhost
Затем сохраняем файл и закрываем текстовый редактор. В завершение выполняются команды:
Sudo a2enconf servername sudo service apache2 reload
Проверка работы веб-сервера LAMP
LAMP сервер установлен, настало время проверить работает ли он. Для начала в веб-браузере переходим по ссылке http://localhost/ или http://127.0.0.1/ . Если у вас откроется страница с заголовком Apache2 Ubuntu Default Page , значит первый компонент LAMP, Apache сервер , запущен и работает:Рис. 5. Проверка работы Apache сервера |
Теперь протестируем работу php7. Для этого создадим php файл по адресу "/var/www/html/test.php " содержащий строчку:
php файл можно создать с помощью текстового редактора, также как указывали имя локального сервера. Но в этот раз создадим файл с помощью команды в терминале:
Echo "" | sudo tee /var/www/html/test.php
Перезапускаем Apache:
Sudo service apache2 reload
Затем открываем адрес http://localhost/test.php , в случае успешной работы php7 появится страница с информацией об установленном php:
Рис. 6. Страница с информацией об php |
В заключение посмотрим на MySQL. Для успешной работы база данных MySQL должна использовать IP-адрес локального веб сервера. Проверим это, для начала выполним команду в терминале:
Cat /etc/hosts | grep localhost
127.0.0.1 localhost::1 ip6-localhost ip6-loopback
Локальный IP равен 127.0.0.1. Теперь посмотрим какой адрес использует MySQL, выполнив команду:
Cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind-address
bind-address = 127.0.0.1
Адреса совпадают, значит настроено верно, что и должно быть по умолчанию.
Установка и настройка PhpMyAdmin
Установка PhpMyAdmin производится командой:Sudo apt install phpmyadmin php-mbstring php7.0-mbstring php-gettext
Рис. 7. Установка PhpMyAdmin |
Во время установки нужно будет выбрать, какой веб-сервер будет настраиваться для запуска PhpMyAdmin, здесь выбираем apache2 и нажимаем Enter.
Придумываем MySQL пароль приложения для PhpMyAdmin:
Чтобы не усложнять себе жизнь, на локальном компьютере я использую один и тот же пароль для всех баз данных. На рабочем сервере, естественно, важно использовать везде разные и сложные пароли.
После установки PhpMyAdmin, в терминале последовательно выполняем команды:
Sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo service apache2 reload
Теперь переходим в веб-браузере по ссылке http://localhost/phpmyadmin/ и проверяем работу PhpMyAdmin, если инструкция была выполнена полностью, то увидим:
Рис. 12. Вход в PhpMyAdmin |
Для входа в PhpMyAdmin вводим имя пользователя root и пароль, указанный при настройке PhpMyAdmin.