Курс — «Программирование на PHP8 для начинающих» — #32 Практический проект. Развертывание на сервере
Здравствуйте, дорогие друзья.
После завершения разработки вашего веб-приложения для управления списком задач (To-Do List) необходимо развернуть его на сервере, чтобы сделать его доступным для пользователей. В этом разделе мы рассмотрим основные шаги по развертыванию вашего PHP-приложения на сервере.
Выбор хостинга
Для развертывания вашего приложения вам потребуется хостинг. Вы можете выбрать один из следующих вариантов:
- Облачные хостинги: AWS, Google Cloud, Microsoft Azure.
- VPS (Virtual Private Server): DigitalOcean, Linode, Vultr.
- Общий хостинг: Bluehost, HostGator, SiteGround.
Для целей этого руководства мы будем использовать VPS от DigitalOcean.
Подготовка сервера
- Создание VPS:
- Зарегистрируйтесь на DigitalOcean и создайте новый Droplet (VPS).
- Выберите операционную систему (например, Ubuntu 20.04).
- Выберите план и регион сервера.
- Добавьте SSH-ключи для доступа к серверу (рекомендуется).
- Подключение к серверу:
- Подключитесь к вашему серверу через SSH.
1 |
ssh root@your_server_ip |
Установка необходимых пакетов
- Обновление системы:
1 2 |
sudo apt update sudo apt upgrade -y |
2. Установка Apache:
1 |
sudo apt install apache2 -y |
3. Установка PHP и расширений:
1 |
sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-curl php-zip php-gd -y |
4. Установка MySQL:
1 |
sudo apt install mysql-server -y |
5. Настройка MySQL:
1 |
sudo mysql_secure_installation |
Следуйте инструкциям для настройки MySQL, включая установку пароля для root-пользователя.
Настройка базы данных
- Создание базы данных и пользователя:
1 |
sudo mysql -u root -p |
1 2 3 4 5 |
CREATE DATABASE todo_app; CREATE USER 'todo_user'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON todo_app.* TO 'todo_user'@'localhost'; FLUSH PRIVILEGES; EXIT; |
- Импорт структуры базы данных:
Создайте файл todo_app.sql
с содержимым:
1 2 3 4 |
CREATE TABLE tasks ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL ); |
Импортируйте структуру базы данных:
1 |
mysql -u todo_user -p todo_app < todo_app.sql |
Настройка Apache
- Создание виртуального хоста:
Создайте файл конфигурации виртуального хоста для вашего приложения:
1 |
sudo nano /etc/apache2/sites-available/todo-app.conf |
Добавьте следующую конфигурацию:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerAdmin webmaster@todo-app.com DocumentRoot /var/www/todo-app ServerName todo-app.com ServerAlias www.todo-app.com <Directory /var/www/todo-app> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/todo-app_error.log CustomLog ${APACHE_LOG_DIR}/todo-app_access.log combined </VirtualHost> |
2. Активация виртуального хоста:
1 2 3 |
sudo a2ensite todo-app.conf sudo a2enmod rewrite sudo systemctl restart apache2 |
Развертывание приложения
- Перенос файлов приложения на сервер:
Скопируйте файлы вашего приложения на сервер. Вы можете использовать SCP, FTP или любой другой метод передачи файлов.
1 |
scp -r /path/to/local/todo-app root@your_server_ip:/var/www/todo-app |
2. Настройка прав доступа:
1 2 |
sudo chown -R www-data:www-data /var/www/todo-app sudo chmod -R 755 /var/www/todo-app |
- Настройка конфигурации базы данных:
Обновите файл config.php
на сервере с правильными данными для подключения к базе данных:
1 2 3 4 5 6 7 |
<!-- config.php --> <?php define('DB_HOST', 'localhost'); define('DB_NAME', 'todo_app'); define('DB_USER', 'todo_user'); define('DB_PASS', 'password'); ?> |
Проверка работы приложения
- Доступ к приложению:
Откройте браузер и перейдите по адресу вашего сервера (например, http://your_server_ip
). Вы должны увидеть ваше приложение для управления списком задач.
- Тестирование функциональности:
Убедитесь, что все функции приложения работают корректно: добавление, редактирование и удаление задач, а также аутентификация пользователей.
Заключение
Мы успешно развернули наше веб-приложение для управления списком задач на сервере. В этом процессе мы настроили сервер, установили необходимые пакеты, создали и настроили базу данных, а также перенесли и настроили файлы приложения. Теперь ваше приложение доступно для пользователей и готово к использованию. В следующих разделах мы рассмотрим, как поддерживать и обновлять ваше приложение, а также как обеспечить его безопасность и производительность.

На этом все. Всем хорошего дня!
Цикл статей по курсу — «Программирование на PHP8 для начинающих».