Этот пост написан для себя, чтобы не забыть. Я буду настраивать Virtual Machine на Google Cloud Platform с нуля. Поехали.
Что мне нужно:
Выбор сервера
Переходим сюда - https://cloud.google.com/free/
Далее соглашаемся с условиями обслуживания и даем данные карты (спишет 1$). Дадут бесплатно 300$ на год (этого хватит).
Создаём новый виртуальный сервер:
Machine configuration
- Name: Имя любое (маленькие буквы, без цифр)
- Region: us-central1 (Iowa)
- Zone: us-central1-c
- Series: E2
- Machine type: e2-small (2 vCPU, 2 GB memory)
Boot disk
- Name: googlevm
- Type: New balanced persistent disk
- Size: 20 GB
- Image: Ubuntu 20.04 LTS
Identity and API access
- Access scopes: Allow full access to all Cloud APIs
Firewall
- Allow HTTP traffic
- Allow HTTPS traffic
Стоимость в месяц (Monthly estimate)
$14.23 (That's about $0.02 hourly)
Pay for what you use: No upfront costs and per second billing.
- 2 vCPU + 2 GB memory: $12.23
- 20 GB balanced persistent disk: $2.00
- Sustained use discount: $0.00
- Total: $14.23
Настройка SSH
Для удобного доступа к серверу надо настроить SSH доступ
Генерируем Public key в программе PuTTY Key Generator
Публичный ключ вставляем в Metadata:
Экспортируем OpenSSH key в папку пользователя/.ssh
В файл config (в папке $user/.ssh) вписываем данные ключа:
User login
IdentityFile ~/.ssh/имяфайла_с_ключом
IdentitiesOnly yes
Подключаемся к нашему Google VM, используя powershell: ssh ip-адрес
Установка Apache
Apache доступен в репозиториях программного обеспечения Ubuntu по умолчанию, и поэтому его можно установить с помощью стандартных инструментов управления пакетами.
Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:
Затем установим пакет apache2:
После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей:
Hit:1 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates InRelease
Get:3 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB]
Hit:4 http://security.ubuntu.com/ubuntu jammy-security InRelease
Fetched 99.8 kB in 0s (368 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
17 packages can be upgraded. Run 'apt list --upgradable' to see them.
********@mygooglevm:~$ sudo apt install apache2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libatasmart4 libblockdev-fs2 libblockdev-loop2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2
libblockdev-utils2 libblockdev2 libflashrom1 libftdi1-2 libmbim-glib4 libmbim-proxy libmm-glib0 libnspr4 libnss3
libnuma1 libparted-fs-resize0 libqmi-glib5 libqmi-proxy libtcl8.6 libudisks2-0 tcl tcl8.6 usb-modeswitch
usb-modeswitch-data
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
apache2-bin apache2-data apache2-utils bzip2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
liblua5.3-0 mailcap mime-support ssl-cert
Suggested packages:
apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser bzip2-doc
The following NEW packages will be installed:
apache2 apache2-bin apache2-data apache2-utils bzip2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
liblua5.3-0 mailcap mime-support ssl-cert
0 upgraded, 13 newly installed, 0 to remove and 17 not upgraded.
Need to get 2138 kB of archives.
After this operation, 8501 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libapr1 amd64 1.7.0-8build1 [107 kB]
Get:2 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libaprutil1 amd64 1.6.1-5ubuntu4 [92.4 kB]
Get:3 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libaprutil1-dbd-sqlite3 amd64 1.6.1-5ubuntu4 [11.3 kB]
Get:4 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libaprutil1-ldap amd64 1.6.1-5ubuntu4 [9162 B]
Get:5 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 liblua5.3-0 amd64 5.3.6-1build1 [140 kB]
Get:6 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-bin amd64 2.4.52-1ubuntu4.1 [1347 kB]
Get:7 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-data all 2.4.52-1ubuntu4.1 [165 kB]
Get:8 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2-utils amd64 2.4.52-1ubuntu4.1 [89.1 kB]
Get:9 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mailcap all 3.70+nmu1ubuntu1 [23.8 kB]
Get:10 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mime-support all 3.66 [3696 B]
Get:11 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 apache2 amd64 2.4.52-1ubuntu4.1 [97.8 kB]
Get:12 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 bzip2 amd64 1.0.8-5build1 [34.8 kB]
Get:13 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 ssl-cert all 1.1.2 [17.4 kB]
Fetched 2138 kB in 0s (15.6 MB/s)
Preconfiguring packages ...
Selecting previously unselected package libapr1:amd64.
(Reading database ... 63923 files and directories currently installed.)
Preparing to unpack .../00-libapr1_1.7.0-8build1_amd64.deb ...
Unpacking libapr1:amd64 (1.7.0-8build1) ...
Selecting previously unselected package libaprutil1:amd64.
Preparing to unpack .../01-libaprutil1_1.6.1-5ubuntu4_amd64.deb ...
Unpacking libaprutil1:amd64 (1.6.1-5ubuntu4) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3:amd64.
Preparing to unpack .../02-libaprutil1-dbd-sqlite3_1.6.1-5ubuntu4_amd64.deb ...
Unpacking libaprutil1-dbd-sqlite3:amd64 (1.6.1-5ubuntu4) ...
Selecting previously unselected package libaprutil1-ldap:amd64.
Preparing to unpack .../03-libaprutil1-ldap_1.6.1-5ubuntu4_amd64.deb ...
Unpacking libaprutil1-ldap:amd64 (1.6.1-5ubuntu4) ...
Selecting previously unselected package liblua5.3-0:amd64.
Preparing to unpack .../04-liblua5.3-0_5.3.6-1build1_amd64.deb ...
Unpacking liblua5.3-0:amd64 (5.3.6-1build1) ...
Selecting previously unselected package apache2-bin.
Preparing to unpack .../05-apache2-bin_2.4.52-1ubuntu4.1_amd64.deb ...
Unpacking apache2-bin (2.4.52-1ubuntu4.1) ...
Selecting previously unselected package apache2-data.
Preparing to unpack .../06-apache2-data_2.4.52-1ubuntu4.1_all.deb ...
Unpacking apache2-data (2.4.52-1ubuntu4.1) ...
Selecting previously unselected package apache2-utils.
Preparing to unpack .../07-apache2-utils_2.4.52-1ubuntu4.1_amd64.deb ...
Unpacking apache2-utils (2.4.52-1ubuntu4.1) ...
Selecting previously unselected package mailcap.
Preparing to unpack .../08-mailcap_3.70+nmu1ubuntu1_all.deb ...
Unpacking mailcap (3.70+nmu1ubuntu1) ...
Selecting previously unselected package mime-support.
Preparing to unpack .../09-mime-support_3.66_all.deb ...
Unpacking mime-support (3.66) ...
Selecting previously unselected package apache2.
Preparing to unpack .../10-apache2_2.4.52-1ubuntu4.1_amd64.deb ...
Unpacking apache2 (2.4.52-1ubuntu4.1) ...
Selecting previously unselected package bzip2.
Preparing to unpack .../11-bzip2_1.0.8-5build1_amd64.deb ...
Unpacking bzip2 (1.0.8-5build1) ...
Selecting previously unselected package ssl-cert.
Preparing to unpack .../12-ssl-cert_1.1.2_all.deb ...
Unpacking ssl-cert (1.1.2) ...
Setting up libapr1:amd64 (1.7.0-8build1) ...
Setting up bzip2 (1.0.8-5build1) ...
Setting up ssl-cert (1.1.2) ...
Setting up liblua5.3-0:amd64 (5.3.6-1build1) ...
Setting up apache2-data (2.4.52-1ubuntu4.1) ...
Setting up mailcap (3.70+nmu1ubuntu1) ...
Setting up libaprutil1:amd64 (1.6.1-5ubuntu4) ...
Setting up mime-support (3.66) ...
Setting up libaprutil1-ldap:amd64 (1.6.1-5ubuntu4) ...
Setting up libaprutil1-dbd-sqlite3:amd64 (1.6.1-5ubuntu4) ...
Setting up apache2-utils (2.4.52-1ubuntu4.1) ...
Setting up apache2-bin (2.4.52-1ubuntu4.1) ...
Setting up apache2 (2.4.52-1ubuntu4.1) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
Processing triggers for ufw (0.36.1-4build1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...
Scanning processes...
Scanning linux images...
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
********@mygooglevm:~$
Если установка прошла успешно обратившись по ip адресу сервера можно увидеть страницу приветствия Apache
Установка и настройка MySQL
На Ubuntu 20.04 вы можете установить MySQL с помощью репозитория пакетов APT. На момент написания этого руководства в репозитории Ubuntu по умолчанию доступна версия MySQL 8.0.30.
В этом случае установка MySQL будет выполнена без запроса настройки пароля или внесения других изменений в конфигурацию. Поскольку при этом установка MySQL остается уязвимой, мы исправим это в следующем шаге.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
libatasmart4 libblockdev-fs2 libblockdev-loop2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2
libblockdev-utils2 libblockdev2 libflashrom1 libftdi1-2 libmbim-glib4 libmbim-proxy libmm-glib0 libnspr4 libnss3
libparted-fs-resize0 libqmi-glib5 libqmi-proxy libtcl8.6 libudisks2-0 tcl tcl8.6 usb-modeswitch usb-modeswitch-data
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
libcgi-fast-perl libcgi-pm-perl libclone-perl libencode-locale-perl libevent-pthreads-2.1-7 libfcgi-bin libfcgi-perl
libfcgi0ldbl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl
libio-html-perl liblwp-mediatypes-perl libmecab2 libprotobuf-lite23 libtimedate-perl liburi-perl mecab-ipadic
mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0
mysql-server-core-8.0
Suggested packages:
libdata-dump-perl libipc-sharedcache-perl libbusiness-isbn-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
libcgi-fast-perl libcgi-pm-perl libclone-perl libencode-locale-perl libevent-pthreads-2.1-7 libfcgi-bin libfcgi-perl
libfcgi0ldbl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl
libio-html-perl liblwp-mediatypes-perl libmecab2 libprotobuf-lite23 libtimedate-perl liburi-perl mecab-ipadic
mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0
mysql-server-core-8.0
0 upgraded, 28 newly installed, 0 to remove and 17 not upgraded.
Need to get 29.3 MB of archives.
After this operation, 242 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mysql-common all 5.8+1.0.8 [7212 B]
Get:2 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-client-core-8.0 amd64 8.0.30-0ubuntu0.22.04.1 [2757 kB]
Get:3 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-client-8.0 amd64 8.0.30-0ubuntu0.22.04.1 [22.7 kB]
Get:4 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libevent-pthreads-2.1-7 amd64 2.1.12-stable-1build3 [7642 B]
Get:5 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libmecab2 amd64 0.996-14build9 [199 kB]
Get:6 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libprotobuf-lite23 amd64 3.12.4-1ubuntu7 [208 kB]
Get:7 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-server-core-8.0 amd64 8.0.30-0ubuntu0.22.04.1 [17.3 MB]
Get:8 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-server-8.0 amd64 8.0.30-0ubuntu0.22.04.1 [1411 kB]
Get:9 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libhtml-tagset-perl all 3.20-4 [12.5 kB]
Get:10 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 liburi-perl all 5.10-1 [78.8 kB]
Get:11 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libhtml-parser-perl amd64 3.76-1build2 [88.4 kB]
Get:12 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libcgi-pm-perl all 4.54-1 [188 kB]
Get:13 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libfcgi0ldbl amd64 2.4.2-2build2 [28.0 kB]
Get:14 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libfcgi-perl amd64 0.82+ds-1build1 [22.8 kB]
Get:15 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libcgi-fast-perl all 1:2.15-1 [10.5 kB]
Get:16 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libclone-perl amd64 0.45-1build3 [11.0 kB]
Get:17 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libencode-locale-perl all 1.05-1.1 [11.8 kB]
Get:18 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libfcgi-bin amd64 2.4.2-2build2 [11.2 kB]
Get:19 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libhtml-template-perl all 2.97-1.1 [59.1 kB]
Get:20 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libtimedate-perl all 2.3300-2 [34.0 kB]
Get:21 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libhttp-date-perl all 6.05-1 [9920 B]
Get:22 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libio-html-perl all 1.004-2 [15.4 kB]
Get:23 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 liblwp-mediatypes-perl all 6.04-1 [19.5 kB]
Get:24 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 libhttp-message-perl all 6.36-1 [76.8 kB]
Get:25 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mecab-utils amd64 0.996-14build9 [4850 B]
Get:26 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mecab-ipadic all 2.7.0-20070801+main-3 [6718 kB]
Get:27 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy/main amd64 mecab-ipadic-utf8 all 2.7.0-20070801+main-3 [4384 B]
Get:28 http://us-central1.gce.archive.ubuntu.com/ubuntu jammy-updates/main amd64 mysql-server all 8.0.30-0ubuntu0.22.04.1 [9542 B]
Fetched 29.3 MB in 11s (2765 kB/s)
Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 64692 files and directories currently installed.)
Preparing to unpack .../0-mysql-common_5.8+1.0.8_all.deb ...
Unpacking mysql-common (5.8+1.0.8) ...
Selecting previously unselected package mysql-client-core-8.0.
Preparing to unpack .../1-mysql-client-core-8.0_8.0.30-0ubuntu0.22.04.1_amd64.deb ...
Unpacking mysql-client-core-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Selecting previously unselected package mysql-client-8.0.
Preparing to unpack .../2-mysql-client-8.0_8.0.30-0ubuntu0.22.04.1_amd64.deb ...
Unpacking mysql-client-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Selecting previously unselected package libevent-pthreads-2.1-7:amd64.
Preparing to unpack .../3-libevent-pthreads-2.1-7_2.1.12-stable-1build3_amd64.deb ...
Unpacking libevent-pthreads-2.1-7:amd64 (2.1.12-stable-1build3) ...
Selecting previously unselected package libmecab2:amd64.
Preparing to unpack .../4-libmecab2_0.996-14build9_amd64.deb ...
Unpacking libmecab2:amd64 (0.996-14build9) ...
Selecting previously unselected package libprotobuf-lite23:amd64.
Preparing to unpack .../5-libprotobuf-lite23_3.12.4-1ubuntu7_amd64.deb ...
Unpacking libprotobuf-lite23:amd64 (3.12.4-1ubuntu7) ...
Selecting previously unselected package mysql-server-core-8.0.
Preparing to unpack .../6-mysql-server-core-8.0_8.0.30-0ubuntu0.22.04.1_amd64.deb ...
Unpacking mysql-server-core-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Setting up mysql-common (5.8+1.0.8) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-8.0.
(Reading database ... 64912 files and directories currently installed.)
Preparing to unpack .../00-mysql-server-8.0_8.0.30-0ubuntu0.22.04.1_amd64.deb ...
Unpacking mysql-server-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Selecting previously unselected package libhtml-tagset-perl.
Preparing to unpack .../01-libhtml-tagset-perl_3.20-4_all.deb ...
Unpacking libhtml-tagset-perl (3.20-4) ...
Selecting previously unselected package liburi-perl.
Preparing to unpack .../02-liburi-perl_5.10-1_all.deb ...
Unpacking liburi-perl (5.10-1) ...
Selecting previously unselected package libhtml-parser-perl:amd64.
Preparing to unpack .../03-libhtml-parser-perl_3.76-1build2_amd64.deb ...
Unpacking libhtml-parser-perl:amd64 (3.76-1build2) ...
Selecting previously unselected package libcgi-pm-perl.
Preparing to unpack .../04-libcgi-pm-perl_4.54-1_all.deb ...
Unpacking libcgi-pm-perl (4.54-1) ...
Selecting previously unselected package libfcgi0ldbl:amd64.
Preparing to unpack .../05-libfcgi0ldbl_2.4.2-2build2_amd64.deb ...
Unpacking libfcgi0ldbl:amd64 (2.4.2-2build2) ...
Selecting previously unselected package libfcgi-perl:amd64.
Preparing to unpack .../06-libfcgi-perl_0.82+ds-1build1_amd64.deb ...
Unpacking libfcgi-perl:amd64 (0.82+ds-1build1) ...
Selecting previously unselected package libcgi-fast-perl.
Preparing to unpack .../07-libcgi-fast-perl_1%3a2.15-1_all.deb ...
Unpacking libcgi-fast-perl (1:2.15-1) ...
Selecting previously unselected package libclone-perl.
Preparing to unpack .../08-libclone-perl_0.45-1build3_amd64.deb ...
Unpacking libclone-perl (0.45-1build3) ...
Selecting previously unselected package libencode-locale-perl.
Preparing to unpack .../09-libencode-locale-perl_1.05-1.1_all.deb ...
Unpacking libencode-locale-perl (1.05-1.1) ...
Selecting previously unselected package libfcgi-bin.
Preparing to unpack .../10-libfcgi-bin_2.4.2-2build2_amd64.deb ...
Unpacking libfcgi-bin (2.4.2-2build2) ...
Selecting previously unselected package libhtml-template-perl.
Preparing to unpack .../11-libhtml-template-perl_2.97-1.1_all.deb ...
Unpacking libhtml-template-perl (2.97-1.1) ...
Selecting previously unselected package libtimedate-perl.
Preparing to unpack .../12-libtimedate-perl_2.3300-2_all.deb ...
Unpacking libtimedate-perl (2.3300-2) ...
Selecting previously unselected package libhttp-date-perl.
Preparing to unpack .../13-libhttp-date-perl_6.05-1_all.deb ...
Unpacking libhttp-date-perl (6.05-1) ...
Selecting previously unselected package libio-html-perl.
Preparing to unpack .../14-libio-html-perl_1.004-2_all.deb ...
Unpacking libio-html-perl (1.004-2) ...
Selecting previously unselected package liblwp-mediatypes-perl.
Preparing to unpack .../15-liblwp-mediatypes-perl_6.04-1_all.deb ...
Unpacking liblwp-mediatypes-perl (6.04-1) ...
Selecting previously unselected package libhttp-message-perl.
Preparing to unpack .../16-libhttp-message-perl_6.36-1_all.deb ...
Unpacking libhttp-message-perl (6.36-1) ...
Selecting previously unselected package mecab-utils.
Preparing to unpack .../17-mecab-utils_0.996-14build9_amd64.deb ...
Unpacking mecab-utils (0.996-14build9) ...
Selecting previously unselected package mecab-ipadic.
Preparing to unpack .../18-mecab-ipadic_2.7.0-20070801+main-3_all.deb ...
Unpacking mecab-ipadic (2.7.0-20070801+main-3) ...
Selecting previously unselected package mecab-ipadic-utf8.
Preparing to unpack .../19-mecab-ipadic-utf8_2.7.0-20070801+main-3_all.deb ...
Unpacking mecab-ipadic-utf8 (2.7.0-20070801+main-3) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../20-mysql-server_8.0.30-0ubuntu0.22.04.1_all.deb ...
Unpacking mysql-server (8.0.30-0ubuntu0.22.04.1) ...
Setting up libmecab2:amd64 (0.996-14build9) ...
Setting up mysql-client-core-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Setting up libfcgi0ldbl:amd64 (2.4.2-2build2) ...
Setting up libclone-perl (0.45-1build3) ...
Setting up libhtml-tagset-perl (3.20-4) ...
Setting up liblwp-mediatypes-perl (6.04-1) ...
Setting up libfcgi-bin (2.4.2-2build2) ...
Setting up libencode-locale-perl (1.05-1.1) ...
Setting up libprotobuf-lite23:amd64 (3.12.4-1ubuntu7) ...
Setting up mecab-utils (0.996-14build9) ...
Setting up libio-html-perl (1.004-2) ...
Setting up libtimedate-perl (2.3300-2) ...
Setting up mysql-client-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Setting up libfcgi-perl:amd64 (0.82+ds-1build1) ...
Setting up liburi-perl (5.10-1) ...
Setting up libevent-pthreads-2.1-7:amd64 (2.1.12-stable-1build3) ...
Setting up libhttp-date-perl (6.05-1) ...
Setting up mecab-ipadic (2.7.0-20070801+main-3) ...
Compiling IPA dictionary for Mecab. This takes long time...
reading /usr/share/mecab/dic/ipadic/unk.def ... 40
emitting double-array: 100% |###########################################|
/usr/share/mecab/dic/ipadic/model.def is not found. skipped.
reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42
reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208
reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146
reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795
reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210
reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750
reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668
reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120
reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393
reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221
reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42
reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328
reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146
reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032
reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91
reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252
reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202
reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19
reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171
reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151
reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328
reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477
reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199
reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135
reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999
reading /usr/share/mecab/dic/ipadic/Others.csv ... 2
emitting double-array: 100% |###########################################|
reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316
emitting matrix : 100% |###########################################|done!
update-alternatives: using /var/lib/mecab/dic/ipadic to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up mysql-server-core-8.0 (8.0.30-0ubuntu0.22.04.1) ...
Setting up mecab-ipadic-utf8 (2.7.0-20070801+main-3) ...
Compiling IPA dictionary for Mecab. This takes long time...
reading /usr/share/mecab/dic/ipadic/unk.def ... 40
emitting double-array: 100% |###########################################|
/usr/share/mecab/dic/ipadic/model.def is not found. skipped.
reading /usr/share/mecab/dic/ipadic/Noun.nai.csv ... 42
reading /usr/share/mecab/dic/ipadic/Symbol.csv ... 208
reading /usr/share/mecab/dic/ipadic/Postp.csv ... 146
reading /usr/share/mecab/dic/ipadic/Noun.adverbal.csv ... 795
reading /usr/share/mecab/dic/ipadic/Adj.csv ... 27210
reading /usr/share/mecab/dic/ipadic/Verb.csv ... 130750
reading /usr/share/mecab/dic/ipadic/Noun.org.csv ... 16668
reading /usr/share/mecab/dic/ipadic/Noun.demonst.csv ... 120
reading /usr/share/mecab/dic/ipadic/Suffix.csv ... 1393
reading /usr/share/mecab/dic/ipadic/Prefix.csv ... 221
reading /usr/share/mecab/dic/ipadic/Noun.number.csv ... 42
reading /usr/share/mecab/dic/ipadic/Noun.adjv.csv ... 3328
reading /usr/share/mecab/dic/ipadic/Noun.verbal.csv ... 12146
reading /usr/share/mecab/dic/ipadic/Adverb.csv ... 3032
reading /usr/share/mecab/dic/ipadic/Postp-col.csv ... 91
reading /usr/share/mecab/dic/ipadic/Interjection.csv ... 252
reading /usr/share/mecab/dic/ipadic/Noun.name.csv ... 34202
reading /usr/share/mecab/dic/ipadic/Filler.csv ... 19
reading /usr/share/mecab/dic/ipadic/Conjunction.csv ... 171
reading /usr/share/mecab/dic/ipadic/Noun.others.csv ... 151
reading /usr/share/mecab/dic/ipadic/Noun.proper.csv ... 27328
reading /usr/share/mecab/dic/ipadic/Noun.csv ... 60477
reading /usr/share/mecab/dic/ipadic/Auxil.csv ... 199
reading /usr/share/mecab/dic/ipadic/Adnominal.csv ... 135
reading /usr/share/mecab/dic/ipadic/Noun.place.csv ... 72999
reading /usr/share/mecab/dic/ipadic/Others.csv ... 2
emitting double-array: 100% |###########################################|
reading /usr/share/mecab/dic/ipadic/matrix.def ... 1316x1316
emitting matrix : 100% |###########################################|done!
update-alternatives: using /var/lib/mecab/dic/ipadic-utf8 to provide /var/lib/mecab/dic/debian (mecab-dictionary) in auto mode
Setting up libhtml-parser-perl:amd64 (3.76-1build2) ...
Setting up libhttp-message-perl (6.36-1) ...
Setting up mysql-server-8.0 (8.0.30-0ubuntu0.22.04.1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Renaming removed key_buffer and myisam-recover options (if present)
mysqld will log errors to /var/log/mysql/error.log
mysqld is running as pid 20033
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
Setting up libcgi-pm-perl (4.54-1) ...
Setting up libhtml-template-perl (2.97-1.1) ...
Setting up mysql-server (8.0.30-0ubuntu0.22.04.1) ...
Setting up libcgi-fast-perl (1:2.15-1) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for libc-bin (2.35-0ubuntu3) ...
Scanning processes...
Scanning linux images...Running kernel seems to be up-to-date.No services need to be restarted.No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
********@mygooglevm:~$
Настройка MySQL
Прежде всего, нужно изменить параметры аутентификации, чтобы сделать это, просто сначала нужно запустить эту команду:
Затем запустите этот запрос ALTER, чтобы изменить параметры аутентификации.
Далее необходимо запустить встроенный в СУБД скрипт безопасности. Этот скрипт меняет ряд наименее защищенных опций, используемых по умолчанию, для таких функций, как, например, удаленный вход для пользователя root и тестовые пользователи. Запустите скрипт безопасности с помощью команды sudo:
Securing the MySQL server deployment.Enter password for user root:VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough.
Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: YThere are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : YNew password:
Re-enter new password:
Estimated strength of the password: 50
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
All done!
Выбрав ответы Y, будут удалены анонимные пользователи и тестовая база данных, будет отключена возможность удаленного входа пользователя root и загружены новые правила, чтобы внесенные изменения немедленно активировались в MySQL.
Добавление пользователя MySQL
Откроем командную строку MySQL через терминал:
Необходимо будет ввести пароль, который мы задали выше.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 8.0.30-0ubuntu0.22.04.1 (Ubuntu)Copyright (c) 2000, 2022, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Далее работаем в оболочке MySQL. Команда покажет всех пользователей MySQL:
Команда создаст нового пользователя:
Изменить пароль пользователя:
Предоставить пользователю права доступа ко всем таблицам в базе данных, а также право добавлять, изменять и удалять права пользователя можно с помощью этой команды:
Выйти из оболочки MySQL:
Тестирование MySQL
Независимо от способа установки MySQL должна запускаться автоматически. Чтобы проверить это, введите команду:
Результат будет выглядеть примерно так:
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-07-28 19:29:54 UTC; 19h ago
Process: 20224 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 20232 (mysqld)
Status: "Server is operational"
Tasks: 40 (limit: 2359)
Memory: 360.0M
CPU: 4min 20.095s
CGroup: /system.slice/mysql.service
└─20232 /usr/sbin/mysqld
Если MySQL не запускается, можно активировать ее с помощью команды:
Установка PHP
PHP — это популярный серверный язык, используемый для создания динамических и интерактивных веб-страниц. Сейчас доступен PHP версии 8.х в Ubuntu. В дополнение к php пакету понадобится php-mysql - PHP-модуль, который позволяет PHP взаимодействовать с базами данных на основе MySQL. Также необходимо установить libapache2-mod-php - модуль Apache для обработки файлов PHP. Базовые пакеты PHP будут автоматически установлены как зависимости. Установить последнюю версию PHP просто:
Установка PHP 7.4 в Ubuntu 20.04
Установка PHP 7.4 и настройка локальную среду программирования с помощью командной строки. Также я установлю менеджер зависимостей Composer.
Чтобы установить PHP предыдущих версий (5.х или 7.х), предварительно нужно добавить репозиторий:
Также нам понадобится репозиторий для Apache
Чтобы установить PHP 7.4, нужно выполнить следующую команду:
Проверим версию установленного PHP:
Так должен выглядеть ответ:
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.30, Copyright (c), by Zend Technologies
Затем установим дополнительный пакет, который позволит веб-серверу Apache интерпретировать файлы с расширением .php:
После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.
Тестирование PHP
Чтобы проверить правильность установки PHP, создадим простой PHP скрипт:
Добавим следующий код в файл:
1 2 |
<?php phpinfo(); |
Далее Ctrl-X для выхода. Подтверждаем сохранение - Y
Если всё было установлено верно, по адресу http://ip_address/info.php увидим информацию об установленной версии PHP:
Дополнительные пакеты/команды PHP
Посмотреть лог ошибок Apache
Включить лог ошибок PHP
затем настроить параметры:
log_errors = On
error_log = /var/log/php-errors.log
Сменить версию PHP
Затем:
Установка модуля PHP для СУБД MySQL. Модуль php-mysql позволяет PHP взаимодействовать с базами данных MySQL.
Установка модуля PHP CLI
Если у вас есть ssh-доступ к вашему сайту, вы сможете им воспользоваться чтобы запускать php-скрипты в консоли, творить прочую консольную магию.
Заходите через ssh на ваш хост (ssh example_user@example.org), попадаете в консоль и запускаете php ваш_скрипт.php
главные отличия между php-cli и "php через браузер":
- php-cli выполняется с правами пользователя, который его запускает, php-через-браузер выполняется с правами "пользователя" веб-сервера.
- Вы можете запустить что-нибудь в духе sudo php someFile.php и выполнить его с правами рута (самого главного пользователя в системе)
- В php-cli по умолчанию нет ограничения по времени выполнения скрипта.
Установка модуля PHP FPM
Установка модуля PHP mbstring
Установка модуля PHP zip, предназначенного для работы с zip-архивами.
Установка модуля PHP CURL. cURL - это библиотека, которая позволяет делать HTTP-запросы в коде PHP.
Установка библиотеки GD Graphics для языка PHP.
Установка модуля PHP для работы с JSON.
Удаление PHP 7 версии.
Просмотр всех установленных пакетов.
Установка Composer
Установка phpMyAdmin
Установка phpMyAdmin для PHP 8.x
После этого надо будет перезагрузить Apache.
Если всё ок, по адресу http://ip_adrress/phpmyadmin увидим это:
Установка phpMyAdmin предыдущих версий
1. Удаляем предыдущую установку phpMyAdmin:
2. Переходим в папку, в которую скачаем phpMyAdmin:
3. Скачиваем требуемую версию (все версии можно посмотреть здесь - https://www.phpmyadmin.net/downloads/), а потом распаковываем:
unzip phpMyAdmin-4.9.10-all-languages.zip
cd phpMyAdmin-4.9.10-all-languages
4.Устанавливаем консольный генератор паролей и генерируем новый пароль:
pwgen -s 32 1
5. Копируем файл конфигурации:
6. Отредактируем файл конфигурации:
$cfg['TempDir'] = '/tmp';
7. Переместим папку с файлами phpMyAdmin в /usr/share/:
8. Отредактируем файл конфигурации в apache:
Options SymLinksIfOwnerMatch
DirectoryIndex index.php
Require all granted
9. Запустим следующие команды:
sudo systemctl restart apache2
sudo systemctl restart mysql
10. Изменить / установить пароль при необходимости:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password_here';
sudo systemctl restart mysql
11. Дать все права пользователю phpmyadmin:
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
sudo systemctl restart mysql
Установка FTP сервера на Ubuntu 20.04 LTS
Для того чтобы развернуть свой FTP-сервер на Ubuntu 20.04 LTS, необходимо:
- Установить FTP-сервер с поддержкой SSL для безопасного подключения;
- Настроить учетную запись для FTP-пользователя;
- Проверить подключение к FTP-серверу.
FTP-сервер уже успешно работает. В этом можно убедиться используя следующую команду:
Если всё ок, увидим это:
Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-08-01 08:23:54 UTC; 36s ago
Process: 133878 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
Main PID: 133879 (vsftpd)
Tasks: 1 (limit: 2359)
Memory: 1.5M
CPU: 10ms
CGroup: /system.slice/vsftpd.service
└─133879 /usr/sbin/vsftpd /etc/vsftpd.conf
После успешной установки, необходимо сделать некоторые настройки в конфигурационном файле. Откроем файл vsftpd.conf:
Необходимые настройки:
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
allow_writeable_chroot=YES
После внесенных настроек- в конфигурационном файле, сохраняем изменения и перезапускаем сервер:
На основании сертификатов SSL организуем безопасный, шифрованный режим передачи информации между клиентом и сервером. Команда ниже создает самозаверяющие цифровые сертификаты, подписанные самим сервером. После генерации, используем файлы сертификатов в работе сервера FTP:
Внесем некоторые изменения в конфигурационный файл vsftpd.conf
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
Настройка учетной записи FTP-пользователя
Создадим учетную запись пользователя, которой будем осуществлять подключение к созданному серверу FTP. Изначально, авторизоваться на сервере можно под локальным пользователем. Но мы для этих целей будем использовать отдельно созданную учётную запись. Создадим пользователя следующей командой:
Таким образом, этой командой мы создали пользователя ftpuser. Его домашняя директория – /home/ftpuser/ и для него запрещен локальный доступ в систему. Добавим в файл разрешенных оболочек следующую строку:
/bin/false
Создадим пароль на вход для пользователя следующей командой:
Настройка FireWall
Переходим в панель Firewall Rules Dashboard:
Задаём:
- Имя - ftp
- Targets - All instances in the network
- Source filter - IPv4 ranges
- Source IPv4 ranges - 0.0.0.0/0
- Specified Protocols and Ports - TCP 20,21,22,60000-65535
Установка Redis
Установка Redis:
Конфигурируем Redis:
Установим директиву:
Перезагрузка Redis:
Проверить Redis:
В диалоговом окне:
PONG
127.0.0.1:6379> exit
Полезные команды
Перезагрузка Apache.
Удаление модуля.
Посмотреть всех локальных пользователей:
Добавить пользователя:
или
Удалить пользователя:
Затем можно удалить папку пользователя:
Изменить имя пользователя:
Изменить пароль пользователя:
Импортировать большой файл SQL из командной строки: