Данная инструкция предназначена для установки необходимых компонентов и настройки окружения для проекта на операционных системах Linux Debian 12
Перед началом установки убедитесь, что ваша система обновлена до последней версии:
sudo apt update
sudo apt upgrade
Visual Studio Code - это мощный редактор кода с поддержкой множества языков программирования. Следующие команды установят его на вашу систему:
sudo apt install curl
sudo curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install code
Git - это распределенная система управления версиями, которая позволяет контролировать изменения в исходном коде проекта. Выполните следующие команды для установки Git и настройки вашего имени пользователя и адреса электронной почты:
sudo apt update
sudo apt install git
git config --global user.name "Ваше имя"
git config --global user.email "ваша_электронная_почта@example.com"
PHP - это основной язык программирования для проекта. Установите PHP и несколько расширений, необходимых для работы:
sudo apt update
sudo apt install php php-cli php-fpm php-mysql php-xml php-curl php-mbstring php-redis php-mongodb php-pear php-dev
Убедитесь, что у вас установлены Zend Engine и OPcache, выполнив команду:
php --version
также вы можите удалить php
sudo apt purge php*
PHP 8.2.7 (cli) (built: Jun 9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies
- php-cli: Предоставляет командную строку для PHP.
- php-fpm: Менеджер процессов FastCGI для PHP.
- php-mysql: Поддержка MySQL для PHP.
- php-xml: Модуль PHP для работы с XML-данными.
- php-curl: Поддержка библиотеки cURL для PHP.
- php-mbstring: Многобайтные строки для PHP.
- php-redis: Поддержка расширения Redis для PHP.
Composer - это инструмент для управления зависимостями в PHP-проектах. Установите его, выполнив следующие команды:
sudo apt update
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
composer --version
Nginx - это веб-сервер, который будет обслуживать этот проект. Установите его, выполнив следующие команды:
sudo apt update
sudo apt install nginx
Убедитесь, что Nginx успешно запущен, проверив его статус:
sudo systemctl status nginx
Если у вас включен файрвол (например, UFW), убедитесь, что он разрешает трафик HTTP (порт 80)
sudo ufw allow 'Nginx HTTP'
Порт 80 может быть занят другим процессом, таким как Apache. Узнайте, какой процесс использует порт 80:
sudo netstat -tuln | grep 80 или sudo ss -tuln | grep ':80'
tcp LISTEN 0 511 *:80 *:*
sudo lsof -i :80
Если порт занят другим веб-сервером, остановите его перед запуском Nginx:
Отключаем другой веб сервер:
sudo systemctl stop apache2
Затем перезапустите Nginx:
sudo systemctl restart nginx
Создайте новый конфигурационный файл для вашего проекта:
sudo nano /etc/nginx/sites-available/default
Добавьте следующий конфигурационный блок:
# config for Wave-messenger
server {
listen 80;
server_name localhost;
root /var/www/Wave-Messenger;
index.php index.html index.htm;
location / {
try_files $url $url/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
После этого удалите стандартную папку html:
sudo rm -rf /var/www/html
Замените путь до вашей папки проекта:
sudo mv /path/to/your/project /var/www/Wave-Messenger
Затем перезапустите Nginx:
sudo systemctl restart nginx
Установите пакет MySQL Server
sudo apt update
sudo apt install default-mysql-server
После установки MySQL Server он автоматически запустится. Вы можете проверить статус службы, выполнив:
sudo systemctl status mysql
Если служба не запустилась автоматически, вы можете запустить ее вручную с помощью команды:
sudo systemctl start mysql
Входим в MySQL:
sudo mysql
Добавьте пароль в MySQL:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('ваш пароль тут'); FLUSH PRIVILEGES;
Затем перезапустите Nginx:
sudo systemctl restart nginx
После успешного запуска MySQL вы можете войти в командную строку MySQL, используя следующую команду:
sudo mysql
Это откроет командную строку MySQL, где вы можете начать работу с базами данных и пользователями.
Создайте базу данных:
CREATE DATABASE Wave_messenger CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
Дамп базы данных находится в src/_root/wave_messenger.sql. Импортируйте дамп базы данных в базу данных Wave_messenger. После импорта сделайте соединение с базой данных. В файле _inc/connect.php:
$dbHost = 'localhost';
$dbName = 'Wave_messenger';
$dbUser = 'root';
$dbPass = 'root';
Смените на ваш URL адрес в этом случае :
$URL = 'localhost';
Для установки Redis выполним следующие команды в терминале:
sudo apt update
sudo apt install redis-server
Запускайте Redis
sudo apt systemctl start redis
PHP для использования Redis для хранения сессий Для этого нам понадобится настроить PHP для использования Redis в качестве хранилища сессий. Откроем файл настроек PHP php.ini:
sudo nano /etc/php/8.2/fpm/php.ini
Здесь мы указываем, что хотим использовать Redis для хранения сессий и указываем адрес Redis сервера (localhost) и порт (6379):
session.save_handler = redis
session.save_path = "tcp://localhost:6379"
Сохраните изменения и закройте файл. Чтобы изменения вступили в силу, перезапустите службу PHP-FPM:
sudo systemctl restart php8.2-fpm
Загрузка phpredis: Сначала загрузите phpredis из репозитория GitHub. Вы можете сделать это, перейдя по ссылке https://github.com/phpredis/phpredis и нажав кнопку "Code" -> "Download ZIP". После загрузки архива распакуйте его в удобное место на вашем компьютере Компиляция и установка: Перейдите в каталог, в который вы распаковали phpredis, и выполните следующие команды в терминале:
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
Из терминала установите gnupgи , curl если они еще не доступны:
sudo apt-get install gnupg curl
Чтобы импортировать общедоступный ключ GPG MongoDB, выполните следующую команду:
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \
--dearmor
Создайте файл списка с помощью команды, соответствующей вашей версии Debian:
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Чтобы установить последнюю стабильную версию, выполните следующую команду:
sudo apt-get install -y mongodb-org
После установки MongoDB автоматически запустится. Вы можете проверить его статус с помощью команды: Если MongoDB не запущен, вы можете запустить его с помощью команды:
sudo systemctl start mongod
В Debian по умолчанию часто устанавливается Python версии 3.x. Вы можете убедиться в наличии Python 3, выполнив следующую команду:
python3 --version
Если Python 3 уже установлен, вы увидите его версию. Если нет, вы можете установить его из официальных репозиториев Debian с помощью следующей команды:
sudo apt update
sudo apt install python3
После установки Python 3 вы можете установить Flask с помощью менеджера пакетов Python pip. Убедитесь, что pip установлен:
sudo apt install python3-pip
Чтобы проверить, что Python и Flask успешно установлены, выполните следующие команды:
python3 --version
Перейдите в каталог /var/www/Wave-Messenger:
cd /var/www/Wave-Messenger
Создайте виртуальное окружение в этом каталоге. Вы можете назвать его, например, env
python3 -m venv env
Активируйте виртуальное окружение.
source env/bin/activate
pip install Flask
sudo apt-get install libmariadb-dev-compat
sudo apt-get install libmariadb-dev
pip install flask-mysqldb
pip install Flask-SocketIO