Как установить 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+X, Y и затем 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_htmlsudo 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+X, Y и затем 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+X, Y и 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
Комментариев нет:
Отправить комментарий