Страницы

Linux

 

Как установить LAMP (Apache, MySQL, PHP) на Ubuntu 20.04


Первый компонент вашего стека LAMP в Ubuntu 20.04 – Apache.

Начните с обновления списков пакетов и установки Apache. Нажмите y и ENTER, когда вас попросят продолжить. Команда: 

sudo apt update && sudo apt install apache2

Настоятельно рекомендуется настроить брандмауэр для обеспечения дополнительной безопасности вашего LAMP-стека в Ubuntu 20.04.

Мы начнем с добавления правила брандмауэра для SSH. Вы же не хотите получить блокировку при включении брандмауэра, когда настраиваете сервер удаленно? 

sudo ufw allow OpenSSH

Сообщение об ошибке «ERROR: could find a profile matching openSSH» означает, что вы не настраиваете сервер удаленно. Можно игнорировать. 

Теперь мы можем добавить правила брандмауэра для Apache:

sudo ufw allow in "Apache Full"

Теперь включите брандмауэр:

sudo ufw enable

тобы узнать, правильно ли установлен Apache на Ubuntu 20.04, мы можем проверить текущее состояние службы:

sudo service apache2 status

Если он включен и работает, вы должны увидеть зеленое активное состояние.

Введите IP-адрес вашего сервера в адресную строку и нажмите ENTER.

Например http://localhost/

Все готово! Вы можете найти страницу приветствия Apache в папке /var/www/html. Чтобы отредактировать этот файл, необходимо ввести:

sudo nano /var/www/html/index.html

Следующий компонент вашего стека LAMP на Ubuntu 20.04 – MySQL.

Начните с обновления репозиториев и установки пакета MySQL. Нажмите y и ENTER при появлении запроса на установку.

sudo apt update && sudo apt install mysql-server

После завершения установки пакета мы можем проверить, работает ли служба MySQL:

sudo service mysql status

Теперь вы должны запустить mysql_secure_installation, чтобы настроить безопасность для вашего сервера MySQL на Ubuntu 20.04.

sudo mysql_secure_installation
Нажмите ENTER, если не хотите настраивать плагин проверки пароля.

Если вы еще не создали пароль root для MySQL, вы должны создать его сейчас.

Please set the password for root here.
New password:
Re-enter new password:

Далее вам будет предложено удалить анонимных пользователей.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) :

Нажмите y и ENTER, чтобы удалить анонимных пользователей.

Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :

Нажмите y и ENTER, чтобы удаленно запретить вход в систему root.

y default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :

Нажмите y и ENTER, чтобы удалить тестовую базу данных.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :

Нажмите y и ENTER, чтобы перезагрузить таблицы привилегий.

Все готово! Основная настройка MySQL завершена. 

sudo mysql 
mysql>

Чтобы выйти из MySQL, введите exit и нажмите ENTER.

exit

Последним компонентом вашего стека LAMP на Ubuntu 20.04 является PHP.

Начните с обновления репозитория и установки пакета PHP. Мы также установим пакеты libapache2-mod-php и php-mysql, которые позволят PHP взаимодействовать с базой данных MySQL.

Нажмите y и ENTER при появлении запроса на установку пакета PHP.

sudo apt update && sudo apt install php libapache2-mod-php php-mysql

После завершения установки пакета мы можем протестировать PHP в командной строке.

php -version

Если PHP установлен правильно, вы должны увидеть нечто подобное:

PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Теперь давайте протестируем PHP для Apache.

Создайте новый файл с именем info.php в корневом каталоге документа.

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

После открытия редактора nano введите следующий PHP-код:

/var/www/html / info.РНР
<?php
phpinfo();

Нужно сохранить и выйти из документа (нажмите CTRL+XY и затем ENTER).


Установка стека LAMP на Ubuntu 20.04 завершена! 
Если вы хотите разместить несколько доменов на своем ламповом
сервере Ubuntu 20.04 или настроить SSL-сертификаты с
помощью Let's Encrypt, вам понадобится виртуальный хост.

Настройка виртуальных хостов Apache

Создайте новый каталог /var/www/ для вашего домена

(замените mydomain.com на собственный).

sudo mkdir -p /var/www/mydomain.com/public_html
sudo nano /var/www/mydomain.com/public_html/index.html

Введите следующее:

<html>
   <head>
     <title>Welcome!</title>
   </head>
   <body>
      <h1>Welcome to mydomain.com!</h2>
   </body>
</html>

Сохраняем изменения и выходим (нажмите CTRL+XY и затем ENTER).


Создание виртуального хоста


Чтобы создать файл конфигурации виртуального хоста, замените mydomain.com на собственный домен.

sudo nano /etc/apache2/sites-available/mydomain.com.conf

Введите замену mydomain.com:

<VirtualHost *:80>
    ServerAdmin webmaster@mydomain.com
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    DocumentRoot /var/www/mydomain.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Сохраняем и выходим (CTRL+XY и ENTER)

Проверим наличие ошибок:

apachectl configtest

Вы можете игнорировать любую ошибку, в которой присутствует подобное сообщение: «Не удалось надежно определить полное доменное имя сервера»​.

Включите замену виртуального хоста mydomain.com (снова нужно указать собственный домен):

sudo a2ensite mydomain.com.conf

Отключите Apache по умолчанию, иначе он переопределит ваш виртуальный хост:

sudo a2dissite 000-default

Далее надо перезапустить Apache.

sudo systemctl reload apache2
Чтобы добавить больше доменов, просто повторите шаги, указанные выше.

Если у вас нет ни одного зарегистрированного домена и вы просто хотите загрузить mydomain.com (или другой адрес) в вашем браузере в качестве теста, можно отредактировать файл hosts в операционной системе, чтобы перенаправить этот домен на ваш сервер Ubuntu 20.04 с LAMP.

Чтобы отредактировать файл hosts в Linux или Mac, запустите sudo nano /etc/hosts в терминале. Как только файлы hosts будут открыты, введите IP-адрес вашего сервера Ubuntu 20.04, а затем доменное имя, которое вы хотите разрешить для этого IP.

x.x.x.x mytest1.com

Замените x.x.x.x на IP-адрес вашего веб-сервера.

Узнать IP-адрес вашего сервера можно с помощью команды:

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

После сохранения файла hosts в браузере откроется доступ к вашему серверу по адресу mydomain.com (или иному URL).


Apache по умолчанию будет перечислять содержимое ваших каталогов без индексов (index.html, index.РНР). Это угроза безопасности, поскольку она позволяет хакерам просматривать ваш веб-сервер в поисках сценариев.

Вы также обнаружите, что .htaccess по умолчанию в Apache будет игнорироваться. Если понадобится .htaccess, вы можете включить его, изменив файл конфигурации Apache.

Откройте файл конфигурации:

sudo nano /etc/apache2/apache2.conf

Нажмите CTRL + W и найдите <Directory /var/www/>.

Блок должен выглядеть примерно так:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Удалите Indexes, чтобы остановить список каталогов Apache, и измените AllowOverride None на AllowOverride All, чтобы включить .htaccess. Теперь это должно выглядеть так:

<Directory /var/www/>
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Сохраняем и выходим (CTRL+X, Y, ENTER).

Далее перезапускаем Apache.

sudo systemctl restart apache2

сли вы хотите настроить некоторые правила .htaccess, вам, 

скорее всего, придется включить mod_rewrite.

sudo a2enmod rewrite

Далее нужно перезапустить Apache.

sudo systemctl restart apache2










Комментариев нет:

Отправить комментарий