Введение
LAMP означает Linux, Apache, MySQL и PHP. В этом руководстве мы объясним, как установить LAMP для одного или нескольких сайтов.
Требования
- Сервер с операционной системой Linux CentOS 7.
- Root-доступ
- Инструменты для работы через SSH
- PuTTY для Windows
- OpenSSH в Linux/macOS (доступно по умолчанию)
Шаг 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.