在VPS上部署PHP应用:分步指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Введение

Разработка PHP-приложения — это только половина дела. Вторая, не менее важная часть — это деплой, то есть развёртывание готового кода на боевом сервере. Многие начинающие разработчики сталкиваются с трудностями при переносе проекта с локальной машины на VPS (Virtual Private Server). Настройка окружения, работа с веб-сервером, базами данных и безопасностью могут показаться сложными, но на самом деле это последовательный и понятный процесс.

В этой статье мы шаг за шагом разберём, как правильно выполнить деплой PHP приложения на VPS. Вы узнаете, как подготовить сервер, настроить Nginx и PHP-FPM, подключить базу данных MySQL и автоматизировать выкладку обновлений через Git. Материал рассчитан на тех, кто уже имеет базовые навыки работы с Linux и Git, но хочет систематизировать знания.



1. Подготовка сервера и установка LEMP-стека

Первым делом необходимо подключиться к вашему VPS по SSH и установить базовый набор программ, известный как LEMP (Linux, Nginx, MySQL, PHP).

Подключитесь к серверу:

ssh root@ваш-ip-адрес

Обновите пакеты и установите Nginx, MySQL и PHP с необходимыми расширениями:

sudo apt update && sudo apt upgrade -ysudo apt install nginx mysql-server php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

После установки запустите службы и добавьте их в автозагрузку:

sudo systemctl start nginxsudo systemctl enable nginxsudo systemctl start php8.1-fpm  # версия может отличатьсяsudo systemctl enable php8.1-fpm

На этом этапе базовая инфраструктура готова. Теперь перейдём к настройке базы данных и конфигурации веб-сервера.



2. Настройка MySQL и создание базы данных

Для работы большинства PHP-приложений (например, WordPress, Laravel или самописных проектов) требуется база данных. Выполните первичную настройку MySQL:

sudo mysql_secure_installation

Следуйте инструкциям: установите пароль для root, удалите анонимных пользователей, запретите удалённый вход root'ом и удалите тестовую базу.

Теперь создайте базу данных и пользователя для вашего приложения. Зайдите в консоль MySQL:

sudo mysql -u root -p

Выполните SQL-запросы (замените myapp, myuser и mypassword на свои значения):

CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';FLUSH PRIVILEGES;EXIT;

База готова. Запишите имя базы, пользователя и пароль — они понадобятся при настройке приложения.



3. Размещение кода и настройка виртуального хоста Nginx

Теперь самое время перенести код вашего PHP-приложения на сервер. Самый удобный способ — использовать Git. Допустим, ваш проект хранится на GitHub или GitLab.

Создайте директорию для проекта и склонируйте репозиторий:

sudo mkdir -p /var/www/myappsudo chown -R $USER:$USER /var/www/myappgit clone https://github.com/ваш-username/ваш-репозиторий.git /var/www/myapp

Если проект использует Composer (например, Laravel или Symfony), выполните установку зависимостей:

cd /var/www/myappcomposer install --no-dev --optimize-autoloader

Настройте права доступа. Обычно веб-сервер должен иметь доступ на запись к некоторым папкам (например, storage и bootstrap/cache в Laravel):

sudo chown -R www-data:www-data /var/www/myapp/storagesudo chown -R www-data:www-data /var/www/myapp/bootstrap/cache

Теперь создадим конфигурацию виртуального хоста для Nginx. Создайте файл:

sudo nano /etc/nginx/sites-available/myapp

Вставьте следующую конфигурацию (адаптир

博客

书籍推荐