Если вы взяли VDS для размещения динамических сайтов и приложений, написанных на PHP, то вам понадобится установить этот серверный язык. Сделать это можно в автоматическом и ручном режимах. В этой статье мы изучим оба способа на примере VDS с CentOS 7.
Автоматическая установка PHP на VDS
Самый простой вариант — установить PHP на собственный VDS под CentOS при создании сервера. Например, такая возможность есть на Timeweb.
-
Заходим в панель управления VDS на хостинге.
-
Переходим на вкладку «Список VDS».
-
Нажимаем на кнопку «Создать сервер».
-
Вводим любое имя и комментарий, если он нужен.
-
Выбираем операционную систему и дополнительное ПО для сервера. В нашем случае это будет CentOS 7 и LAMP (Linux, Apache, MySQL, PHP, nginx).
-
Выбираем конфигурацию сервера.
-
При необходимости указываем публичную часть ключа SSH (если уже его создали) и включаем защиту от DDoS-атак.
-
Оплачиваем тариф и получаем на почту письмо с данными для подключения к серверу.
После установки операционной системы и дополнительного ПО мы имеем полностью готовый сервер для работы над динамическими сайтами и приложениями.
Если уже есть сервер с другой ОС и дополнительным ПО, можно выполнить переустановку. Но этот способ подходит только в том случае, если на машине ничего не настроено и не размещено. Переустановка удаляет из хранилища все файлы. Например, у меня на Timeweb есть сервер с Ubuntu 18.04 и панелью Vesta. На нем нет ничего важного, поэтому я могу переустановить ОС и ПО на CentOS 7 с LAMP.
1000 рублей в подарок на производительные VDS от Timeweb
Закажи VDS, пополни баланс на 1000 рублей, и мы добавим еще столько же. Активируй промокод community1000 в панели управления.
ЗаказатьУсловия использования промокода
Ручная установка PHP на VDS с CentOS 7
Тот же набор дополнительного ПО можно поставить на сервер вручную. Это займет больше времени, но результат будет аналогичным — готовая среда для разработки сайтов и приложений на PHP.
Для установки ПО мы будем использовать консоль, доступную в панели управления VDS на Timeweb. То же самое можно сделать через терминал, подключившись к серверу по SSH.
Первый шаг — установка репозитория EPEL. Без него на CentOS слишком мало пакетов для решения нашей задачи. Чтобы установить EPEL, выполняем в консоли следующие команды:
sudo yum install epel-release sudo yum update
Теперь добавим пакеты, которые нужны для настройки веб-сервера с PHP:
sudo yum install htop wget multitail bash-completion git zip unzip
Во время установки появится несколько запросов — все подтверждаем.
Чтобы улучшить производительность сервера, сократив время доступа к файлам, установим утилиту Prelink — она автоматически подгружает в память наиболее используемые библиотеки. Выполняем команду:
sudo yum install prelink
При установке соглашаемся со всеми предложениями.
Следующий шаг — установка веб-сервера Apache. Выполняем команду:
sudo yum install httpd
Затем ставим MySQL:
sudo yum install mariadb mariadb-server
Наконец добираемся до PHP. В 7-й версии нет даже в EPEL, поэтому придется добавить еще один репозиторий:
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Затем необходимо отредактировать конфиг репозитория, чтобы он начал работать. Открываем его через редактор nano:
sudo nano /etc/yum.repos.d/remi-php74.repo
Находим строку enabled=0 и меняем значение на «1». Должно получиться enabled=1. Сохраняем конфиг и закрываем редактор.
Обновляем кэш:
sudo yum update
И ставим последнюю версию PHP:
sudo yum install php php-fpm php-gd php-mysql php-imagick php-dom php-opcache php-zip php-mbstring
С установкой мы разобрались, осталось настроить все компоненты для работы с веб-сайтами и приложениями.
Настройка программного обеспечения на VDS с CentOS
Начнем с MySQL. Запустим скрипт начальной настройки.
sudo mysql_secure_installation
На экране появится мастер настройки, который работает в режиме «вопрос — ответ». Сначала он запросит рутовый пароль. Так как его нет, пропускаем этот шаг. Дальше нужно указать новый рутовый пароль от баз данных, подтвердить удаление анонимного доступа и обновление привилегий. Еще один важный момент — разрешение или запрет удаленных соединений. Если порт MySQL не закрыт в файрволе, то безопаснее их запретить.
Затем переходим к настройке PHP. Изменим лимиты по умолчанию, чтобы можно было работать с большими файлами. Открываем конфиг PHP через редактор nano:
sudo nano /etc/php.ini
Находим указанные ниже параметры и приводим их к следующим значениям:
memory_limit = 128M post_max_size = 64M upload_max_filesize = 64M
Если нужны еще более высокие лимиты, ставим свои значения.
Сохраняем конфиг PHP и закрываем файл.
Затем открываем конфиг Apache:
sudo nano /etc/httpd/conf/httpd.conf
Меняем дополнительные индексные файлы
<IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule>
Находим модуль <Directory «/var/www/html»>. Меняем значение параметра AllowOverride с «None» на «All». Значение AllowOverride All разрешает серверу исполнять директивы .htaccess для файлов, необходимых для безопасной работы сайтов.
Затем отключим тестовый виртуальный хост, на котором отображается заглушка Apache. Открываем конфигурационный файл:
sudo nano /etc/httpd/conf.d/welcome.conf
В этом файле нужно закомментировать все строки — поставить перед каждой знак #.
Теперь нам нужно создать свой первый виртуальный хост. Формируем конфигурационный файл:
sudo nano /etc/httpd/conf.d/domain.conf
Вместо domain можно использовать любое другое имя – главное, чтобы было расширение .conf. Но удобнее всего называть конфигурационные файлы так же, как домены сайтов, для которых они созданы.
После выполнения предыдущей команды откроется редактор nano с пустым файлом. Вставляем в него следующие строки:
<VirtualHost *:80> ServerName domain.com DocumentRoot /var/www/domain.com ErrorLog /var/log/domain.com/error.log CustomLog /var/log/domain.com/access.log common <Directory /var/www/domain.com> Options FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost>
Вместо domain.com нужно указать свой домен. Затем сохраняем файл и выходим из редактора обратно в консоль.
В конфиге указано, куда писать логи, но самого подкаталога не существует. Создадим его:
sudo mkdir /var/log/domain.com // Вместо domain.com — ваш домен
Теперь создадим тестовую главную страницу сайта:
sudo nano /var/www/domain.com/index.php // Вместо domain.com — ваш домен
Внутри файла index.php разместим три строки:
<?php phpinfo(); ?>
Сохраняем файл и закрываем редактор. Чтобы применить настройки, перезапустим Apache:
sudo service httpd restart
Страница-заглушка исчезнет, при обращении к серверу через IP-адрес браузер будет возвращать ошибку «Доступ запрещен». Зато при вводе домена в адресной строке отобразится страница конфигурации PHP. Это значит, что PHP и Apache работают.
Однако наличие такой страницы в общем доступе небезопасно. Поэтому ее нужно удалить:
sudo rm -f /var/www/domain.com/index.php // Вместо domain.com — ваш домен
Чтобы завершить настройку сервера с PHP, установим phpMyAdmin.
Открываем сайт phpmyadmin.net, кликаем правой кнопкой по Download и копируем адрес ссылки для скачивания последней версии — на момент написания это 5.0.2.
Возвращаемся в консоль и скачиваем архив:
cd /var/www/domain.com/ sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip // Это ссылка на скачивание, скопированная с сайта
Создаем каталог с менеджером баз данных. Придумываем ему сложное название, которое трудно подобрать. Распаковываем архив и переименовываем папку:
sudo unzip https://files.phpmyadmin.net/phpMyAdmin/5.0.2/phpMyAdmin-5.0.2-all-languages.zip sudo mv phpMyAdmin-5.0.2-all-languages.zip catal8882 // catal8882 — каталог с менеджером баз данных
Чтобы попасть в phpMyAdmin, вводим в браузере адрес типа http://domain.com/catal8882. Логин — root, пароль — тот, который мы задали при настройке MySQL.
На этом настройка сервера на CentOS с PHP завершена. Теперь можно создавать на нем сайты и приложения.
Комментарии