This instruction is provided for servers on the CentOS 7 operating system.
For all other operating systems, the steps are the same except for the names of some packages and the package managers used.

1. Install Bitcoin core
Follow this instruction for installation https://ma.ttias.be/run-a-bitcoin-core-full-node-on-centos-7/ with the replacement of the specified version with the current version of the Bitcoin core.

Or you can use Snap for easy install

If you installed Bitcoin core using Snap, in commands you must change:
bitcoin-cli to bitcoin-core.cli
bitcoind to bitcoin-core.daemon

Don't start the core yet.

2. Сonfigure RPC authorization
Based on the instructions above, your config should be located along the path /home/bitcoin/.bitcoin/bitcoin.conf or /home/$USER$/.bitcoin/bitcoin.conf
The .bitcoin folder is created when the Bitcoin core starts, so you need to start the core for a few seconds and then stop it.
This can be done with this command: bitcoind. Then wait for the kernel to create the folder. And then press the key combination Ctrl + c.

Now, if we don't have a bitcoin.conf file, we just need to create it.
Insert this content to config:
Code:
# Always run the core in the daemon
daemon=1

# Enable pruning to reduce storage requirements by deleting old blocks.
# This mode is incompatible with -txindex and -rescan.
# 0 = default (no pruning).
# 1 = allows manual pruning via RPC.
# >=550 = target to stay under in MiB.
prune=2000

# Tells bitcoind to accept JSON-RPC commands
server=1

2.1. Generating a password for RPC authorization
Python 3 must be installed on your server.
Here is an instruction for installation: https://www.liquidweb.com/kb/how-to-install-python-3-on-centos-7/
I advise you to install with yum

After we installed python:
wget https://raw.githubusercontent.com/bitcoin/bitcoin/master/share/rpcauth/rpcauth.py
python3 rpcauth.py bitcoin

You must get something like:
Code:
String to be appended to bitcoin.conf:
rpcauth=bitcoin:43bd1663daa3407c9117d86beed9d5b5$c751a9599e42d97079eccdb71a3ff11b103c582c764b8c2893aa8018940f7224
Your password:
0qmKqe1Oj5gESXR8y8yK-WfjUz6DuCqgqmsiRHtEV2w=

Keep the password and copy the rpcauth line and paste it into the config. Now our config looks like this:
Code:
# Always run the core in the daemon

daemon=1


# Enable pruning to reduce storage requirements by deleting old blocks.

# This mode is incompatible with -txindex and -rescan.

# 0 = default (no pruning).

# 1 = allows manual pruning via RPC.

# >=550 = target to stay under in MiB.

prune=2000


# Tells bitcoind to accept JSON-RPC commands

server=1

rpcauth=bitcoin:43bd1663daa3407c9117d86beed9d5b5$c751a9599e42d97079eccdb71a3ff11b103c582c764b8c2893aa8018940f7224

3. We run the Bitcoin core and wait for the download blockchain
Run: bitcoind

To check if the blockchain is downloaded, we perform this command:
bitcoin-cli getblockchaininfo
Scroll up and compare the blocks and headers fields. When their values are the same, it means that the blockchain has loaded and the server is ready to use.
View attachment 232

4. Create a wallet for each forum
bitcoin-cli createwallet $WALLET_NAME$ (Replace $WALLET_NAME$ with any name you wish)

5. Create a payment profile

FieldValue
Userbitcoin
PasswordSpecify here the password here from step 2.1
WalletSpecify here the wallet name from step 4

All other fields fill on the basis of the explanation under the input field when creating a profile



If the Bitcoin core was installed not on the forum server, you need to specify the rpcallowip and rpcbind parameters in the config.
Code:
# Allow connection for forum server
rpcallowip=HERE_IS_FORUM_SERVER_IP

# Bind RPC for localhost
rpcbind=127.0.0.1

# Bind RPC for bitcoin server IP to allow external connections from other servers
rpcbind=HERE_IS_BITCOIN_SERVER_IP
If you need to allow connection for multiple servers, just add rpcallowip again on new line.



After changes in the config, it is advisable to restart the server:
bitcoin-cli stop
bitcoind

And, if you created a wallet in the core, you need to load it: bitcoin-cli loadwallet $WALLET_NAME$