Наша совместная команда Banwar.org

Связаться с нами

  • (097) ?601-88-87
    (067) ?493-44-27
    (096) ?830-00-01

Статьи

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04 | DigitalOcean

  1. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04 Вступ
  2. Необхідні умови
  3. Крок 1 - Установка Apache і настройка файрволу
  4. Налаштування глобальної змінної ServerName
  5. Налаштування файрвола
  6. Як знайти публічний IP адреса вашого сервера
  7. Крок 2 - Установка MySQL
  8. Крок 3 - Установка PHP
  9. Установка модулів PHP
  10. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  11. висновок
  12. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
  13. Необхідні умови
  14. Крок 1 - Установка Apache і настройка файрволу
  15. Налаштування глобальної змінної ServerName
  16. Налаштування файрвола
  17. Як знайти публічний IP адреса вашого сервера
  18. Крок 2 - Установка MySQL
  19. Крок 3 - Установка PHP
  20. Установка модулів PHP
  21. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  22. висновок
  23. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
  24. Необхідні умови
  25. Крок 1 - Установка Apache і настройка файрволу
  26. Налаштування глобальної змінної ServerName
  27. Налаштування файрвола
  28. Як знайти публічний IP адреса вашого сервера
  29. Крок 2 - Установка MySQL
  30. Крок 3 - Установка PHP
  31. Установка модулів PHP
  32. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  33. висновок
  34. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
  35. Необхідні умови
  36. Крок 1 - Установка Apache і настройка файрволу
  37. Налаштування глобальної змінної ServerName
  38. Налаштування файрвола
  39. Як знайти публічний IP адреса вашого сервера
  40. Крок 2 - Установка MySQL
  41. Крок 3 - Установка PHP
  42. Установка модулів PHP
  43. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  44. висновок
  45. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
  46. Необхідні умови
  47. Крок 1 - Установка Apache і настройка файрволу
  48. Налаштування глобальної змінної ServerName
  49. Налаштування файрвола
  50. Як знайти публічний IP адреса вашого сервера
  51. Крок 2 - Установка MySQL
  52. Крок 3 - Установка PHP
  53. Установка модулів PHP
  54. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  55. висновок
  56. Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04
  57. Необхідні умови
  58. Крок 1 - Установка Apache і настройка файрволу
  59. Налаштування глобальної змінної ServerName
  60. Налаштування файрвола
  61. Як знайти публічний IP адреса вашого сервера
  62. Крок 2 - Установка MySQL
  63. Крок 3 - Установка PHP
  64. Установка модулів PHP
  65. Крок 4 - Тестування роботи PHP на вашому веб-сервері
  66. висновок

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Як встановити Linux, Apache, MySQL, PHP (LAMP) в Ubuntu 16.04

Вступ

Стек LAMP - це набір програмного забезпечення з відкритим вихідним кодом, якій зазвичай встановлюється на сервер для відображення динамічних веб-сайтів і веб-додатків. Ця абревіатура означає операційну систему L inux з встановленим веб-сервером A pache. Дані сайту зберігаються в базі даних M ySQL, динамічний контент обробляється за допомогою P HP.

Ця стаття описує процес установки LAMP на віртуальний сервер (Droplet) в Ubuntu 16.04. Ubuntu задовольняє першу вимогу до LAMP: це операційна система на базі Linux.

Необхідні умови

Перед тим, як почати слідувати інструкції, наведені в цій статті, вам необхідно налаштувати окремий, чи не-рутовий (non-root) профіль користувача на вашому сервері. Ви можете зробити це слідуючи крокам 1-4 статті про первинну налаштування сервера на Ubuntu 16.04 .

Крок 1 - Установка Apache і настройка файрволу

Веб-сервер Apache в даний час є одним з найпопулярніших веб-серверів в світі. Він добре документований і використовується значну частину часу з моменту створення мережі Інтернет, що робить його прекрасним вибором для хостингу веб-сайту.

Ми з легкістю можемо встановити Apache використовуючи менеджер пакетів Ubuntu apt. Менеджер пакетів дозволяє нам легко встановити більшу частину програмного забезпечення з репозиторіїв Ubuntu. Про те, як використовувати apt, ви можете дізнатися з цієї статті .

Для початку установки виконаємо команди:

  • sudo apt-get update
  • sudo apt-get install apache2

Оскільки ми використовуємо команду sudo, ці команди будуть виконуватися з привілеями root. В процесі операційна система запросить ваш пароль користувача.

Після введення пароля apt повідомить, які пакети будуть встановлені і скільки місця вони займуть на диску. Натисніть Y і Enter для продовження установки.

Налаштування глобальної змінної ServerName

Далі ми додамо один рядок в /etc/apache2/apache2.conf для усунення попереджень (warnings) про синтаксичних помилках. Незважаючи на те, що це просто попередження і ніякої проблеми не існує, якщо не поставити глобальну змінну ServerName, ви будете отримувати наступне попередження про помилку при перевірці настройки конфігурації Apache:

  • sudo apache2ctl configtest

висновок

AH00558: apache2: 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 Syntax OK

Відкрийте головний конфігураційний файл в своєму текстом редакторі командою:

  • sudo nano /etc/apache2/apache2.conf

Додайте в кінець файлу змінну ServerName, що вказує на ваше основне доменне ім'я. Якщо для вашого сервера не налаштоване доменне ім'я, ви можете використовувати публічний IP-адресу сервера:

Увага

Якщо ви не знаєте IP-адресу Вашого сервера, ви можете прочитати про це в розділі Як знайти публічний IP адреса вашого сервера .

/etc/apache2/apache2.conf

. . . ServerName домен_ілі_IP_адрес_сервера

Після цього збережіть і закрийте файл.

Тепер можна перевірити результат надрукувавши наступну команду:

  • sudo apache2ctl configtest

Оскільки ми встановили глобальну змінну ServerName, ви повинні побачити висновок наступного характеру:


висновок

Syntax OK

Перезапустіть Apache для застосування внесених змін:

  • sudo systemctl restart apache2

Тепер можна приступати до налаштування брандмауера.

Налаштування файрвола

Тепер переконаємося, що ваш файрвол пропускає HTTP і HTTPS трафік. Ми будемо виходити з припущення, що ви вже виконали інструкції по первинній настройці сервера і включили файрвол UFW. Для початку переконаємося, що UFW має профіль для Apache за допомогою такої команди:


висновок

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"

Перевірити результат установки можна набравши в вашому веб-браузері публічний IP адреса вашого сервера (якщо ви ще не знаєте, як знайти публічний IP адреса вашого сервера, дивіться наступний розділ цієї статті):

http: // домен_ілі_IP_адрес_сервера

Ви побачите сторінку Apache, що відображається за замовчуванням для інформації і цілей тестування. Вона повинна виглядати схожим чином:

Якщо ви бачите цю сторінку, ваш веб-сервер коректно встановлений і доступний через файрвол.

Як знайти публічний IP адреса вашого сервера

Якщо ви не знаєте публічний IP адреса вашого сервера, його можна визначити декількома способами. Зазвичай, це адреса, який ви використовуєте для з'єднання з вашим сервером по SSH.

Визначити цю адресу можна за допомогою командного рядка. Спочатку використовуйте інструмент iproute2 для отримання вашої адреси набравши наступну команду:

  • ip addr show eth0 | grep inet | awk '{print $ 2; } '| sed 's /\/.*$//'

Результатом виконання цієї команди буде одна або два рядки, що містять коректну адресу. Ваш комп'ютер, можливо, зможе використовувати тільки один з них, тому спробуйте кожен варіант.

В якості альтернативи можна дізнатися, як curl бачить ваш сервер. Це можна зробити наступним чином:

  • sudo apt-get install curl
  • curl http://icanhazip.com

В незалежності від методу, який ви використовували для отримання свого IP адреси, ви можете використовувати цей IP адреса для доступу до сервера через адресну строку браузера.

Крок 2 - Установка MySQL

Тепер, коли наш веб-сервер встановлений і запущений, пора встановити MySQL. MySQL це система управління базою даних. Вона організовує і забезпечить доступ до баз даних, в яких ваш сайт може зберігати інформацію.

Ми можемо знову використовувати apt для завантаження і установки програмного забезпечення. Цього разу ми також встановимо деякі допоміжні пакети, які допоможуть нам у налагодженні взаємодії між компонентами:

  • sudo apt-get install mysql-server

Увага

В даному випадку вам немає необхідності попередньо виконувати команду sudo apt-get update, тому що ми виконували її недавно при установці Apache, і індекс пакетів на вашому комьпютер вже повинен бути оновлений.

Вам буде показаний список пакетів, які будуть встановлені, а також скільки місця на диску вони займуть. Натисніть Y для продовження установки.

В процесі установки ваш сервер попросить вас задати і підтвердити пароль для користувача "root" в MySQL. Це адміністраторський аккаунт в MySQL, який має розширені права. Розглядайте його як аналог root-аккаунта для самого сервера (проте той, який ви конфігуріруете в даний момент, підходить тільки для MySQL). Задайте надійний унікальний пароль, не залишайте пароль не заданий.

Після завершення установки нам буде потрібно виконати деякі додаткові команди, щоб наше оточення MySQL було налаштоване безпечним чином. Введіть наступну команду:

  • sudo mysql_secure_installation

Скрипт запросить пароль, який ви тільки що поставили для root користувача в MySQL. Далі вам буде запропоновано налаштувати плагін валідації паролів (VALIDATE PASSWORD PLUGIN).

Увага: рішення включати плагін валідації паролів чи ні носить суб'єктивний характер. При включенні всі паролі, які не задовольняють певним критеріям безпеки, будуть відхилятися MySQL з повідомленням про помилку. Це може викликати проблеми, якщо ви використовуєте "слабкі" паролі спільно з програмним забезпеченням, яке конфигурирует профілі користувачів MySQL, наприклад, пакети Ubuntu для 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 або no:

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 для отримання інформації та передавати оброблений контент в наш веб-сервер для відображення.

Ми можемо знову скористатися менеджером пакетів apt для установки компонентів. Ми також додамо деякі допоміжні пакети, щоб код на PHP міг працювати з нашим сервером Apache, а також звертатися до бази даних MySQL:

  • sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Дана команда повинна встановити PHP без будь-яких проблем. Незабаром ми це перевіримо.

У більшості випадків, ми захочемо змінити спосіб, який використовує Apache для пошуку файлів при запиті директорії. На даний момент, якщо користувач запитує директорію з сервера, Apache в першу чергу буде шукати файл з назвою index.html. Ми хочемо, щоб наш веб-сервер віддавав перевагу PHP файлів, так що ми налаштуємо Apache таким чином, щоб спочатку він шукав файли index.php.

Для цього введіть наступну команду, щоб відкрити файл dir.conf в текстовому редакторі з привілеями root-користувача:

  • sudo nano /etc/apache2/mods-enabled/dir.conf

Вміст файлу буде виглядати наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm </ IfModule>

Ми хочемо перемістити PHP файл index.php, виділений вище, на перше місце після специфікації DirectoryIndex наступним чином:

/etc/apache2/mods-enabled/dir.conf

<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </ IfModule>

Після внесення правок збережіть і закрийте файл, натисніть сполучення клавіш 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 [1]: Stopped LSB: Apache2 web server. Apr 13 14:28:42 ubuntu-16-lamp systemd [1]: Starting LSB: Apache2 web server ... Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: * Starting Apache httpd web server apache2 Apr 13 14:28:42 ubuntu-16-lamp apache2 [13605]: 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 [13605]: * Apr 13 14:28:43 ubuntu-16-lamp systemd [1]: Started LSB: Apache2 web server.

Установка модулів PHP

Щоб розширити функціональність PHP, ми можемо встановити деякі додаткові модулі.

Для перегляду доступних опцій для модулів і бібліотек PHP ви можете передати результат apt-cache search в less, яка дозволить вам промотувати висновок:

  • 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 [default] php-dev - Files for PHP module development (default) php-gd - GD module for PHP [default] php-gmp - GMP module for PHP [default] ...:

Щоб отримати більше інформації по кожному модулю, ви можете пошукати в Інтернеті або подивитися опис пакету за допомогою команди:

  • apt-cache show package_name

Відповідь буде містити багато тексту, серед якого є поле Description-en. Саме воно і буде містити розширений опис функціональності, що надається модулем.

Наприклад, щоб дізнатися призначення модуля 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

Для установки відразу декількох модулів, ви можете перерахувати їх через прогалини слідом за командою apt-get install наступним чином:

  • sudo apt-get install package1 package2 ...

Тепер ваш стек LAMP встановлений і налаштований. Однак нам ще належить протестувати PHP.

Крок 4 - Тестування роботи PHP на вашому веб-сервері

Щоб перевірити, що наша система налаштована належним чином, ми можемо створити простий PHP скрипт.

Назвемо скрипт info.php. Щоб Apache знайшов і обробив файл коректно, він повинен бути збережений в спеціальну директорію, яка називається "web root".

В Ubuntu 16.04 дана директорія знаходиться за адресою / var / www / html /. Ми можемо створити там файл ввівши таку команду:

  • sudo nano /var/www/html/info.php

Відкриється порожній файл. Ми хочемо ввести в файл наступний текст, який є коректним PHP кодом:

info.php

<? Php phpinfo (); ?>

Після внесення змін збережіть і закрийте файл.

Тепер ми можемо перевірити, чи може веб-сервер коректно відображати контент, згенерований PHP скриптом. Для перевірки нам просто потрібно відкрити цю сторінку в веб-браузері. Вам знову потрібно публічний IP-адресу сервера.

Відкриємо цю адресу:

http: // домен_ілі_IP_адрес_сервера /info.php

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Сторінка, на яку ви потрапите, повинна виглядати схожим чином:

Дана сторінка містить інформацію про ваш сервер з точки зору PHP. Вона корисна для налагодження і щоб упевнитися в коректності застосування налаштувань.

Якщо все пройшло успішно, значить ваш PHP працює коректно.

Ви, можливо, захочете видалити цей файл після тесту, тому що він може дати інформацію про вашому сервері неавторизованих користувачам. Для видалення файлу введіть команду:

  • sudo rm /var/www/html/info.php

Ви завжди зможете заново створити цей файл, якщо вам знову буде потрібно доступ до цієї інформації.

висновок

Тепер, коли ваш стек LAMP встановлений, у вас є безліч варіантів того, що робити далі. Фактично, ви встановили платформу, яка дозволить встановити (розгорнути) більшість типів веб-сайтів і мережевого програмного забезпечення на вашому сервері.

В якості першого кроку ми рекомендуємо налаштувати веб-сервер на роботу через HTTPS. Найпростіший варіант убезпечити свій сайт за допомогою безкоштовного TLS / SSL сертифікату - це використовувати сервіс Let's Encrypt .

Деякі інші популярні заходи:

Зверніть увагу: Ми будемо оновлювати зазначені вище посилання на документацію для 16.04 у міру її написання.

Would you like to setup VALIDATE PASSWORD plugin?
Estimated strength of the password: 100 Change the password for root?
Php phpinfo (); ?
Would you like to setup VALIDATE PASSWORD plugin?
Estimated strength of the password: 100 Change the password for root?
Php phpinfo (); ?
Would you like to setup VALIDATE PASSWORD plugin?
Estimated strength of the password: 100 Change the password for root?
Php phpinfo (); ?
Would you like to setup VALIDATE PASSWORD plugin?

Новости

Banwar.org
Наша совместная команда Banwar.org. Сайт казино "Пари Матч" теперь доступен для всех желающих, жаждущих волнения и азартных приключений.