ArchLinux:Nginx: Difference between revisions

From Wiki³
mNo edit summary
Line 5: Line 5:


= {{Icon24|sitemap}} NGINX =
= {{Icon24|sitemap}} NGINX =
Beforehand be sure to determine weather the web server will be using MySQL (ie. MariaDB) or PostreSQL.
Beforehand be sure to determine weather the web server will be using MySQL (ie. MariaDB) or PostgreSQL.
 
Begin by installing NGINX, PHP and other required utilities.
{{Console|1=pikaur -S composer curl minify nginx php-fpm sassc wget}}
{{Console|1=pikaur -S composer curl minify nginx php-fpm sassc wget}}
{{margin}}
Install all of the required PHP extensions.
{{Console|1=pikaur -S php-gd php-geoip php-imagic php-intl php-memcache php-pgsql php-sqlite php-sodium xdebug}}
{{Console|1=pikaur -S php-gd php-geoip php-imagic php-intl php-memcache php-pgsql php-sqlite php-sodium xdebug}}
Next create the environment for the web server.
Next create the environment for the web server.
Line 42: Line 44:


== {{Icon|notebook}} MariaDB ==
== {{Icon|notebook}} MariaDB ==
If {{mono|mariadb}} is to be used for the back-end, the following will be required.
Using {{mono|mariadb}} as a back-end will require the following setup and configuration.
{{Console|1=pikaur -S mariadb}}
{{Console|1=pikaur -S mariadb}}
{{margin}}
{{margin}}
{{Console|1=sudo chown mysql:mysql /nginx/sql}}
{{Console|1=sudo chown mysql:mysql /nginx/sql}}
{{margin}}
Give the current logged in user access.
{{Console|1=sudo gpasswd -a {{cyanBold|username}} mysql}}
{{Console|1=sudo gpasswd -a {{cyanBold|username}} mysql}}
{{margin}}
Create and initialize the data directory.
{{Console|1=mariadb-install-db --user{{=}}mysql --basedir{{=}}/usr --datadir{{=}}/nginx/sql}}
{{Console|1=mariadb-install-db --user{{=}}mysql --basedir{{=}}/usr --datadir{{=}}/nginx/sql}}
{{margin}}
{{margin}}

Revision as of 12:17, 28 April 2021

Icon Introduction

Icon NGINX

Beforehand be sure to determine weather the web server will be using MySQL (ie. MariaDB) or PostgreSQL.

Begin by installing NGINX, PHP and other required utilities.

# pikaur -S composer curl minify nginx php-fpm sassc wget

Install all of the required PHP extensions.

# pikaur -S php-gd php-geoip php-imagic php-intl php-memcache php-pgsql php-sqlite php-sodium xdebug

Next create the environment for the web server.

# sudo mkdir -p /nginx/conf.d /nginx/https /nginx/logs /nginx/sql /nginx/ssl /nginx/vhosts.d
 
# sudo chmod -R 770 /nginx
 
# sudo chmod 750 /nginx/sql
 
# sudo gpasswd -a username http

Icon PostgreSQL

Using postgresql as a back-end will require the following setup and configuration.

# pikaur -S postgresql
 
# sudo chown postgres:postgres /nginx/sql
 
# sudo gpasswd -a username postgres

Swap over to the postgresql user account.

# sudo -iu postgres

Run the database initialization.

# initdb --locale en_US.UTF-8 -E UTF8 -D '/nginx/sql/data'

Return to the normal user account.

# exit

Modify the systemd service file to reflect the new data directory.

# sudo systemctl edit postgresql.service
 
filename: postgresql.service
Environment=PGROOT=/nginx/sql
PIDFile=/nginx/sql/postmaster.pid

Start and enable the systemd service.

# sudo systemctl enable --now postgresql.service

Swap back over to the postgresql user account.

# sudo -iu postgres

Create a new postgres user account.

# createuser -P --interactive
Enter name of role to add: username
Enter password for new role: ********
Enter it again: ********
Shall the new role be a superuser? (y/n) n
Shall the new role be allowed to create databases? (y/n) y
Shall the new role be allowed to create more new roles? (y/n) n

Icon MariaDB

Using mariadb as a back-end will require the following setup and configuration.

# pikaur -S mariadb
 
# sudo chown mysql:mysql /nginx/sql

Give the current logged in user access.

# sudo gpasswd -a username mysql

Create and initialize the data directory.

# mariadb-install-db --user=mysql --basedir=/usr --datadir=/nginx/sql
 
# /etc/my.cnf.d/server.cnf