Установка и настройка postgresql для 1с:предприятие

Пароль

Введите и подтвердите пароль, который будет использоваться для учётной записи суперпользователя (postgres) в базе данных кластера. (примеч: PostgreSQL в Windows работает не от администратора, а от имени учётной записи пользователя, имя которого «postgres». Сделано это было прежде всего из соображений безопасности, чтобы никакие вредители системы не смогли получить права администратора, даже если они каким-то образом найдут уязвимость в безопасности самого PostgreSQL. Далее. В самой СУБД PostgreSQL есть такой специальный пользователь — суперпользователь, который имеет максимальные права внутри СУБД PostgreSQL, т.н. может создавать или удалять любые базы данных и любых пользователей. Этот суперпользователь тоже имеет имя пользователя «postgres». Но, несмотря на то, что имена пользователей учётной записи в Windows и суперпользователя PostgreSQL абсолютно одинаковы — это абсолютно разные пользователи, абсолютно никаким образом не связанные друг с другом. Но для того, чтобы вы потом не путались с разными паролями, вам предлагают задать один и тот же пароль для них ОБОИХ.) В Windows, этот пароль также используется для учётной записи службы «postgres» и должен соответствовать текущему паролю в том случае, если учётная запись суперпользователя уже существует. (примеч: Если учётная запись службы уже существует в Windows, вы должны ввести текущий пароль этой учётной записи. Если данная учётная запись не существует, она будет создана.) Вы можете изменить пароль суперпользователя независимо от пароля учётной записи службы «postgres» в любое время после установки

Обратите внимание, что эта страница не будет показана на Linux или Mac, если вы повторно используете существующий каталог с данными.

Добавление, запрос и удаление данных

Теперь попробуйте добавить в таблицу данные.

Для этого нужно вызвать целевую таблицу, назвать столбцы и ввести данные, которые нужно добавить. К примеру, чтобы добавить горку (slide) и качели (swing), нужно ввести:

Добавляя данные в таблицу, помните:

  • Имя таблицы не нужно брать в кавычки.
  • Значения столбцов необходимо взять в кавычки.
  • В столбец equip_id не нужно добавлять данные; его значения генерируются автоматически.

Просмотрите добавленные данные:

Как видите, столбец equip_id был заполнен автоматически. Чтобы удалить значение (к примеру, slide), используйте команду:

Проверьте таблицу:

Дополнительные параметры

Эта страничка позволяет настроить несколько дополнительных параметров сервера:

Локаль: Выберите локаль с которой будет инициализирован кластер. Параметр позволит программе «initdb» попытаться определить подходящую локаль из окружающей среды. В Mac OS X, как правило, подходящая локаль — «C.UTF8», в то время как на Linux и Windows текущая локаль обычно может определяться правильно. (прим.: В этом окне вам предлагается выбрать локаль, с использованием которой будет инициализирован кластер баз данных и которая в дальнейшем будет использоваться по-умолчанию при создании других баз данных. Это довольно важный шаг, ибо локаль определяет такой важный параметр как кодировка данных в базах. Большинство людей всё-таки предпочитает работать с кодировкой UTF-8. Эта кодировка будет установлена в том случае, если в данном окне вы выберите локаль по умолчанию: . Перед тем как выбрать локаль хорошенько подумайте. Если вы устанавливаете PostgreSQL для обеспечения работы какого-либо приложения, прочтите документацию к нему, возможно это приложение требует какую-то конкретную кодировку.)

Установить pl/pgsql в базу данных template1? : Этот параметр позволяет установить процедурный язык pl/pgsql в базу данных «template1» — это означает, что он будет присутствовать во всех новых базах данных, созданных с помощью этого шаблона. В случае если вы решили не устанавливать pl/pgsql, то он в будущем может быть легко установлен ​на отдельные базы данных, если потребуется.

Обратите внимание, что эта страница не будет отображаться, если вы используете повторно существующий каталог с данными.

Настройка PostgreSQL

Чтобы установленный PostgreSQL работал с CollectionSpace, необходимо настроить пользователей и изменить некоторые параметры.

  • Найдите конфигурационный файл pg_hba.conf. Он расположен в подкаталоге data каталога, в котором установлена PostgreSQL;
  • Откройте этот файл в текстовом редакторе и следуйте приведенным ниже инструкциям;

В Mac OS X по умолчанию это папка /Library/PostgreSQL/9.1. В Mac OS X нужно иметь права супер пользователя, чтобы редактировать любой из следующих файлов конфигурации.

Убедитесь, что для «local section» указано последнее слово md5, а не ident:

# "local" is for Unix domain socket connections only
local   all             all                                     md5

Измените раздел «IPv4 local connections» следующим образом:

# IPv4 local connections:
host    all             csadmin         samehost                md5

Это ограничивает набор пользователей PostgreSQL, которым предоставляется локальный доступ к трем базам данных, используемым CollectionSpace: jbossdb, nuxeo и cspace. Например, только пользователь с именем cspace или супер пользователь PostgreSQL с именем postgres может получить доступ к базе данных cspace с локальной машины.

При установке PostgreSQL 9.x на Windows 7 может не принять термин samehost в столбце CIDR-ADDRESS. Если это произойдет, используйте адресную форму 127.0.0.1/32:

# IPv4 local connections:
host    all             csadmin        127.0.0.1/32            md5

Убедитесь, что записи в разделе «IPv6 local connections» отключены. В качестве первого символа в строках указывается символ хэш (#), если только в вашей системе не активен IPv6:

# IPv6 local connections:
#host    all             all             ::1/128                 md5

Современные системы, работающие под управлением Windows 7 и Windows Vista, могут поставляться с включенным по умолчанию IPv6. Если в вашей системе включен IPv6, можно поэкспериментировать со следующей конфигурацией — указать ::1/128 для адреса localhost:

# IPv6 local connections:

host    all             csadmin        ::1/128                 md5

Если нужно разрешить создание отчетов при подключении к БД с удаленных хостов, тогда следует добавить запись, подобную приведенной ниже, но указав свой адрес подсети. Приведенная ниже конфигурация позволит создавать отчеты удаленно с хостов в определенной подсети UC Berkeley. Для получения дополнительной информации о том, как указать адрес подсети, ознакомьтесь с документацией по pg_hba.conf для используемого релиза PostgreSQL.

host    all           cspace_reader          169.229.0.0/16          md5

Чтобы автор отчетов мог работать, придется внести еще одно изменение в значение listen_addresses в файле postgresql.conf. Подробнее о поиске этого файла рассказано ниже.

Если вы можете контролировать доступ к PostgreSQL через брандмауэр, то проще ввести значение listen_addresses «*». Для большей безопасности можно ввести список разделенных запятыми IP-адресов, с которых будут связываться авторы отчетов.

Далее после PostgreSQL установки и настройки Windows нужно внести изменения в конфигурационный файл PostgreSQL:

  • Найдите файл postgresql.conf, находящийся в папке data каталога, в котором установлен PostgreSQL;
  • Откройте этот файл в текстовом редакторе и внесите следующие изменения:
max_prepared_transactions = 64

Значение переменной max_prepared_transactions, равное 64, может оказаться большим для вашей системы. Если это так, установите меньшее значение.

Если это значение действительно слишком велико для вашей системы, вы получите сообщение об ошибке при перезапуске PostgreSQL:Restarting PostgreSQL … database server: main The PostgreSQL server failed to start. Please check the log output … FATAL: could not create shared memory segment: …

Создание кластера БД

Дальнейшие действия нужно проделывать под пользователем postgres

# su - postgres

Инициализируем кластер баз данных:

postgres@s-pg13:~$ initdb -k

Опцию -k мы использовали, чтобы включить подсчет контрольной суммы страниц, что позволяет своевременно обнаружить повреждение данных. Остальные опции можете посмотреть тут!

После инициализации кластера у нас заполнился каталог PGDATA:

postgres@s-pg13:~$ ls /usr/local/pgsql/data/
base pg_commit_ts pg_hba.conf pg_logical pg_notify pg_serial pg_stat pg_subtrans pg_twophase pg_wal postgresql.auto.conf global pg_dynshmem pg_ident.conf pg_multixact pg_replslot pg_snapshots pg_stat_tmp pg_tblspc PG_VERSION pg_xact postgresql.conf

В этом каталоге лежат конфигурационные файлы кластера, и в подкаталоге base лежат базы данных. Но о содержимом этого каталога мы поговорим позже.

Quickstart

Import the repository key from :

sudo apt install curl ca-certificates gnupg
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg >/dev/null

Create /etc/apt/sources.list.d/pgdg.list. The distributions are called codename-pgdg. In the example, replace buster with the actual distribution you are using. File contents:

deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main

(You may determine the codename of your distribution by running lsb_release -c). For a script version of the above file creation, presuming you are using a supported release:

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Finally, update the package lists, and start installing packages:

sudo apt update
sudo apt install postgresql-13
sudo apt install postgresql-common
sudo sh /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

Note that the shell script leaves the source package repo (deb-src) commented out; if you need source packages, you will need to modify /etc/apt/sources.list.d/pgdg.list to enable it.

Have a look at the FAQ.

Note: This repository provides «postgresql», «postgresql-contrib», and «postgresql-client» meta-packages that depend on the latest postgresql-x.y, … packages, similar to the ones present in Debian and Ubuntu. Once a new PostgreSQL version is released, these meta-packages will be updated to depend on the new version. If you rather want to stay with a particular PostgreSQL version, you should install specific packages like «postgresql-11» instead of «postgresql».

For packages of development/alpha/beta versions of PostgreSQL, see the .

Роли и методы аутентификации PostgreSQL

Разрешения на доступ к базе данных в PostgreSQL обрабатываются с помощью концепции ролей. Роль может представлять пользователя базы данных или группу пользователей базы данных.

  • Доверие — роль может подключаться без пароля, если выполняются условия, определенные в .
  • Пароль — роль может подключиться, указав пароль. Пароли могут быть сохранены как , и (открытый текст).
  • Ident — поддерживается только для соединений TCP / IP. Он работает путем получения имени пользователя операционной системы клиента с дополнительным отображением имени пользователя.
  • Peer — То же, что и Ident, но поддерживается только для локальных подключений.

Аутентификация клиента PostgreSQL определяется в файле конфигурации с именем . По умолчанию PostgreSQL использует метод одноранговой аутентификации для локальных подключений.

Пользователь создается автоматически при установке PostgreSQL. Этот пользователь является суперпользователем для экземпляра PostgreSQL и эквивалентен пользователю root MySQL.

Чтобы войти на сервер PostgreSQL в качестве пользователя , сначала переключитесь на пользователя, а затем войдите в командную строку PostgreSQL с помощью утилиты :

Отсюда вы можете взаимодействовать со своим экземпляром PostgreSQL. Чтобы выйти из оболочки PostgreSQL, введите:

Другой способ получить доступ к приглашению PostgreSQL без переключения пользователей — использовать команду :

Как правило, вы должны входить на сервер базы данных как только с локального хоста.

Дополнительная настройка

Дополнительная настройка базы данных является необязательной! CollectionSpace будет выполняться, даже если ни одно из описанных ниже действий не будет выполнено.

Ниже приведена обобщенная версия инструкций, размещенных здесь. Если вы хотите получить более подробную информацию, пожалуйста, обратитесь к этой странице.

PostgreSQL установка и настройка Windows выполняется через postgresql.conf. Откройте этот файл в текстовом редакторе и отредактируйте следующие значения:

shared_buffers = 512MB

Теперь через командную строку задайте значение kernel.shmmax. Оно должно как минимум равняться shared_buffer + 128MB:

sysctl kernel.shmmax=650000000

Затем перезапустите сервер PostgreSQL. Если на экране появится сообщение об ошибке, то нужно будет увеличить значение kernel.shmax.

Затем необходимо определить окончательное значение shmmax:

Откройте файл /etc/sysctl.conf.

vim /etc/sysctl.conf

И добавьте следующую строку — заменив значение для shmmax:

kernel.shmmax = 650000000

Наконец, установите необходимое значение cache_size:

Для этого запустите (и выведите статистику в мегабайтах):

free -m

В результате на экране вы увидите что-то наподобие этого:

free -m
             total       used       free     shared    buffers     cached
Mem:          4096       3302        793          0       253        1226
-/+ buffers/cache:       1822       2273
Swap:          511        216        295

Эффективное значение для cache_size определяется путем сложения значений buffers и cached. В приведенном выше примере:

253 + 1226 = 1479

К этому числу добавляется значение shared_buffers, поэтому в общей сложности мы получаем:

1479 + 512 = 1991 ~ 2 ГБ

Снова отредактируйте файл postgres.conf и установите эффективный размер кэша — значение, выведенное нами в предыдущих шагах:

effective_cache_size = 2GB

Также задайте следующие значения:

work_mem = 16MB                         # min 64kB
maintenance_work_mem = 32MB             # min 1MB
random_page_cost = 2.0

Перезагрузите установленный PostgreSQL, чтобы изменения вступили в силу.

Мы закончили настройку PostgreSQL

Обратите внимание, что приведенные в этом разделе значения являются примерными. Их необходимо устанавливать в соответствии с настройками вашей системы

Более подробную информацию о настройках можно найти здесь.

Пожалуйста, оставляйте ваши комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, лайки, дизлайки, отклики, подписки!

Добавление, запрос и удаление данных из таблицы

Теперь, когда у нас есть таблица, мы можем добавить в неё данные.

Сначала добавим горку (slide) и качели (swing). Для того, чтобы это сделать, нам необходимо указать имя таблицы, названия столбцов, а также сами данные:

При вводе данных необходимо иметь в виду некоторые наиболее распространённые ошибки. Прежде всего, названия столбцов должны быть указаны без кавычек, а данные для этих столбцов — с кавычками.

Также надо иметь в виду, что мы не указываем значения для столбца . Это значение будет задаваться автоматически при добавление новой записи в таблицу.

Мы можем просмотреть добавленные данные следующей командой:

Как видно из этого консольного вывода, наше поле было успешно заполнено автоматически, а остальные поля также получили корректные значения.

Если горка на нашей детской площадке сломалась и нам необходимо её убрать, мы можем удалить эту запись из нашей базы следующей командой:

Теперь при просмотре содержимого таблицы мы увидим, что запись горки более в ней не представлена:

Подготовка системы

Задаем имя сервера

Чтобы сервер 1С мог запуститься без ошибки, необходимо ему задать корректное имя:

hostnamectl set-hostname server1C.dmosk.ru

Если данное имя не зарегистрировано в DNS, прописываем соответствие в файле hosts:

vi /etc/hosts

192.168.1.11     server1C.dmosk.ru

Настройка брандмауэра

Для корректной работы сервера, необходимо открыть порты:

  • 1540 и 1541 для сервера 1С.
  • 1560 — запросы к базе данных.

По умолчанию, в Ubuntu действует разрешающая политика и настройка брандмауэра не требуется. В противном случае, вводим команды:

iptables -I INPUT 1 -p tcp —dport 1540:1541 -j ACCEPT

iptables -I INPUT 1 -p tcp —dport 1560 -j ACCEPT

И сохраняем правила с помощью iptables-persistent:

apt-get install iptables-persistent

netfilter-persistent save

Создание второго кластера

На одном сервере может работать два кластера, для этого создаём каталог для второго кластера. И инициализируем его:

postgres@s-pg13:~$ exit

# mkdir /usr/local/pgsql/data2/
# chown postgres:postgres /usr/local/pgsql/data2/
# chmod 750 /usr/local/pgsql/data2/
# su - postgres

postgres@s-pg13:~$ initdb -k -D /usr/local/pgsql/data2/

При инициализация кластера, если путь к каталогу PGDATA отличается от переменной $PGDATA или если такая переменная не задана. То нужно с помощью ключа -D указать путь к этому каталогу.

Чтобы запустить второй кластер одновременно с первым, нужно поменять порт, на котором работает PostgreSQL. По умолчанию порт – 5432. Изменим этот порт для второго кластера:

postgres@s-pg13:~$ nano /usr/local/pgsql/data2/postgresql.conf
port = 5433

Теперь можем запустить второй кластер:

postgres@s-pg13:~$ pg_ctl -w -D /usr/local/pgsql/data2/ -l /home/postgres/logfile2 start
waiting for server to start.... done
server started

Посмотрим на процессы:

postgres@s-pg13:~$ ps ax | grep bin/postgres
24119 ?        Ss     0:00 /usr/local/pgsql/bin/postgres
24480 ?        Ss     0:00 /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data2

Первый кластер запущен без ключа -D и используется переменная PGDATA, а во втором кластере путь к PGDATA прописан в строке запуска.

Сводка

Имя статьи
Установка PostgreSQL 13 из исходников и управление им

Описание
В этой статье я покажу как собрать PostgreSQL из исходников, инициализировать кластер и запустить его на сервере Ubuntu 20.04. А также установим из исходников одно из расширений PostgreSQL.

Добавление, запрос и удаление данных

Теперь попробуйте добавить в таблицу данные.

Для этого нужно вызвать целевую таблицу, назвать столбцы и ввести данные, которые нужно добавить. К примеру, чтобы добавить горку (slide) и качели (swing), нужно ввести:

Добавляя данные в таблицу, помните:

  • Имя таблицы не нужно брать в кавычки.
  • Значения столбцов необходимо взять в кавычки.
  • В столбец equip_id не нужно добавлять данные; его значения генерируются автоматически.

Просмотрите добавленные данные:

Как видите, столбец equip_id был заполнен автоматически. Чтобы удалить значение (к примеру, slide), используйте команду:

Проверьте таблицу:

17.3.1. Server Start-up Failures

There are several common reasons the server might fail to
start. Check the server’s log file, or start it by hand
(without redirecting standard output or standard error) and see
what error messages appear. Below we explain some of the most
common error messages in more detail.

LOG:  could not bind IPv4 socket: Address already in use
HINT:  Is another postmaster already running on port 5432? If not, wait a few seconds and retry.
FATAL:  could not create TCP/IP listen socket

This usually means just what it suggests: you tried to start
another server on the same port where one is already running.
However, if the kernel error message is not Address already in use or some variant
of that, there might be a different problem. For example,
trying to start a server on a reserved port number might draw
something like:

$ postgres -p 666
LOG:  could not bind IPv4 socket: Permission denied
HINT:  Is another postmaster already running on port 666? If not, wait a few seconds and retry.
FATAL:  could not create TCP/IP listen socket

A message like:

FATAL:  could not create shared memory segment: Invalid argument
DETAIL:  Failed system call was shmget(key=5440001, size=4011376640, 03600).

probably means your kernel’s limit on the size of shared
memory is smaller than the work area PostgreSQL is trying to create (4011376640
bytes in this example). Or it could mean that you do not have
System-V-style shared memory support configured into your
kernel at all. As a temporary workaround, you can try starting
the server with a smaller-than-normal number of buffers
().
You will eventually want to reconfigure your kernel to increase
the allowed shared memory size. You might also see this message
when trying to start multiple servers on the same machine, if
their total space requested exceeds the kernel limit.

An error like:

FATAL:  could not create semaphores: No space left on device
DETAIL:  Failed system call was semget(5440126, 17, 03600).

does not mean
you’ve run out of disk space. It means your kernel’s limit on
the number of System V
semaphores is smaller than the number PostgreSQL wants to create. As above, you
might be able to work around the problem by starting the server
with a reduced number of allowed connections (),
but you’ll eventually want to increase the kernel limit.

If you get an «illegal system
call» error, it is likely that shared memory or
semaphores are not supported in your kernel at all. In that
case your only option is to reconfigure the kernel to enable
these features.

Configuration

PostgreSQL supports multiple client authentication methods. By default, the IDENT authentication method is used for postgres and local users. Please refer to the PostgreSQL Administrator’s Guide if you would like to configure alternatives like Kerberos.

The following discussion assumes that you wish to enable TCP/IP connections and use the MD5 method for client authentication. PostgreSQL configuration files are stored in the directory. For example, if you install PostgreSQL 12, the configuration files are stored in the directory.

To enable other computers to connect to your PostgreSQL server, edit the file

Locate the line #listen_addresses = ‘localhost’ and change it to:

For details on other parameters, refer to the configuration file or to the PostgreSQL documentation for information on how they can be edited.

Now that we can connect to our PostgreSQL server, the next step is to set a password for the postgres user. Run the following command at a terminal prompt to connect to the default PostgreSQL template database:

The above command connects to PostgreSQL database template1 as user postgres. Once you connect to the PostgreSQL server, you will be at a SQL prompt. You can run the following SQL command at the psql prompt to configure the password for the user postgres.

After configuring the password, edit the file to use MD5 authentication with the postgres user:

Finally, you should restart the PostgreSQL service to initialize the new configuration. From a terminal prompt enter the following to restart PostgreSQL:

You can test server connections from other machines by using the PostgreSQL client.

Streaming Replication

PostgreSQL has a nice feature called Streaming Replication which provides the capability to continuously ship and apply the WAL XLOG records to some number of standby servers in order to keep them current. Here is presented a very basic and simple way to replicate a PostgreSQL server (master) in a standby server.

First, create a replication user in the master to be used by the standby server:

Let’s configure the master server to turn on the streaming replication. Open the file and make sure you have the following lines:

Also edit the file to add an extra line to allow tthe standby server connection using the user:

Restart the service to apply changes:

Now, in the standby server, let’s stop the PostgreSQL service:

Edit the to set up hot standby:

Back up the current state of the master server:

In the command the flags represent the following:

  • : the hostname or IP address of the master server
  • : the data directory
  • : the user to be used in the operation
  • : tuns on progess reporting
  • : enables verbose mode
  • : Creates a file and append connection settings to

Finally, let’s start the PostgreSQL service on standby server:

To make sure it is working, go to the master server and run the following command:

You need to see an entry for the standby server. As you can see in the presented row the data synchronization is assynchronous. If you want to make it synchronous, go to the file in the master server and make sure you have the following lines:

And restart the service:

Now, you can check the table again and the of the standby server need to become instead of :

To test the replication you can now create a test database in the master and check if it is replicated in the standby server:

You need to be able to see the database created on the master in the standby server.

Install PostgreSQL from Local Ubuntu Repository

If you prefer installing PostgreSQL from the local Ubuntu repository, bear in mind that it is most likely not going to be the latest version of the package.

Step 1: Check Available PostgreSQL Version

Before you decide whether you want to set up PostgreSQL from the Ubuntu repository, verify which versions are available. Update the repository and then run the command:

The output provides all the necessary information about the package, including the release number and size.

Step 2: Install PostgreSQL Package

If you are happy with the PostgreSQL version accessible from the local repository, use the following command to install the package:

With these simple steps, you have successfully installed PostgreSQL on Ubuntu 18.04.

Create a New Role

From the Linux account, you have the ability to log into the database system. However, we’re also going to demonstrate how to create additional roles. The Linux account, being associated with the Postgres administrative role, has access to some utilities to create users and databases.

We can create a new role by typing:

This basically is an interactive shell script that calls the correct Postgres commands to create a user to your specifications. It will only ask you two questions: the name of the role and whether it should be a superuser. You can get more control by passing some additional flags. Check out the options by looking at the page:

3: Создание роли

На данный момент в СУБД есть только одна роль, postgres. Чтобы создать новую роль, используйте команду createrole. Чтобы создать роль в интерактивном режиме, добавьте флаг –interactive (он позволит вам задать имя роли и предоставить ей права суперпользователя).

В сессии postgres создать нового пользователя можно с помощью команды:

В сессии другого пользователя можно использовать команду sudo, чтобы не переходить в сессию postgres:

Скрипт запросит данные о пользователе. В зависимости от полученных данных он выполнит все необходимые команды, чтобы создать отвечающего требованиям пользователя.

У этого скрипта есть много различных флагов. Ознакомиться со списком доступных опций можно в справке:

Установка phppgadmin

Не всегда удобно управлять базой данных из терминала. Иногда нужно получить доступ ко всему через веб-интерфейс. Для этого есть программа phppgadmin, но для ее работы нужен веб-сервер Apache. Для установки программы наберите:

Когда установка будет завершена откройте файл /etc/apache2/conf-available/phppgadmin.conf и закоментируйте строку:

А вместо нее добавьте:

Это необходимо, чтобы открыть доступ к этому адресу не только с локального компьютера, но и их других устройств сети. Заметьте, что вы не сможете войти под учетной записью postgres, это сделано из соображений безопасности. Когда завершите, перезагрузите Apahce:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector