PHP 7.4 - Nginx eller Apache - Ubuntu 18.04 - 20.04 - 22.04

PHP 7.4 - Nginx eller Apache - Ubuntu 18.04 - 20.04 - 22.04

I denne guide vil jeg forklare hvor du installerer PHP 7.4 på Nginx eller en Apache2 web server.

I denne guide vil jeg forklare hvor du installerer PHP 7.4 på Nginx eller en Apache2 web server.

Jeg går ud fra du har lavet de grundlæggende instillinger, som at sikre din server m.m.

Det første du skal have gjort er at tilføje nogle kilder til din servers pakkeliste - Det gør du med nedenstående kommandoer.

# sudo apt install software-properties-common && sudo add-apt-repository ppa:ondrej/php -y

Opdater din server

Efter du har opdateret din servers pakkeliste, skal du køre nedenstående kommando

# sudo apt update -y && sudo apt upgrade -y

Installation af Nginx eller Apache2

Nginx installation:

Hvis du vil bruge Nginx som webserver, skal du installere den med nedenstående kommando.

# sudo apt install -y nginx

Apache 2 Installation:

Hvis du vil bruge Apache2 som webserver, skal du installere den med følgene kommando.

# sudo apt install -y apache2 libapache2-mod-fcgid

PHP 7.4 Installation

Nu skal du have installeret PHP 7.4- Det gør du ved at skrive denne kommando:

# sudo apt install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc php7.4-curl php7.4-gd php7.4-imagick php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring php7.4-opcache php7.4-soap php7.4-zip php7.4-intl -y

OBS: Apache2 fpm

Som standard er fpm ikke aktiveret i Apache2. Det gør du med nedenstående kommandoer

# sudo a2enmod proxy_fcgi setenvif
# sudo a2enconf php7.4-fpm
# sudo systemctl restart apache2 

PHP konfigation

Jeg vil anbefale, at du retter dette i din php.ini som du finder nedenstående /etc/php/7.4/fpm.php.ini

  • upload_max_filesize = 512M
  • post_max_size = 512M
  • memory_limit = 2048M
  • max_execution_time = 300
  • max_input_vars = 3000
  • max_input_time = 1000

Når dette er rettet, skal du genstarte FPM

# sudo service php7.4-fpm restart

Du er nu i mål :)

Genstart Nginx eller Apache2 for at ændringerne træder i kraft

Nginx:

# sudo systemctl restart nginx

Apache2:

# systemctl restart apache2

BONUS INFO # 1 : Firewall (UFW)

Hvis du bruger en firewall på din server - F.eks UFW i dette tilfælde, skal du huske at åbne portene på din server, så den kan blive tilgået udefra.

Åben port 80 samt 443 i ufw for at kunne tilgå din webserver ude fra - Det gør du med denne kommando:

# sudo ufw allow proto tcp from any to any port 80,443

BONUS INFO # 2 - Defaults Virtualhosts

Nginx standard "virtual host"

server {
    listen 80;
    listen [::]:80;

    # Declare the domain name of the website
    server_name example.com www.example.com;

    # Declare the document root directory
    root  /var/www/html;

    index index.html index.php;

    # Pass PHP files to PHP-FPM listening on /run/php/php7.4-fpm.sock
    location ~ \.php$ {
        try_files $uri =404;

        # Mitigate https://httpoxy.org/ vulnerabilities
        fastcgi_param HTTP_PROXY "";

        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

Apache2 standard "virtual host"

<VirtualHost *:80>
     ServerName example.com
     ServerAlias www.example.com
     DocumentRoot /var/www/html

     <Directory /var/www/html>
          Options Indexes FollowSymLinks
         AllowOverride All
         Require all granted
     </Directory>

     <FilesMatch ".php$"> 
         SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost/"   
      </FilesMatch>
</VirtualHost> 

BONUS INFO # 3 - Gratis SSL Certifikat

Jeg har skrevet en guide til hvordan du installerer certbot fra lets encrypt, og udsteder et gratis SSL certifikat til dit domæne

Læs mere her: https//:www.futurenode.dk/lets-encrypt-nginx-apache/

Generel fejlfinding: Tjek dine log filer, hvis der skulle opstå problemer.

Nginx:

# /var/log/nginx

Du kan også køre sudo nginx -t for at tjekke dine nginx config filer:

Apache2:

# /var/log/apache2/

Du kan også køre sudo apache2ctl -t for at tjekke dine apache2 config filer:

OBS: Apache2 fejlfinding

For at tjekke din config i apache, skal du køre sudo apache2ctl -t

Hvis du får en fejl der ligner nedenstående

"apache2: Could not reliably determine the server's fully qualified domain name, using ::1. Set the 'ServerName' directive globally to suppress this message"

Så skal du rette følgende apache2 config: sudo nano /etc/apache2/apache2.conf og tilføje dette til bunden af filen:

ServerName localhost

Efterfølgende skal du genstarte apache2 med sudo systemctl restart apache2

Har du problemer med guiden, så smid en kommentar

Sådan! Betal dernæst for at få fuld adgang til FutureNode.dk.
Velkommen tilbage! Du er nu logget ind.
Du er nu medlem på FutureNode.dk.
Sådan! Din konto er fuldt aktiveret. Du har nu adgang til alt indholdet samt alle funktioner.
Sådan! Dine faktureringsoplysninger er blevet opdateret.
Dine faktureringsoplysninger blev ikke opdateret.