LAMP — это сокращение от Linux, Apache, MySQL и PHP. Мы поможем вам убедиться в том, что LAMP Server очень удобен в управлении.
С помощью этого руководства вы сможете установить веб-сервер apache2 на Ubuntu 16.04 (Xenial Xerus) с PHP7 (mod_php) и поддержкой MySQL. Дополнительно мы установим PHPMyAdmin для упрощение администрирования сервера баз данных MySQL.
Установка LAMP — лучшая основа для таких CMS, как Joomla, WordPress или Drupal.
Предварительные рекомендации по LAMP Server
В этом руководстве я буду использовать имя сервера server1.example.com с IP адресом 192.168.122.217. Эти значения, конечно, будут отличаться от ваших. Таким образом, их необходимо изменить там, где потребуется.
Я рекомендую использовать минимальную установку Ubuntu Server, это может быть как виртуализированный, так и выделенный сервер Ubuntu 16.04 с минимальной установкой.
Далее я выполняю все команды с привилегиями root:
sudo su
Установка сервера баз данных MariaDB вместо MySQL
Мы будем устанавливать MariaDB вместо MySQL. MariaDB — это ответвление от MySQL, которое сделал Monty Widenius, один из разработчиков MySQL . MariaDB совместима с MySQL и обеспечивает новые интересные возможности и быстродействие в сравнении с MySQL.
Выполните следующие команды для установки MariaDB сервера и клиента:
apt-get -y install mariadb-server mariadb-client
Дальше установите пароль пользователя root для MariaDB:
mysql_secure_installation
Вам система задаст следующие вопросы:
Enter current password for root (enter for none): <-- нажмите enter, т.к. пароль еще не установлен Set root password? [Y/n] <-- y, для установки пароля пользователя root New password: <-- Введите новый пароль пользователя root для MariaDB Re-enter new password: <-- Повторите пароль еще раз Remove anonymous users? [Y/n] <-- y, удалить анонимного пользователя Disallow root login remotely? [Y/n] <-- n, разрешить удаленный доступ для пользователя root Remove test database and access to it? [Y/n] <-- y, удалить тестовую базу данных и доступ к ней Reload privilege tables now? [Y/n] <-- y, перегрузить привилегии, для того чтобы изменения вступили в силу
Для проверки, войдите у частную запись root:
mysql -u root -p
и введите пароль пользователя root, который вы установили выше. Результат должен быть похож на этот:
В Ubuntu 16.04 когда я подключаюсь к базе данных через PhpMyAdmin используя пользователя root, я получаю ошибку:
#1698 - Access denied for user 'root'@'localhost'
Чтобы разрешить удаленный доступ пользователю root через PhpMyAdmin выполняем:
use mysql; UPDATE user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;
Для выхода с оболочки MariaDB, введите команду exit и нажмите enter.
Установка веб-сервера Apache 2.4
Пакет веб-сервера Apache2 доступен в Ubuntu, по этому легко и просто устанавливаем его:
apt-get -y install apache2
Теперь запустите браузер и перейдите по адресу http://192.168.122.217, вы должны увидеть страницу по умолчанию веб-сервера Apache 2:
В Ubuntu, в веб-сервере Apache 2, корневая папка сайта по умолчанию находится в /var/www/html. Основной конфигурационный файл — /etc/apache2/apache2.conf.
Полная документация по конфигурации веб сервера Apache 2 находится в /usr/share/doc/apache2/README.Debian.gz
Установка PHP 7
Мы можем установить PHP 7 и модуль PHP для веб-сервера Apache следующим образом:
apt-get -y install php7.0 libapache2-mod-php7.0
Потом необходимо перезапустить веб-сервер:
systemctl restart apache2
Тестируем PHP и смотрим информацию о системе
Корневая папка сайта по умолчанию находится в /var/www/html. Мы создадим маленький php-файл info.php в этой папке и откроем его в браузере. Этот файл выведет нам много полезной информации об установленном PHP, например, версию PHP.
nano /var/www/html/info.php
<?php phpinfo(); ?>
Далее необходимо изменить владельца файла на www-data:
chown www-data:www-data /var/www/html/info.php
Теперь открываем файл в браузере по адресу http://192.168.122.217/info.php:
Как вы видите, PHP 7.0 работает, и он работает через Apache 2.0 Handler, как показано в строке Server API. Если вы проскроллите страницу вниз, вы увидите все модули которые уже активированы. MySQL нет в этом списке, это означает что у нас пока нету поддержки MySQL / MariaDB в PHP.
Добавление поддержки MySQL / MariaDB в PHP
Для добавления поддержки MySQL в PHP нам необходимо установить пакет php7.0-mysql:
apt-get -y install php7.0-mysql
Еще необходимо установить дополнительные PHP-модули для работы вашей CMS. Вы можете поискать доступные таким образом:
apt-cache search php7.0
Выбираете необходимые модули и устанавливаете их:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
Далее необходимо перезапустить веб-сервер Apache:
systemctl restart apache2
Таким образом, мы получили поддержку MySQL / MariaDB в PHP:
Установка модуля PHP APCu Cache для ускорения работы PHP
APCu — это бесплатный модуль для кеширования и оптимизации кода PHP. Я настоятельно рекомендую вам установить этот модуль для увеличения скорости работы PHP.
APCu можно установить следующим образом:
apt-get -y install php-apcu
Далее необходимо перезапустить веб-сервер Apache:
systemctl restart apache2
Теперь, перегрузите страницу http://192.168.122.217/info.php в вашем браузере, скролльте вниз к секции с модулями:
Также, не забудьте удалить файл info.php когда он вам уже будет не нужен. Оставлять файл — потенциально опасно, так как из него можно узнать очень много информации о вашем сервере. Выполните следующую команду для удаления файла:
rm -f /var/www/html/info.php
Добавление поддержки SSL в веб сервере Apache
SSL / TLS — это технология шифрования соединения между веб-браузером клиента и сервера. Выполните следующую команды для включения поддержки SSL :
a2enmod ssl a2ensite default-ssl
Эти команды сделают мягкую ссылку (symlink) в папке /etc/apache2/sites-enabled на /etc/apache2/sites-available/default-ssl.conf для включения в конфигурацию SSL.
Далее необходимо перезапустить веб-сервер Apache:
systemctl restart apache2
Протестируем безопасное подключение с помощью SSL, для этого откройте в браузере страницу http://192.168.122.217:
Вы увидите предупреждение SSL о том, что ваш SSL сертификат — самоподписанный, а это означает, что браузер не может проверить подлинность сертификата и он ему не доверяет.
Вам необходимо принять предупреждение и вы увидите страницу Apache по умолчанию.
Закрытый зеленый замочек в адресной строке свидетельствует о том, что соединение шифрованное. Для устранения предупреждения, о том, что сертификат /etc/ssl/certs/ssl-cert-snakeoil.pem — не подписанный, его необходимо заменить на официально купленный и подписанный центром сертификации. В этом случае, я рекомендую центр сертификации GlobalSign nv-sa, как оптимальный по соотношению цена-качество.
Установка phpMyAdmin
С помощью веб-интерфейса phpMyAdmin вы можете управлять вашим сервером баз данных. Его установка:
apt-get -y install phpmyadmin
При установке вы увидите вопросы:
Web server to configure automatically: <-- выберите опцию: apache2 Configure database for phpmyadmin with dbconfig-common? <-- No, нет
После установки, вы можете войти в phpMyAdmin по адресу http://192.168.122.96/phpmyadmin/
Далее вы можете работать непосредственно с сервером баз данных, имя пользователя — root, а пароль используем тот, который вы ввели ранее:
Надеюсь, это руководство было полезным для вас!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, регистрируйтесь на курсы Cisco и Linux Professional Institute на платформе SEDICOMM University.
Курсы Cisco и Linux с трудоустройством!
- Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
- Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
- Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
- Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
- Если хотите индивидуальный график — обсудим и осуществим.
- Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- отредактировать резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
2 комментария. Оставить новый
Спасибо за статью) Интересно было бы увидеть гайд по виртуализации Hyper-V и VMware
Небольшой lifehack: чтобы постоянно не вводить команду mysql -u root -p password можно значительно облегчить себе жизнь. В локальной директории пользователя (НЕ root) создайте файлик .my.cnf со следующим содержимым:
[client]
user=root
password=пароль_для_подключения_к_базе
и сохраните его. После этого при простом вызове команды mysql в консоли без каких-либо ключей и передачи соответствующих значений Вы получите приглашение для ввода в консоль базы данных, аналогично скриншоту (Maria DB [(none) >]). Таким образом данный метод позволяет избежать постоянного ввода ключевых значений команды mysql с передачей сооветствующих значений логина и пароля и напрямую из консоли получать доступ к базе данных за считанные секунды.