16 декабря 2024 г.

Разработка PHP и MySQL с использованием Docker

Современные веб-разработчики часто сталкиваются с проблемами настройки окружения для проектов. Docker помогает стандартизировать и ускорить процесс развертывания приложений, изолируя их зависимости и конфигурации в контейнерах. В этой статье мы рассмотрим, как настроить окружение для разработки PHP и MySQL с помощью Docker.

Преимущества использования Docker

  • Изоляция: Каждое приложение работает в своём контейнере, что предотвращает конфликты между версиями зависимостей.

  • Мобильность: Контейнеры можно запускать на любом сервере, поддерживающем Docker.

  • Скорость: Быстрое развертывание и обновление приложений.

  • Консистентность: Все разработчики используют одинаковую среду.

Что потребуется

  • Установленный Docker и Docker Compose.

  • Базовые знания PHP и SQL.

  • Установленный редактор кода (например, VS Code).

Шаги настройки окружения

  1. Создайте структуру проекта

    project-directory/
    |-- app/
    | |-- index.php
    |-- docker-compose.yml
    |-- Dockerfile
  2. Напишите Dockerfile

    В Dockerfile будет описана конфигурация для PHP.

    # Используем базовый образ PHP
    FROM php:8.2-apache

    # Устанавливаем необходимые расширения
    RUN docker-php-ext-install mysqli

    # Копируем код приложения в контейнер
    COPY app/ /var/www/html/
  3. Создайте docker-compose.yml

    Файл docker-compose.yml поможет настроить взаимодействие между контейнерами (PHP и MySQL).

    version: '3.8'

    services:
    app:
    build:
    context: .
    ports:
    - "8080:80"
    volumes:
    - ./app:/var/www/html
    depends_on:
    - db

    db:
    image: mysql:8.0
    environment:
    MYSQL_ROOT_PASSWORD: rootpassword
    MYSQL_DATABASE: exampledb
    MYSQL_USER: user
    MYSQL_PASSWORD: password
    ports:
    - "3306:3306"
  4. Создайте файл index.php

    В директории app/ создайте файл index.php с простым подключением к базе данных.

    <?php
    $servername = "db";
    $username = "user";
    $password = "password";
    $dbname = "exampledb";

    // Создаем подключение
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Проверяем подключение
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }
    echo "Connected successfully";
    ?>
  5. Запустите контейнеры

    В корневой директории проекта выполните команду:

    docker-compose up --build

    После успешного запуска приложение будет доступно по адресу http://localhost:8080.

Полезные команды Docker

  • Остановить контейнеры:

    docker-compose down
  • Просмотреть запущенные контейнеры:

    docker ps
  • Войти в контейнер:

    docker exec -it container_name bash

Заключение

Использование Docker для разработки PHP и MySQL упрощает настройку окружения, делает его переносимым и управляемым. С помощью описанных шагов вы можете быстро развернуть полноценную среду для разработки, которая легко масштабируется и обновляется.


docker-compose up --build 
docker-compose up -d
docker ps


version: "3.9"
services:
nginx:
image: nginx:latest
container_name: nginx-container
ports:
- 80:80









15 июля 2024 г.

Установка NGINX PHP PHP-FPM PHPMyAdmin на Ubuntu

 1. Обновляем Ubuntu:

apt-get update && apt-get upgrade

 

2. Устанавливаем NGINX

apt-get install nginx

nano vi /etc/nginx/nginx.conf   конфигурация

systemctl restart nginx

systemctl status nginx 


3. Установка PHP и PHP-FPM

sudo apt install php php-fpm php-common php-mysql php-gd php-cli
sudo systemctl status php7.4-fpm
sudo nano /etc/php/7.4/fpm/php.ini

4. Настройка связки NGINX + PHP

nano /etc/nginx/sites-enabled/default

systemctl restart php7.4-fpm

 

5. Установка MySQL

apt install mysql-server 

mysqladmin -p -u root version

apt install phpmyadmin

ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin



Как сделать что бы update PHP не ставил Apache? 

 вот такая команда 

sudo apt install --no-install-recommends php


Решение проблемы с ошибкой #1698 - Access denied for user ‘root’@’localhost’

Создание нового пользователя для работы с MySQL через phpMyAdmin

sudo mysql --user=root mysql

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;


sudo mysql
mysql> use mysql;
mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

# enable password login
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
mysql> FLUSH PRIVILEGES;
mysql> exit;

# should be able to login with password now
mysql -u root -p
Enter password:
sudo mysql_secure_installation      

6 июня 2024 г.

создать правильно переменные окружения python

создание виртуальной папки с .vevn
$ python3.8 -m pip install --upgrade pip
$ pip install virtualenv
$ mkdir
$ cd fonlinebot
$ virtualenv .venv
$ source .venv/bin/activate( - активировать среду, чтобы выйти bash или deactivate)

после этого надо проинсталировать для вашей версии python3.8 (ваша версия)
$ python3.8 -m pip install -U aiogram

и запускайте ваш код после команды:
$ source .venv/bin/activate

чтобы код работал в окружении переменных.

15 января 2024 г.

Торговые стратегии на рынке форекс

На рынке Forex существует множество различных стратегий, которые трейдеры могут использовать при создании экспертных советников (экспертов) или ручной торговли. Ниже приведены некоторые из наиболее распространенных стратегий, которые могут быть реализованы в экспертах:

12 января 2024 г.

Как изменить логин администратора windows

Задача не такая простая, как могло бы показаться)) 

Изменение логина администратора в Windows может быть сложным процессом и, более того, это может привести к проблемам с безопасностью и функциональностью системы. В большинстве случаев рекомендуется избегать изменения логина администратора. Однако, если у вас есть веская причина сделать это, вот несколько шагов, которые можно предпринять:

Примечание: Изменение логина администратора может повлечь за собой потерю доступа к некоторым файлам и настройкам. Пожалуйста, будьте осторожны и создайте резервные копии важных данных перед началом процесса.

4 января 2023 г.

Как установить Metatrader на Debian Linux, используя wine

dpkg --add-architecture i386


sudo apt-get update
sudo apt-get install gnupg2 software-properties-common
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/debian/ buster main'
apt-get update
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/bionic/winehq-bionic.sources
sudo apt install --install-recommends winehq-stable



https://wiki.winehq.org/Ubuntu

23 декабря 2022 г.

Как сделать что бы update PHP не ставил Apache

Как сделать что бы update PHP не ставил Apache? 

 вот такая команда 

sudo apt install --no-install-recommends php8.1 

 у меня уже лет как 10 нет Apache а php настойчиво пытается его впихнуть. не приятно

20 ноября 2022 г.

Общие различия между MQL4 и MQL5

С точки зрения грамматики кода различий очень мало.
Убедитесь, что в каждом исходном файле указано #property strict

Вставка #property strict в начале каждого файла гарантирует, что MQL4 будет работать в «строгом» режиме, который обеспечивает более близкое соблюдение стандартов к MQL5, а не к MQL4 до 2014 года. Без этой строки в МТ4 произойдет непредвиденное поведение.

Для программ, написанных на диалекте MQL4 до 2014 года, вставка этой строки часто приводит к большому количеству ошибок из-за различных методов написания кода. Это следует смягчить, следуя рекомендациям, описанным в этом руководстве и в целом.

Эта строка обычно вставляется, если вы создаете файл в MetaEditor 4, но не вставляется, если вы используете MetaEditor 5, поэтому убедитесь, что эта строка присутствует в каждом исходном файле.

Для настроек используйте входные переменные, а не внешние переменные.

Хотя допустимо в MQL4, extern bool var; стал недействительным для пользовательских настроек в MQL5 с 2017 года. MQL5 требует, чтобы вы использовали input bool var; или же окно настроек не отображается.

Согласно документам MQL5, переменная extern предназначена для использования в качестве общей переменной для исходных файлов, связанных вместе с помощью #include. В MT4 принято использовать внешние переменные в качестве пользовательских настроек, но MT5 прекратил эту практику. Тем не менее, внешние переменные по-прежнему работают в MQL5 по назначению.

input переменные могут быть установлены пользователем только один раз и не могут быть изменены во время выполнения. Если вы используете внешние переменные в качестве пользовательских настроек, вам следует проверить, изменяете ли вы эти внешние переменные на новые значения во время выполнения:
Если вы этого не сделаете, безопасно выполнить поиск и заменить внешние переменные входными переменными.
Если вы меняете внешние переменные extern, вы можете иметь отдельные входные переменные input, а затем копировать значения в ваши текущие внешние переменные extern во время OnInit.

Переменные должны быть инициализированы значением по умолчанию.
В MQL4, если вы объявляете переменную, ее значение неявно инициализируется равным 0 или эквивалентным. Поэтому вы можете написать int startVal; без указания стоимости. В MQL5 это не работает, потому что MT5 не инициализирует переменные за вас — вы должны инициализировать все переменные значением по умолчанию: int startVal = 0;

26 июня 2022 г.

Удалить несколько секунд с каждого видео с FFMPEG

 for file in *.mp3; do ffmpeg -ss 00:00:05 -i $file -to  $( echo "$(ffprobe -v 0 -show_entries format=duration -of compact=p=0:nk=1 $file) " ) -c copy  "${file}_n.mp3" ; done

 

это команда в цикле для каждого видео в папке при помощи ffmpeg

удаляет первые 5 секунд в каждом видео и создает новые обработанные видео

Разработка PHP и MySQL с использованием Docker

Современные веб-разработчики часто сталкиваются с проблемами настройки окружения для проектов. Docker помогает стандартизировать и ускорить ...