У меня на работе, руководитель IT отдела от главного начальства получил задачу организовать информационный киоск для клиентов, т. е. Чтобы как в банке, подходишь к терминалу, выбираешь услугу и тебе распечатывается квиток, на котором номер твоей очереди и окно, к которому тебе нужно подойти. На avito.ru
был приобретен терминал, т. к. пока толком не знаем, что и как решили пойти двумя путями. Мне нужно поднять виртуалку и на ней развернуть Ubuntu 18.04 Server
+ сервис phpmyadmin
. Второй же путь, это на терминал поставить Windows 7
и клиент 1С v7.7
— но это лишь отчасти ко мне. Моя же задача — это Linux
задача.
Задача: Нужно поднять на Ubuntu 18.04 Web-сервис + phpmyadmin
Хочу сделать заготовку вида
http://host:port/pma
где pma — это phpmyadmin
Web-сервис: nginx
Шаг №1:
Произвожу предварительную настройку развернутой из образа Ubuntu 18.04 Server amd64
системы:
ekzorchik@srv-bionic:~$ sudo nano /etc/hosts 172.33.33.102 srv-tablo.polygon.lan srv-tablo ekzorchik@srv-bionic:~$ sudo nano /etc/hostname srv-tablo ekzorchik@srv-tablo:~$
Шаг №2:
Клонирую со своего сервиса Mercurial + Web
скрипт базовой настройки системы на последующее использования, не в ручную же все каждый раз делать:
ekzorchik@srv-tablo:~$ hg clone http://srv-wiki/hg/dproject ekzorchik@srv-tablo:~$ sudo ./dproject/default
Шаг №3:
Устанавливаю в систему репозитарий через который буду устанавливать php
пакеты:
ekzorchik@srv-tablo:~$ sudo add-apt-repository ppa:ondrej/php
Шаг №4:
Устанавливаю в систему пакеты nginx + mariadb +
пакеты php:
ekzorchik@srv-tablo:~$ 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
Шаг №5:
Устанавливаю пароль на учетную запись root
сервиса mysql:
ekzorchik@srv-tablo:~$ sudo mysqladmin -u root password 712mbddr@
Шаг №6:
Устанавливаю пакет phpmyadmin
через который при обращении на URL
http://IP&DNS/phpmyadmin
можно будет взаимодейстовать с базой посредством браузера:
ekzorchik@srv-tablo:~$ sudo apt-get install -y phpmyadmin
На заметку: Web server to reconfigure automatically: OK
(не выбираем ни apache2
ни lighttpd
)
Configure database for phpmyadmin with dbconfig-common? Yes
MySQL application password for phpmyadmin: 712mbddr@ и нажимаю OK
Password confirmation: 712mbddr@ и нажимаю OK
ekzorchik@srv-tablo:~$ sudo nano /etc/php/7.3/fpm/php.ini date.timezone = Europe/Moscow cgi.fix_pathinfo=0 ekzorchik@srv-tablo:~$ sudo nano /etc/php/7.3/cli/php.ini date.timezone = Europe/Moscow cgi.fix_pathinfo=0 ekzorchik@srv-tablo:~$ sudo systemctl enable nginx php7.3-fpm Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable nginx Synchronizing state of php7.3-fpm.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable php7.3-fpm ekzorchik@srv-tablo:~$
Шаг №7:
Отключаю Apache2
, т. к. nginx & phpmyadmin
висят на одном порту:
ekzorchik@srv-tablo:~$ sudo systemctl disable apache2.service Synchronizing state of apache2.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install disable apache2 ekzorchik@srv-tablo:~$ sudo systemctl stop apache2.service ekzorchik@srv-tablo:~$ sudo systemctl is-active apache inactive ekzorchik@srv-tablo:~$ sudo rm /var/www/html/index.html
Шаг №8:
Поправляю ошибку при обращении через phpmyadmin
к базе и таблицам внутри нее:
ekzorchik@srv-tablo:~$ sudo nano +613 /usr/share/phpmyadmin/libraries/sql.lib.php на ((count($analyzed_sql_results['select_expr']) == 1) ekzorchik@srv-tablo:~$ sudo systemctl restart nginx php7.3-fpm mysql
Шаг №9:
Создаю каталог проекта и настраиваю что проект доступен по адресу http://IP&DNS
, а Web
-панель phpmyadmin
по адресу http://IP&DNS/pma
— я хочу без использования поддоменов сделать.
ekzorchik@srv-tablo:~$ sudo mkdir /var/www/html/project ekzorchik@srv-tablo:~$ sudo mv /var/www/html/index.nginx-debian.html /var/www/html/project/ ekzorchik@srv-tablo:~$ sudo chmod -R 775 /usr/share/phpmyadmin/ ekzorchik@srv-tablo:~$ sudo chown -R root:www-data /usr/share/phpmyadmin/ ekzorchik@srv-tablo:~$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/project.conf ekzorchik@srv-tablo:~$ sudo unlink /etc/nginx/sites-enabled/default ekzorchik@srv-tablo:~$ sudo nano /etc/nginx/sites-available/project.conf server { listen 80 default_server; root /var/www/html/project; index index.html index.htm index.nginx-debian.html; server_name 172.33.33.102; 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 ^~ /pma/ { alias /usr/share/phpmyadmin/; index index.php index.html; location ~ /pma(/.*\.php) { include fastcgi_params; fastcgi_param SERVER_NAME localhost; fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$1; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_index index.php; } } } ekzorchik@srv-tablo:~$ sudo ln -s /etc/nginx/sites-available/project.conf /etc/nginx/sites-enabled/project.conf ekzorchik@srv-tablo:~$ 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-tablo:~$ ekzorchik@srv-tablo:~$ sudo systemctl restart nginx php7.3-fpm && sudo systemctl status nginx | head -n5 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2020-11-25 11:36:12 MSK; 33ms ago Docs: man:nginx(8) Process: 15061 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS) ekzorchik@srv-tablo:~$ ekzorchik@srv-tablo:~$ sudo apt-get install -y curl ekzorchik@srv-tablo:~$ curl http://srv-tablo/pma/index.php -v
получаю содержимое страницы на авторизацию в phpMyAdmin
После чего также проверяю при обращении через Web: http://srv-tablo.polygon.lan/pma/
Чтобы авторизоваться нужно сперва:
ekzorchik@srv-tablo:~$ sudo mysql -u root -p712mbddr@ -e "create user 'adm'@'%' identified by '612mbddr@'" ekzorchik@srv-tablo:~$ sudo mysql -u root -p712mbddr@ -e "grant all privileges on *.* to 'adm'@'%'" ekzorchik@srv-tablo:~$ sudo nano /etc/dbconfig-common/phpmyadmin.conf bc_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-tablo:~$ sudo systemctl restart mysql mariadb
Вот теперь могу зайти
Ура!!! Данной заметкой я подготовил себе наработку, на этом у меня пока всё, с уважением автор блога Олло Александр aka ekzorchik.