Данная задача есть практическая часть ухода от использования всего того что предыдущий системный администратор нагородил в последние дни декабря 2019 прежде чем уйти на новое место. Спрашивается зачем, делать что-то что никто в организации не знает, да не показать что и как и зачем. Взять перевести все сервисы Nod32, проект «customizer.ekzorchik.ru», «dealers.ekzorchik.ru» c FreeBSD 12
на Оборудования в дата-центре СДН: Supermicro 5017C-MTF, CPU Xeon E3-1240v2 3.4GHz, RAM 8Gb, SATA 1Tb x 2, RAID
Но при этом все сервисы засунуть в Docker
да плюс еще под CentOS 7
. Со словами я хотел чтобы было безопасно и все работало. Я же поклонник Ubuntu
систем и разбираюсь в них довольно таки неплохо. Вот сейчас все на карантине и удаленке, а я все прорабатываю и документирую дабы ничто на работе не могло повергнуть меня в момент когда я что-то не знаю. Сказано и сделано. Сегодняшняя заметка — это перевод портала dealers.amigo.ru
из Docker
на нормальное использование.
Шаг №1:
Операционная система (CPU = 1 cpu 2 cores, HDD = 50, RAM = 2Gb) Ubuntu 18.04 Server amd64
, к ней применен скрипт моей базовой настройки на продуктивную работу
ekzorchik@srv-bionic:~$ hg clone --insecure https://ekzorchik@172.35.35.8/hg/dproject ekzorchik@srv-bionic:~$ sudo ./dproject/default
Шаг №2:
Устанавливаю репозитарий поддержки установки PHP 7.3
ekzorchik@srv-bionic:~$ sudo apt install -y software-properties-common ekzorchik@srv-bionic:~$ sudo add-apt-repository ppa:ondrej/php
Шаг №3:
Устанавливаю nginx & mariadb & php7.3:
ekzorchik@srv-bionic:~$ sudo apt-get install -y nginx mariadb-server php7.3-cli php7.3-fpm php7.3-common php7.3-mbstring php7.3-xmlrpc php7.3-soap php7.3-gd php7.3-xml php7.3-intl php7.3-mysql php7.3-cli php7.3-zip php7.3-curl php7.3-mysql ekzorchik@srv-bionic:~$ sudo nano /etc/nginx/nginx.conf user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; ssl_prefer_server_ciphers on; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; gzip on; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } ekzorchik@srv-zabbix:~$ sudo nano /etc/php/7.3/fpm/php.ini date.timezone = Europe/Moscow cgi.fix_pathinfo=0 ekzorchik@srv-zabbix:~$ sudo nano /etc/php/7.3/cli/php.ini date.timezone = Europe/Moscow cgi.fix_pathinfo=0 ekzorchik@srv-bionic:~$ sudo systemctl enable nginx php7.3-fpm ekzorchik@srv-bionic:~$ sudo php-fpm7.3 -t [30-Mar-2020 14:24:33] NOTICE: configuration file /etc/php/7.3/fpm/php-fpm.conf test is successful ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo mysql_secure_installation Enter current password for root (enter for none): 712mbddr@ Change the root password? [Y/n] n Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Шаг №4:
Проверяю, что у меня выполняются php-скрипты
ekzorchik@srv-bionic:~$ sudo nano /var/www/html/info.php <?php phpinfo(); ?>; ekzorchik@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/html/ ekzorchik@srv-bionic:~$ sudo chmod -R 755 /var/www/html/ ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm
http://172.33.33.6/info.php
— скрипт не выполняется, а скачивается. Это значит что nginx
не понимает/не настроен на работу с php скриптами. Исправляю это дело:
ekzorchik@srv-bionic:~$ sudo nano /etc/nginx/sites-available/default server { listen 80 default_server; #listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } ekzorchik@srv-bionic:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm
Проверяю: http://172.33.33.6/info.php
Шаг №5:
Создаю базу, пользователя и пароль под сервис:
ekzorchik@srv-bionic:~$ sudo mysqladmin -u root password 712mbddr@ ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create database db_dealers character set utf8mb4 collate utf8mb4_unicode_ci" ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create user 'us_dealers'@'localhost' identified by '612mbddr@'" ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "grant all on db_dealers.* to 'us_dealers'@'localhost';" ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "flush privileges"
Отобразить какие привилегии у пользователя us_dealers
ekzorchik@srv-bionic:~$ sudo mysql -u us_dealers -p612mbddr@ -e "show grants" +-------------------------------------------------------------------------------------------------------------------+ | Grants for us_dealers@localhost | +-------------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'us_dealers'@'localhost' IDENTIFIED BY PASSWORD '*CECC15C42396D57A6401A98CB92227E2C21A1092' | | GRANT ALL PRIVILEGES ON `db_dealers`.* TO 'us_dealers'@'localhost' | +-------------------------------------------------------------------------------------------------------------------+ ekzorchik@srv-bionic:~$
Шаг №6:
Проверяю, что PHP
—сценарии взаимодействуют с созданной базой данных:
ekzorchik@srv-bionic:~$ sudo nano /var/www/html/db-connect-test.php <?php $servername = "localhost"; $database = "db_dealers"; $username = "us_dealers"; $password = "612mbddr@"; // Create connection $conn = mysqli_connect($servername, $username, $password, $database); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully \n"; mysqli_close($conn); ?> ekzorchik@srv-bionic:~$ php -f /var/www/html/db-connect-test.php Connected successfully ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/html/ ekzorchik@srv-bionic:~$ sudo chmod -R 755 /var/www/html/
Отлично, работает соединение.
Шаг №7:
Делаю бекап с CentOS 7
и передаю его на Ubuntu 18.04 Server
root@ekzorchik.ru [/root] #uname -a Linux ekzorchik.ru 3.10.0-1062.18.1.el7.x86_64 #1 SMP Tue Mar 17 23:49:17 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux root@ekzorchik.ru [/root] #cat /etc/os-release NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7" root@ekzorchik.ru [/root] # root@ekzorchik.ru [/root] #/usr/bin/docker exec -i DeaSQL sh -c 'exec mysqldump -v --insert-ignore --skip-lock-tables --single-transaction=TRUE -uroot -p"PASSWORD" dealers.ekzorchik.ru '| /usr/bin/gzip > /home/ekzorchik/dealers.ekzorchik.ru_06_04_2020.sql.gz root@ekzorchik.ru [/root] #scp -P 38555 /home/ekzorchik/dealers.ekzorchik.ru_06_04_2020.sql.gz ekzorchik@NEW_HOST:/home/ekzorchik/ root@ekzorchik.ru [/root] #/usr/bin/tar -zcf dealers.ekzorchik.ru.files.tar.gz /var/lib/docker/volumes/dealers_files/_data# root@ekzorchik.ru [/home/backup] #scp -P 38555 /home/backup/dealers.ekzorchik.ru.files.tar.gz ekzorchik@NEW_HOST:/home/ekzorchik/
Шаг №8:
Восстанавливаю бекап в созданную базу:
ekzorchik@srv-bionic:~$ gzip -d dealers.ekzorchik.ru_06_04_2020.sql.gz ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ db_dealers < dealers.ekzorchik.ru_06_04_2020.sql
Шаг №9:
Создаю каталог сайта и копирую в него все файлы из бекапа
ekzorchik@srv-bionic:~$ sudo mkdir /var/www/html/dealers ekzorchik@srv-bionic:~$ gzip -d dealers.ekzorchik.ru.files.tar.gz ekzorchik@srv-bionic:~$ tar xf dealers.ekzorchik.ru.files.tar ekzorchik@srv-bionic:~$ sudo cp -Rf var/lib/docker/volumes/dealers_files/_data/* /var/www/html/dealers/ или так: root@ekzorchik.ru [/root] #./dbackup root@ekzorchik.ru [/root] #ls /home/ekzorchik/backup/130420/dealers ./ ../ dealers.ekzorchik.ru_130420_08_58_01.sql.gz dealers.tgz volumes.tgz root@ekzorchik.ru [/root] #scp /home/ekzorchik/backup/130420/dealers/* ekzorchik@NEW_HOST:/home/ekzorchik ekzorchik@NEW_HOST's password: dealers.ekzorchik.ru_130420_08_58_01.sql.gz 100% 258MB 11.2MB/s 00:23 dealers.tgz 100% 880KB 9.5MB/s 00:00 volumes.tgz 100% 37MB 11.2MB/s 00:03 root@ekzorchik.ru [/root] #
Шаг №10:
Правлю параметры работы сайта на созданную базу, пользователя и пароль:
ekzorchik@srv-bionic:~$ sudo nano /var/www/html/dealers/imu/pass.php <?php /* $DBHOST=getenv("DB_HOST"); $DBUSER=getenv("DB_USERNAME"); $DBPASS=getenv("DB_PASSWORD"); $DBNAME=getenv("DB_DATABASE"); $DBSYSN=getenv("DB_SYSN"); $OpenDBlink; $log_no=getenv("DEALERS_DISABLE_LOG"); $FIRST_PARAM_PAGE=getenv("DEALERS_FIRST_PAGE"); $ORDER_LIMIT=getenv("DEALERS_ORDER_LIMIT"); $ORDER_LIMIT_GI=getenv("DEALERS_ORDER_LIMIT_GI"); */ $DBHOST='localhost'; $DBUSER='us_dealers'; $DBPASS='612mbddr@'; $DBNAME='db_dealers'; $DBSYSN='Amigo'; $OpenDBlink; $log_no=1; $FIRST_PARAM_PAGE='?NEWS=ALL'; $ORDER_LIMIT=300; $ORDER_LIMIT_GI=300; ?>
Шаг №11:
Создаю конфигурацию сайта для Web
—сервиса nginx:
ekzorchik@srv-bionic:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/dealers.conf ekzorchik@srv-bionic:~$ sudo unlink /etc/nginx/sites-enabled/default ekzorchik@srv-bionic:~$ sudo nano /etc/nginx/sites-available/dealers.conf server { listen 80 default_server; # listen [::]:80 default_server; root /var/www/html/dealers; index index.php index.html; # client_max_body_size 5m; server_name 172.33.33.6; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } location ~ ^/ADMIN { auth_basic "Admin Area"; auth_basic_user_file /var/www/html/dealers/ADMIN/.htpasswd; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|pss|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|html|htm)$ { expires 7d; } error_log /var/log/nginx/dealers-error.log; access_log /var/log/nginx/dealers-access.log; } ekzorchik@srv-bionic:~$ sudo ln -s /etc/nginx/sites-available/dealers.conf /etc/nginx/sites-enabled/dealers.conf ekzorchik@srv-bionic:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo chown -R www-data:www-data /var/www/html/dealers/ ekzorchik@srv-bionic:~$ sudo chmod -R 755 /var/www/html/dealers/ ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm
Шаг №12:
Проверяю, как будет работать при обращении на URL: http://172.33.33.6
Так вот она первая ошибка или недопонимание, как происходит процесс развертывания:
А то, что запросы к таблицам базы данных идут в верхнем регистре, а именование таблиц в самой базе в нижнем, поправляю:
ekzorchik@srv-bionic:~$ sudo nano /etc/mysql/my.cnf [client-server] !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mariadb.conf.d/ [mysqld] lower_case_table_names=1 ekzorchik@srv-bionic:~$ sudo systemctl restart mysql ekzorchik@srv-bionic:~$ sudo systemctl status mysql
Так осталось разобраться, как передать кодировку, вот к примеру если бы у меня был Web
-сервис Apache2:
ekzorchik@srv-bionic:~$ cat /var/www/html/dealers/.htaccess #AddHandler application/x-httpd-php .php .html .htm .xml .pss #php_value max_input_vars 60000 php_value default_charset cp1251
но для Web
-сервиса Nginx
и будет все в шоколаде
Решение:
ekzorchik@srv-bionic:~$ sudo nano /etc/nginx/sites-available/dealers.conf server { listen 80 default_server; # listen [::]:80 default_server; root /var/www/html/dealers; index index.php index.html; # client_max_body_size 5m; server_name 172.33.33.6; add_header Content-Type "text/html; charset=windows-1251"; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } location ~ ^/ADMIN { auth_basic "Admin Area"; auth_basic_user_file /var/www/html/dealers/ADMIN/.htpasswd; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|pss|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|html|htm)$ { expires 7d; } error_log /var/log/nginx/dealers-error.log; access_log /var/log/nginx/dealers-access.log; } ekzorchik@srv-bionic:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm
Результат:
Работает, авторизуюсь и все на русском, ошибок пока нет.
Шаг №13:
Для отправки уведомление устанавливаю пакет ssmtp:
ekzorchik@srv-bionic:~$ sudo apt-get install -y ssmtp
Шаг №14:
Есть еще доступ в /ADMIN
ekzorchik@srv-bionic:~$ nano adminpasswd #!/bin/bash read -p "Enter username: " username printf "${username}:`openssl passwd -apr1`\n" >> /var/www/html/dealers/ADMIN/.htpasswd ekzorchik@srv-bionic:~$ sudo ./adminpasswd Enter username: test Password: test Verifying - Password: test ekzorchik@srv-bionic:~$ cat /var/www/html/dealers/ADMIN/.htpasswd test:$apr1$P75y9yEX$XDFXE//5.aPeDP5pW7wfc.
А нет когда указываю в http://172.33.33.6/ADMIN
логин и пароль (test:test)
то получаю ошибку
Error 503
либо другую, решение пришло не сразу, т.к. никто толком не знает как работает данный сайт. Глубокий вдумчивый анализ вывел, что после авторизации (Basic Auth
) тоже идет взаимодействие php
скриптов с базой данных и нужно также указать как подключаться:
ekzorchik@srv-bionic:~$ sudo nano /var/www/html/dealers/ADMIN/pass.php /* $DBHOST=getenv("DB_HOST"); $DBUSER=getenv("DB_USERNAME"); $DBPASS=getenv("DB_PASSWORD"); $DBNAME=getenv("DB_DATABASE"); $DBSYSN=getenv("DB_SYSN"); */ $DBHOST='localhost'; $DBUSER='us_dealers'; $DBPASS='612mbddr@'; $DBNAME='db_dealers'; $DBSYSN='Amigo'; root@srv-bionic:~# cat /etc/php/7.3/fpm/pool.d/www.conf | grep -v ";\|^$" [www] user = www-data group = www-data listen = 127.0.0.1:9000 listen.owner = www-data listen.group = www-data pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 ekzorchik@srv-bionic:~$ sudo nano /etc/nginx/sites-available/dealers.conf server { listen 80 default_server; # listen [::]:80 default_server; root /var/www/html/dealers; index index.php index.html; # client_max_body_size 5m; server_name 172.33.33.6; add_header Content-Type "text/html; charset=windows-1251"; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; #fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } location ~ ^/ADMIN { auth_basic "Admin Area"; auth_basic_user_file /var/www/html/dealers/ADMIN/.htpasswd; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|pss|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|html|htm)$ { expires 7d; } error_log /var/log/nginx/dealers-error.log; access_log /var/log/nginx/dealers-access.log; } ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm
Шаг №15:
Пожелание от Руководителя, Хочет еще phpmyadmin
ekzorchik@srv-bionic:~$ sudo apt-get install phpmyadmin ekzorchik@srv-bionic:~$ sudo update-alternatives --set php /usr/bin/php7.3 Web server to reconfigure automatically: OK (не выбираем apache2 & lighttpd) ekzorchik@srv-bionic:~$ sudo ln -s /usr/share/phpmyadmin/ /var/www/html/dealers/pma ekzorchik@srv-bionic:~$ sudo chmod -R 775 /usr/share/phpmyadmin/ ekzorchik@srv-bionic:~$ sudo chown -R root:www-data /usr/share/phpmyadmin/ ekzorchik@srv-bionic:~$ cat /etc/nginx/sites-available/phpmyadmin.conf server { listen 8080; # listen [::]:80 default_server; root /var/www/html/dealers/pma; index index.php; # client_max_body_size 5m; server_name 172.33.33.6; #add_header Content-Type "text/html; charset=windows-1251"; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; #fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } }
ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "create user 'adm'@'%' identified by 'Aa1234567'" (on work: sudo mysql -u root -p712mbddr@ -e "create user 'adm'@'%' identified by '612mbddr@'" ) ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "grant all privileges on *.* to 'adm@'%'" ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%'' at line 1 ekzorchik@srv-bionic:~$ sudo mysql -u root -p712mbddr@ -e "grant all privileges on *.* to 'adm'@'%'" ekzorchik@srv-bionic:~$ sudo nano /etc/dbconfig-common/phpmyadmin.conf ekzorchik@srv-bionic:~$ sudo bash -c "cat /etc/dbconfig-common/phpmyadmin.conf " | grep -v "#\|^$" dbc_install='true' dbc_upgrade='true' dbc_remove='true' dbc_dbtype='mysql' dbc_dbuser='adm' dbc_dbpass='612mbddr@' dbc_dballow='localhost' dbc_dbserver='localhost' dbc_dbport='3306' dbc_dbname='phpmyadmin' dbc_dbadmin='root' dbc_basepath='' dbc_ssl='' dbc_authmethod_admin='' dbc_authmethod_user='' ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo systemctl restart mysql mariadb
Было замечено, что если авторизоваться в phpmyadmin
то выводятся предупреждения вида:
Проверка базы на ошибки таблиц и если они есть их исправление:
ekzorchik@srv-bionic:~$ sudo mysqlcheck --check-upgrade db_dealers --auto-repair -u root -p712mbddr@ db_dealers.agregator OK db_dealers.atribut2item OK db_dealers.balans OK db_dealers.barrs OK db_dealers.bh OK db_dealers.chap2dilstop OK db_dealers.chap_atributs OK db_dealers.chapters OK db_dealers.cloneinfo OK db_dealers.contacts OK db_dealers.dagents OK db_dealers.dilers OK db_dealers.dilers2opers OK db_dealers.docs OK db_dealers.ext_files OK db_dealers.f2m_lengths OK db_dealers.formuls OK db_dealers.foto_files OK db_dealers.fotos OK db_dealers.globe_settings OK db_dealers.iface_settings OK db_dealers.item2param OK db_dealers.items OK db_dealers.items2matrix OK db_dealers.m2aabout OK db_dealers.m2cabout OK db_dealers.m2pabout OK db_dealers.maintexts OK db_dealers.managers OK db_dealers.market OK db_dealers.matrix OK db_dealers.matrix_row OK db_dealers.news OK db_dealers.order_positions OK db_dealers.orderparams OK db_dealers.orders OK db_dealers.orders_arch OK db_dealers.paramprices OK db_dealers.paramrules OK db_dealers.payments OK db_dealers.picons OK db_dealers.rdp OK db_dealers.units OK db_dealers.zona2chap OK db_dealers.zonastop OK db_dealers.zones OK db_dealers.zones2dealers OK ekzorchik@srv-bionic:~$ sudo mysql_upgrade --force -u root -p712mbddr@
А нет все равно если заходить в каждую таблицу
ekzorchik@srv-bionic:~$ sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php
Нажимаем «Ctrl + W
» и в строке поиска указываем:
"(count($analyzed_sql_results['select_expr'] == 1)"
изменяем на
((count($analyzed_sql_results['select_expr']) == 1)
ekzorchik@srv-bionic:~$ sudo systemctl restart nginx php7.3-fpm mysql
Проблема в строке 613
устранилась если заходить в каждую таблицу через phpmyadmin.
Шаг №16:
Обнаружен косяк, что идет конфликт между nginx & phpmyadmin
т.к. оба висят на 80
порту.
ekzorchik@srv-bionic:~$ sudo systemctl disable apache2.service ekzorchik@srv-bionic:~$ sudo systemctl stop apache2.service ekzorchik@srv-bionic:~$ sudo systemctl is-active apache2 inactive ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo rm /var/www/html/index.html ekzorchik@srv-bionic:~$ sudo reboot
После ресурс dealers
работает как и должен быть.
Шаг №17:
Также руководитель хочет доступ через FTP
на данный портал дабы изменять какие-либо файлы сайта, добавлять и т.д.
По настройке FTP
я предварительно все проработал и каждую часть оформил как заметка.
Шаг №18:
С сайта происходит отправка сообщений, ниже настройка почты, для них своя заметка.
письмо пришло
Т.е. я отправку уведомление на сайте настроил.
Проверяю отправку почты через php
скрипт:
ekzorchik@srv-bionic:~$:/var/www/html/dealers$ sudo nano mailer.php <?php if (mail("ekzorchik@EXCHANGE","subj","text")) { echo "OK\n"; } else { echo "Failed\n"; } ?> ekzorchik@srv-bionic:~$:/var/www/html/dealers$ php -f mailer.php OK ekzorchik@srv-bionic:~$:/var/www/html/dealers$
и вот сообщение которое упало ко мне в ящик:
А теперь от имени пользователя www-data:
при включенной опции Debug=YES
в конфиге ssmtp
сформирован лог отправки заказа на почту менеджеру.
Шаг №19:
Сформировал скрипт бекапа:
ekzorchik@srv-bionic:~$ cat /etc/script/backupsite #!/bin/bash bfile=$(date +%d%m%y_%H_%M_%S) efile=$(date +%d%m%y_%H_%M_%S) BKPDIR=/home/ekzorchik/backupdilers tar -cvPf $BKPDIR/dealers_$bfile.tgz /var/www/html/dealers mysqldump -v --insert-ignore --skip-lock-tables --single-transaction=TRUE -u root -p712mbddr@ db_dealers | /bin/gzip > $BKPDIR/db_dealers_$efile.sql.gz exit ekzorchik@srv-bionic:~$ ls /home/ekzorchik/backupdilers/ -lh итого 259M -rw-r--r-- 1 ekzorchik ekzorchik 255M апр 13 22:27 db_dealers_130420_22_23_30.sql.gz -rw-r--r-- 1 ekzorchik ekzorchik 3,8M апр 13 22:23 dealers_130420_22_23_30.tgz ekzorchik@srv-bionic:~$
Итого, заметка полностью проработана и я могу уйти от этого Docker
+ я более не завишу от услуг Александр Кочеткова
, переход был успешно проведен 13 апреля 2020 год.
Теперь сайт полностью не зависим, работа через сертификаты Let's Encrypt
полностью в автоматическом режиме, т.к. каждый 3 месяца они снова переполучаются и не нужно делать это вручную, как на FreeBSD 12.
На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.