Как установить PHP на VDS под CentOS

Обсудить
Как установить PHP на VDS под CentOS

Если вы взяли VDS для размещения динамических сайтов и приложений, написанных на PHP, то вам понадобится установить этот серверный язык. Сделать это можно в автоматическом и ручном режимах. В этой статье мы изучим оба способа на примере VDS с CentOS 7.

Автоматическая установка PHP на VDS

Самый простой вариант — установить PHP на собственный VDS под CentOS при создании сервера. Например, такая возможность есть на Timeweb.

  1. Заходим в панель управления VDS на хостинге.

  2. Переходим на вкладку «Список VDS».

  3. Нажимаем на кнопку «Создать сервер».

  4. Вводим любое имя и комментарий, если он нужен.

  5. Выбираем операционную систему и дополнительное ПО для сервера. В нашем случае это будет CentOS 7 и LAMP (Linux, Apache, MySQL, PHP, nginx).Установка PHP при создании нового сервера

  6. Выбираем конфигурацию сервера.

  7. При необходимости указываем публичную часть ключа SSH (если уже его создали) и включаем защиту от DDoS-атак.

  8. Оплачиваем тариф и получаем на почту письмо с данными для подключения к серверу.

После установки операционной системы и дополнительного ПО мы имеем полностью готовый сервер для работы над динамическими сайтами и приложениями. 

Если уже есть сервер с другой ОС и дополнительным ПО, можно выполнить переустановку. Но этот способ подходит только в том случае, если на машине ничего не настроено и не размещено. Переустановка удаляет из хранилища все файлы. Например, у меня на 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. Сохраняем конфиг и закрываем редактор.

Включаем репозиторий, чтобы установить PHP на сервер

Обновляем кэш:

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. 

Ссылка на скачивание последней версии phpMyAdmin

Возвращаемся в консоль и скачиваем архив:

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 завершена. Теперь можно создавать на нем сайты и приложения.

 

Комментарии