Tartalomjegyzék
Laravel Deploy Debian GNU/Linuxon
- Szerző: Sallai András
- Copyright © Sallai András, 2021
- Web: https://szit.hu
Bevezetés
A Laravel projekt fejlesztési időben tartalmaz egy node_modules könyvtárat. Erre csak fejlesztési időben van szükség. Ne másoljuk fel a szerverre, már csak azért sem mert több ezer állomány is lehet a könyvtárban.
Szerveren szükséges
Laravel függőségeinek a következőt szokták megjelölni:
- PHP >= 7.1.3
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
- Ctype PHP Extension
- JSON PHP Extension
Ezek közül alapból megtalálható a php csomag telepítése után: Ctype, OpenSSL és a PDO.
Telepítsük a szükséges fájlokat:
apt install php-cli php-gd php-mbstring php-mcrypt \ php-zip php-opcache php-xml \ php-tokenizer php-json php-bcmath unzip curl php-curl
Engedélyezni kell a .htaccess fájl használatát.
Debian GNU/Linuxon, ehhez szerkesszük az apache2.conf fájlt:
sudo nano /etc/apache2/apache2.conf
Keressük meg az AllowOverride beállítást a /var/www könyvtáron. Az alapértelmezett None értéket állítsuk All-ra:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Engedélyezzük az átírást:
sudo a2enmod rewrite
Indítsuk újra az apache-t:
sudo systemctl restart apache2
Projekt letöltése Git-ről
Tegyük fel, hogy /var/www könyvtárba szeretnénk letölteni, ekkor:
git clone https://github.com/valaki/projekt01.git
Az elérési utat javítsuk saját projektünkre.
PHP függőségek telepítése
Töltsük le a PHP függőségeket a composer segítségével. Itt szólni fog, hogy nem ajánlott rootként futtatni.
cd /var/www/projekt01 composer install
Ha van NodeJS függősége, akkor telepítsük:
npm install
Írható könyvtárak
Állítsuk be, hogy az apache tudjon írni a storage és a bootstrap/cache könyvtárakba:
Ha az apache a www-data nevében fut:
cd /var/www/projekt01 chown -R www-data: storage chown -R www-data: bootstrap/cache
Adatbázis
Ha van adatbázis, vegyük fel az adatbázis felhasználót és végezzük el a migrálást.
php artisan migrate
Állítsuk be az adatbáziselérést a .env fájlban. Ha nincs .env fájl, másoljunk a .env.example fájlból:
cp .env.example .env
Ha vannak seed adataink, töltsük fel:
php artisan db:seed
public beállítása
A webszerver DocumentRoot könyvtárát állítsuk be a Laravel projekt public könyvtárára.
nano /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/projekt01/public
Indítsuk újra a szervert:
systemctl restart apache2
Kulcs generálás
Generáljunk kulcsot az alkalmazás számára. Ha még nincs .env állományunk készítsük el. Ha adatbázist használunk, az legyen beállítva az állományban.
cd /var/www/projekt01 cp .env.example .env php artisan key:generate
Optimalizálás
Éles szerveren ajánlott az optimalizálás:
composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache
A .env
Az élesítéshez állítsuk be a még kimaradt változókat. Például APP_ENV, APP_DEBUG.
APP_NAME=Projekt01 APP_ENV=production APP_DEBUG=false APP_KEY=base64:SyvMmCx6w8w8rcnsm6sWvq6X2HGm9HQVo7412tPNOic= APP_URL=http://zold.lan ... DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=projekt01 DB_USERNAME=projekt01 DB_PASSWORD=titok