User Tools

Site Tools


pos

This is an old revision of the document!


POS

.

1. На старом сервере сделать backup проекта и базы cd /var/www/html

tar -czf test2_backup_$(date +%Y-%m-%d_%H-%M).tar.gz test2

DB backup:

mysqldump -u test2_user -p test2 > /var/www/html/test2_db_$(date +%Y-%m-%d_%H-%M).sql

Проверить файлы:

ls -lh /var/www/html/test2_backup_*.tar.gz ls -lh /var/www/html/test2_db_*.sql 2. Новый Ubuntu сервер: базовая установка apt update apt upgrade -y

apt install -y software-properties-common curl wget unzip zip git nano htop \ apache2 mysql-server redis-server supervisor 3. Установить PHP 7.4

На Ubuntu 22.04 PHP 7.4 обычно ставится через PPA:

add-apt-repository ppa:ondrej/php -y apt update

Установить PHP 7.4 и нужные модули:

apt install -y php7.4 php7.4-cli php7.4-common php7.4-mysql php7.4-mbstring \ php7.4-xml php7.4-curl php7.4-zip php7.4-gd php7.4-bcmath php7.4-intl \ php7.4-soap php7.4-opcache libapache2-mod-php7.4

Проверка:

php7.4 -v php -v

Если php показывает не 7.4, сделать так:

update-alternatives –set php /usr/bin/php7.4 php -v 4. Apache модули a2enmod rewrite a2enmod headers a2enmod expires a2enmod deflate a2enmod ssl systemctl restart apache2 5. Создать папку проекта mkdir -p /var/www/html/test2

Загрузить архив проекта и SQL на новый сервер, например в:

/var/www/html/test2_backup_xxx.tar.gz /var/www/html/test2_db_xxx.sql

Распаковать:

cd /var/www/html

tar -xzf test2_backup_*.tar.gz

Проверка:

ls -lah /var/www/html/test2 6. Создать базу MySQL и пользователя

Зайти в MySQL:

mysql

Внутри MySQL:

CREATE DATABASE test2 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'test2_user'@'localhost' IDENTIFIED BY 'YOUR_STRONG_PASSWORD_HERE';

GRANT ALL PRIVILEGES ON test2.* TO 'test2_user'@'localhost';

FLUSH PRIVILEGES; EXIT;

Импорт базы:

mysql -u test2_user -p test2 < /var/www/html/test2_db_*.sql 7. Проверить .env cd /var/www/html/test2 nano .env

Основное должно быть примерно так:

APP_NAME=PapaPOS APP_ENV=production APP_DEBUG=false APP_URL=https://test2.papapos.lv

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=test2 DB_USERNAME=test2_user DB_PASSWORD=YOUR_STRONG_PASSWORD_HERE

CACHE_DRIVER=file SESSION_DRIVER=file QUEUE_DRIVER=database MAIL_DRIVER=sendmail

TELESCOPE_ENABLED=false DEBUGBAR_ENABLED=false WS_SERVER=

Если проект использует старые названия подключений, оставить их тоже:

PGSQL_MELNALAPA_DB_CONNECTION=pgsql_melnalapa PGSQL_MELNALAPA_DB_HOST=127.0.0.1 PGSQL_MELNALAPA_DB_PORT=3306 PGSQL_MELNALAPA_DB_DATABASE=test2 PGSQL_MELNALAPA_DB_USERNAME=test2_user PGSQL_MELNALAPA_DB_PASSWORD=YOUR_STRONG_PASSWORD_HERE

MYSQL_MELNALAPA_DB_HOST=127.0.0.1 MYSQL_MELNALAPA_DB_PORT=3306 MYSQL_MELNALAPA_DB_DATABASE=test2 MYSQL_MELNALAPA_DB_USERNAME=test2_user MYSQL_MELNALAPA_DB_PASSWORD=YOUR_STRONG_PASSWORD_HERE 8. Права Laravel cd /var/www/html/test2

chown -R www-data:www-data storage bootstrap/cache chmod -R ug+rw storage bootstrap/cache

Если нужно временно для теста:

chmod -R 775 storage bootstrap/cache 9. Apache VirtualHost

Создать конфиг:

nano /etc/apache2/sites-available/test2.papapos.lv.conf

Вставить:

<VirtualHost *:80>

  ServerName test2.papapos.lv
  DocumentRoot /var/www/html/test2/public
  <Directory /var/www/html/test2/public>
      AllowOverride All
      Require all granted
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/test2_error.log
  CustomLog ${APACHE_LOG_DIR}/test2_access.log combined

</VirtualHost>

Включить сайт:

a2ensite test2.papapos.lv.conf a2dissite 000-default.conf apache2ctl configtest systemctl reload apache2

Проверка:

curl -I http://test2.papapos.lv 10. SSL сертификат apt install -y certbot python3-certbot-apache

Получить SSL:

certbot –apache -d test2.papapos.lv

Проверка:

curl -I https://test2.papapos.lv 11. Laravel cache clear после переноса cd /var/www/html/test2

php7.4 artisan view:clear php7.4 artisan cache:clear php7.4 artisan config:clear

chown -R www-data:www-data storage bootstrap/cache systemctl restart apache2

curl -I https://test2.papapos.lv tail -50 storage/logs/laravel.log

Когда всё работает стабильно:

php7.4 artisan config:cache php7.4 artisan view:cache

chown -R www-data:www-data storage bootstrap/cache systemctl restart apache2

route:cache пока не делать.

12. Проверить OPcache php7.4 -i | grep -i opcache.enable

Должно быть:

opcache.enable ⇒ On

Если нужно настроить:

nano /etc/php/7.4/apache2/conf.d/10-opcache.ini

Минимально:

opcache.enable=1 opcache.memory_consumption=128 opcache.max_accelerated_files=10000 opcache.validate_timestamps=1 opcache.revalidate_freq=2

Перезапуск:

systemctl restart apache2 13. Проверить cron / queue

Посмотреть Laravel scheduler:

crontab -l

Если нужен Laravel scheduler:

crontab -e

Добавить:

* * * * * cd /var/www/html/test2 && php7.4 artisan schedule:run » /dev/null 2>&1

Если queues используются через database queue, позже можно настроить supervisor. Но если сейчас queue worker не нужен, не трогаем.

14. Проверить print test переменную

Файл:

cd /var/www/html/test2

grep -RIn “SKIP_PRINT_ON_LOCAL_TEST” public/js/apps/cash_register/api/Order.js

Для Windows-теста:

const SKIP_PRINT_ON_LOCAL_TEST = true

Для реального планшета / кассы:

const SKIP_PRINT_ON_LOCAL_TEST = false

После изменения поднять версию:

grep -RIn “app.js?v=” resources/Views nano resources/Views/cash_register/app.blade.php 15. Финальная проверка нового сервера cd /var/www/html/test2

curl -I https://test2.papapos.lv tail -50 storage/logs/laravel.log tail -100 /var/log/apache2/test2_error.log mysqladmin processlist top free -h df -h

Добавь в серверный checklist только этот блок:

apt update apt install -y postfix mailutils

Во время установки Postfix выбрать:

Internet Site

System mail name:

papapos.lv

Проверка:

systemctl enable postfix systemctl restart postfix systemctl status postfix –no-pager

Проверить, что sendmail есть:

which sendmail

Обычно будет:

/usr/sbin/sendmail

pos.1787296780.txt.gz · Last modified: by 46.109.187.144