Get Rewarded! We will reward you with up to €50 credit on your account for every tutorial that you write and we publish!

Установка LAMP на CentOS 7 (одиночные или множественные места)

profile picture
Author
Juni Yadi
Published
2019-03-14
Time to read
7 minutes reading time

Введение

LAMP означает Linux, Apache, MySQL и PHP. В этом руководстве мы объясним, как установить LAMP для одного или нескольких сайтов.

Требования

  • Сервер с операционной системой Linux CentOS 7.
  • Root-доступ
  • Инструменты для работы через SSH

Шаг 1 — Вход и обновление системы

Прежде чем мы начнем, убедитесь, что в вашем CentOS 7 установлены последние обновления.

yum update -y

Если вы хотите установить LAMP на выделенном или же на облачном сервере, убедитесь, что вы сначала вошли на сервере через SSH, а затем выполните команду выше.

Подключение по SSH в терминале:

ssh root@10.0.0.1

Примечание: в данном примере 10.0.0.1 — IP-адрес вашего сервера

Перед продолжением установки убедитесь, что в CentOS установлены wget и текстовый редактор nano. Если это не так, то установите их с помощью следующей команды:

yum install wget nano -y

Шаг 2 — Установка веб-сервера Apache

В CentOS веб-сервер Apache предоставляется пакетом httpd. Установите его с помощью следующей команды:

yum install httpd -y

После завершения установки необходимо запустить службу httpd с помощью следующей команды:

systemctl start httpd

Теперь откройте IP-адрес сервера в браузере. Если отображается страница apache по умолчанию, установка прошла успешно. Теперь настроим автоматический запуск httpd при старте системы.

systemctl enable httpd

Если httpd не запущен, вы можете проверить, работает ли на вашем сервере другая служба на порту 80 с помощью команды netstat -tulpen | grep 80.

systemctl status httpd

Пример вывода команды

[root@your_host ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-03-14 08:13:10 EDT; 4s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 15255 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─15255 /usr/sbin/httpd -DFOREGROUND
           ├─15256 /usr/sbin/httpd -DFOREGROUND
           ├─15257 /usr/sbin/httpd -DFOREGROUND
           ├─15258 /usr/sbin/httpd -DFOREGROUND
           ├─15259 /usr/sbin/httpd -DFOREGROUND
           └─15260 /usr/sbin/httpd -DFOREGROUND

Mar 14 08:13:09 your_host systemd[1]: Starting The Apache HTTP Server...
Mar 14 08:13:10 your_host systemd[1]: Started The Apache HTTP Server.

Шаг 3 — Установите MySQL

wget https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
yum localinstall mysql80-community-release-el7-2.noarch.rpm
yum install mysql-community-server -y

Нам нужно запустить MySQL и включить его по умолчанию

systemctl start mysqld
systemctl enable mysqld

Пример вывода команды

[root@localhost ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2019-03-14 08:17:19 EDT; 19s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 15425 (mysqld)
   Status: "SERVER_OPERATING"
   CGroup: /system.slice/mysqld.service
           └─15425 /usr/sbin/mysqld

Mar 14 08:17:13 localhost systemd[1]: Starting MySQL Server...
Mar 14 08:17:19 localhost systemd[1]: Started MySQL Server.

Шаг 3.1 — Вход в MySQL

По умолчанию MySQL создаст временный пароль для пользователя root, вы можете узнать его с помощью этой команды:

grep 'temporary password' /var/log/mysqld.log

Чтобы войти в систему, нам нужно запустить:

mysql -uroot -p

Теперь введите временный пароль. После входа в систему, вы можете изменить пароль (рекомендуется), с помощью этой команды (начать с ALTER):

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'holuP455##';

Примечание: 'holuP455##' приведено для примера. Замените его вашим паролем.

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

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'holuP455';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'holuP455##';
Query OK, 0 rows affected (0.02 sec)

Чтобы выйти из mysql, выполните команду: quit.

Шаг 4 — Установка PHP

Прежде чем мы установим PHP, нам нужно активировать epel и remi, чтобы убедиться, что мы будем устанавливать версию PHP. Если мы используем репозиторий по умолчанию, то будет установлен PHP версии 5.4 (он слишком стар).

yum install epel-release -y
yum localinstall http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install yum-utils -y
yum-config-manager --enable remi-php72
yum update -y

Теперь запустите эту команду, чтобы установить PHP 7.2 и модуль MySQL:

yum install php72 php72-php-mysqlnd -y

Проверьте версию PHP с помощью команды php -v:

[root@localhost ~]# php -v
PHP 7.2.16 (cli) (built: Mar  5 2019 14:45:10) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Если вам нужно больше модулей php, то вы можете поискать их с помощью команды:

yum search php72 | more

Шаг 5 — Установка phpMyAdmin (необязательно)

Вы можете установить phpMyAdmin из пакетов с помощью следующей команды:

yum install phpMyAdmin -y

Вы не можете получить доступ к phpMyAdmin сразу после завершения установки. Сначала нужно отредактировать файл настроек httpd. Выполните команду:

nano /etc/httpd/conf.d/phpMyAdmin.conf

и проверьте настройки. Добавьте "Require all granted".

<Directory /usr/share/phpMyAdmin/>
   AddDefaultCharset UTF-8

   <IfModule mod_authz_core.c>
     # Apache 2.4
     <RequireAny>
       Require ip 127.0.0.1
       Require ip ::1
       Require all granted <= add this line for allow all access
     </RequireAny>
   </IfModule>

Чтобы получить доступ к phpMyAdmin, введите следующий URL-адрес в браузере: http://10.0.0.1/phpmyadmin

Шаг 6 — Настройка нескольких сайтов

Теперь нам нужно настроить виртуальный хост. Это необходимо, если вы будете использовать один сервер для размещения нескольких доменных имен. Например:

  • Домен: example.com
  • Поддомен: holu.example.com

Шаг 6.1 — Создание каталога

mkdir -p /var/www/html/example.com/public_html
mkdir -p /var/www/html/holu.example.com/public_html

Шаг 6.2 — Пример создания PHP файлов

echo "<?php echo 'This is example.com'; ?>" > /var/www/html/example.com/public_html/index.php
echo "<?php echo 'This is holu.example.com'; ?>" > /var/www/html/holu.example.com/public_html/index.php

Шаг 6.3 — Настройка httpd

Нам нужно создать новые конфигурационные файлы.

Настройки для домена example.com

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

nano /etc/httpd/conf.d/example.conf

затем вставьте эти настройки:

<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/html/example.com/public_html
    ErrorLog /var/www/html/example.com/error.log
</VirtualHost>

Настройки для домена holu.example.com

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

nano /etc/httpd/conf.d/holu.example.conf

затем вставьте эти настройки:

<VirtualHost *:80>
    ServerName www.holu.example.com
    ServerAlias holu.example.com
    DocumentRoot /var/www/html/holu.example.com/public_html
    ErrorLog /var/www/html/holu.example.com/error.log
</VirtualHost>

Шаг 6.4 — Перезапуск службы httpd

Перезапустить Apache можно с помощью следующей команды:

systemctl restart httpd

Теперь вы можете получить доступ к обоим доменам, example.com и holu.example.com, работающим на одном сервере.

  • если вы хотите сохранить все файлы php, html, css или js, убедитесь, что вы сохранили в public_html.
  • если вам нужно добавить больше сайтов, просто повторите шаг 6 с другим именем в настройках.

Вывод

Теперь сервер готов к созданию веб-сайтов со статическим или динамическим содержимым. Все это работает на одном сервере с помощью Apache, MySQL и PHP.

Лицензия: MIT
Want to contribute?

Get Rewarded: Get up to €50 in credit! Be a part of the community and contribute. Do it for the money. Do it for the bragging rights. And do it to teach others!

Report Issue

Discover our

Dedicated Servers

Configure your dream server. Top performance with an excellent connection at an unbeatable price!

Want to contribute?

Get Rewarded: Get up to €50 credit on your account for every tutorial you write and we publish!

Find out more