Zoeken op website

Hoe Laravel PHP Framework met Nginx op Ubuntu 20.04 te installeren


Laravel is het populairste, gratis en open-source PHP-framework ter wereld, bekend om zijn expressieve en elegante syntaxis. Laravel is toegankelijk, krachtig en biedt enkele van de beste webontwikkelingstools die nodig zijn voor grote, robuuste en moderne applicaties.

In dit artikel leert u hoe u het Laravel PHP Framework installeert op de Ubuntu 20.04-server die draait op de Nginx-webserver.

Vereisten

  • Hoe LEMP Stack te installeren met PhpMyAdmin in Ubuntu 20.04

Stap 1: Vereiste PHP-modules installeren

Na het instellen van de LEMP-stack op uw Ubuntu 20.04-server, zoals beschreven in de handleiding in de bovenstaande link, moet u als volgt aanvullende PHP-extensies installeren die Laravel nodig heeft:

sudo apt update
sudo apt php-common php-json php-mbstring php-zip php-xml php-tokenizer

Stap 2: Een database voor Laravel maken

Vervolgens moet u een MySQL database maken voor uw Laravel applicatie. Log dus in op uw mysql-shell en maak de database als volgt aan.

sudo mysql
MariaDB [(none)]> CREATE DATABASE laraveldb;
MariaDB [(none)]> GRANT ALL ON laraveldb.* to 'webmaster'@'localhost' IDENTIFIED BY 'tecmint';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Stap 3: Composer installeren in Ubuntu 20.04

Laravel gebruikt de composer (een afhankelijkheidsmanager voor PHP) om zijn afhankelijkheden te beheren. Voordat u Laravel gebruikt, moet u er daarom voor zorgen dat Composer op uw systeem is geïnstalleerd, zoals weergegeven.

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

Stap 4: Laravel installeren in Ubuntu 20.04

Nadat u de composer hebt geïnstalleerd, gebruikt u deze om de Laravel-bestanden te installeren. Ga naar de map /var/www/html waar webbestanden zijn opgeslagen en installeer vervolgens Laravel met behulp van de componist, zoals weergegeven. Vergeet niet om example.com te vervangen door de naam van de map waar de Laravel-bestanden zullen worden opgeslagen.

cd /var/www/html
composer create-project --prefer-dist laravel/laravel example.com

Stap 5: Laravel configureren in Ubuntu 20.04

Om de inhoud van de nieuwe Laravel-installatie weer te geven, voert u de volgende ls-opdracht uit. U zult merken dat er automatisch een .env-bestand is aangemaakt, wat in het verleden handmatig moest worden aangemaakt.

ls -la /var/www/html/example.com/

Stel vervolgens als volgt de juiste machtigingen voor de map Laravel in.

sudo chown -R :www-data /var/www/html/example.com/storage/
sudo chown -R :www-data /var/www/html/example.com/bootstrap/cache/
sudo chmod -R 0777 /var/www/html/example.com/storage/
sudo chmod -R 0775 /var/www/html/example.com/bootstrap/cache/

Vervolgens gebruikt Laravel een applicatiesleutel om gebruikerssessies en andere gecodeerde gegevens te beveiligen. De standaard .env bevat een standaard applicatiesleutel, maar u moet om veiligheidsredenen een nieuwe genereren voor uw laravel-implementatie.

sudo php artisan key:generate

De gegenereerde sleutel wordt toegevoegd aan het bestand .env als de waarde van de APP_KEY. U kunt de toegevoegde sleutel bekijken met behulp van de grep-opdracht.

grep -i APP_Key /var/www/html/example.com/.env

U moet ook de Laravel databaseverbindingsdetails configureren in .env, zoals weergegeven in de volgende schermafbeelding.

sudo nano /var/www/html/example.com/.env

Stap 6: NGINX configureren om de Laravel-applicatie te bedienen

Om ervoor te zorgen dat NGINX uw nieuwe applicatie kan bedienen, moet u er een serverblok voor maken binnen de NGINX-configuratie, onder de map /etc/nginx/sites-available/.

sudo nano /etc/nginx/sites-available/example.com.conf

Update in de onderstaande configuratie de root-richtlijn naar de openbare map van de Laravel-applicatie en zorg ervoor dat u www.example.com vervangt door de domeinnaam van uw website, zoals weergegeven.

Stel ook in dat de fastcgi_pass richtlijn moet verwijzen naar het medium PHP-FPM waar naar verzoeken luistert (bijvoorbeeld fastcgi_pass unix:/run/php/php7.4 -fpm.sock):

server{
        server_name www.example.com;
        root        /var/www/html/example.com/public;
        index       index.php;

        charset utf-8;
        gzip on;
        gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Sla het bestand op en schakel vervolgens de Laravel-siteconfiguratie in door een link te maken van /etc/nginx/sites-available/example.com.conf naar de /etc/nginx/sites-enabled/ map. Verwijder bovendien de standaard serverblokconfiguratie.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default

Controleer vervolgens of de configuratiesyntaxis van NGINX correct is door de volgende opdracht uit te voeren voordat u de service opnieuw start.

sudo nginx -t
sudo systemctl restart nginx

Stap 7: Toegang tot de Laravel-applicatie vanuit een webbrowser

In dit stadium moet u testen of uw Laravel-implementatie goed werkt en of deze toegankelijk is via een browser. Als u het dummydomein example.com wilt gebruiken, gebruiken we het bestand /etc/hosts op uw lokale computer om lokale DNS te maken.

Voer de volgende opdrachten uit om het IP-adres van de Laravel-server op te halen en voeg dit toe aan het bestand /etc/hosts (vervang de waarde volgens uw instellingen).
$ip-advertentie
$echo “192.168.56.11 voorbeeld.com” | sudo tee -a /etc/hosts

Open nu een webbrowser op de lokale computer en gebruik het volgende adres om te navigeren.

http://www.example.com/

Nu u Laravel heeft geïnstalleerd, kunt u beginnen met het bouwen van uw webapplicatie of site. Zie de Laravel-documentatie voor meer informatie.