Laravel je populární framework pro webové aplikace vytvořený pro vývojáře PHP. Laravel je v komunitě PHP dobře známý pro svou jednoduchost jako nástroje pro vytváření velkých a robustních aplikací. Laravel je také známý svou výraznou a elegantní syntaxí.
Od svého založení se Laravel vyvinul a stal se jedním z nejpopulárnějších a nejvýkonnějších frameworků pro webové aplikace a mnoho velkých organizací si začíná uvědomovat potenciál tohoto frameworku a začíná jej osvojovat.
V tomto tutoriálu vás provedeme nastavením Laravelu v Ubuntu 22.04.
Začněme nastavením.
1 Předpoklady
- Operační systém Ubuntu 22.04
- Minimální verze PHP 8.0.
- Bylo by lepší, kdyby váš server měl alespoň 2 GB RAM
2 Aktualizace systému
Nejprve aktualizujme náš systém.
sudo apt update -y && apt upgrade -y
3 Instalace PHP a rozšíření PHP
Výchozí verze PHP v úložišti Ubuntu 22.04 je PHP 8.1, takže můžeme pokračovat v instalaci PHP bez přidávání repozitářů.
sudo apt-get install php php-fpm libapache2-mod-php php-dev php-zip php-curl php-pear php-mbstring php-mysql php-gd php-xml curl -y
Ověřte verzi PHP:
php -v
Output:
PHP 8.1.2 (cli) (built: Jul 21 2022 12:10:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
4 Instalace a konfigurace databáze
V tomto nastavení použijeme MariaDB jako náš systém správy databází, ale můžete si vybrat jakýkoli systém správy databází, který Laravel podporuje, jako je SQLite, MySQL, Postgres a SQL Server.
Nechte nás nainstalovat MariaDB.
sudo apt install mariadb-server
Povolte a spusťte MariaDB.
sudo systemctl enable mariadb --now
Zkontrolujte stav MariaDB.
sudo systemctl status mariadb
Output:
● mariadb.service - MariaDB 10.6.7 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-03 12:32:57 EDT; 2min 13s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 123075 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 9456)
Memory: 57.2M
CPU: 425ms
CGroup: /system.slice/mariadb.service
└─123075 /usr/sbin/mariadbd
Zabezpečme databázi MariaDB.
sudo mysql_secure_installation
Postupujte podle průvodce nasazením serveru MariaDB:
Securing the MySQL server deployment.
Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Nyní restartujte MariaDB.
sudo systemctl restart mariadb
Nyní vytvoříme databázi a databázového uživatele pro naši aplikaci Laravel.
mysql -u root -p
MariaDB [(none)]> create database laravel;
MariaDB [(none)]> grant all privileges on laravel.* to 'laravel_user'@'localhost' identified by 'your_secure_password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Poznámka: Nezapomeňte prosím změnit „vaše_zabezpečené_heslo ‘ na své vlastní heslo.
5 Instalace aplikace Composer
Composer je správce balíčků závislostí na úrovni aplikace pro PHP, který poskytuje standardní formát pro správu závislostí softwaru PHP a požadovaných knihoven. Pro snadnou správu balíčků Laravel a závislostí je v Laravelu vyžadován Composer.
Nechte nás nainstalovat skladatel.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Ověřte instalaci.
composer --version
Output:
Composer version 2.4.1 2022-08-20 11:44:50
6 Instalace Laravel Framework
Než začneme s instalací, změňme adresář.
cd /var/www/
Stáhněte si aplikaci Laravel. V době psaní tohoto článku je nejnovější verze Laravelu 9, takže si můžeme stáhnout Laravel 9 přímo bez specifikace verze.
sudo composer create-project laravel/laravel mylara-app --prefer-dist
Výstup v případě úspěšné instalace:
79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
INFO No publishable resources for tag [laravel-assets].
No security vulnerability advisories found
> @php artisan key:generate --ansi
INFO Application key set successfully.
Chcete-li zkontrolovat verzi, přejděte do adresáře Laravel:
cd mylara-app
php artisan --version
output:
Laravel Framework 9.28.0
Poznámka: pokud chcete nainstalovat konkrétní verzi, můžete spustit tento příkaz (ukázka níže nainstaluje verzi 8):
sudo skladatel vytvořit-projekt laravel/laravel lara8-app „8.*“ –prefer-dist
Nastavte vlastnictví na www-data.
sudo chown -R www-data:www-data /var/www/mylara-app
Nastavte všem adresářům oprávnění 755.
sudo find /var/www/mylara-app/ -type d -exec chmod 755 {} \;
Nastavte všem souborům oprávnění 644.
sudo find /var/www/mylara-app/ -type f -exec chmod 644 {} \;
Zkontrolujte aplikaci spuštěním vývojového serveru.
php artisan serve --host=0.0.0.0
Output:
INFO Server running on [http://0.0.0.0:8000].
Press Ctrl+C to stop the server
Měli byste mít přístup k vývojovému serveru Laravel na adrese http://ipaddress:8000 .
7 Nastavení výroby Laravel
Webový server Apache :
sudo apt install apache2
Povolte a spusťte Apache.
systemctl enable apache2 --now
Vytvořte virtuálního hostitele.
sudo nano /etc/apache2/sites-available/laravel.conf
Přidejte následující:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/mylara-app/public
ServerName domain.com www.domain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/laravel/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Poznámka:Nezapomeňte změnit doménu v direktivě ServerName.
Uložte soubor a ukončete.
Povolte virtuálního hostitele, který jsme vytvořili.
sudo a2ensite laravel.conf
Povolte také Apache mod_rewrite.
sudo a2enmod rewrite
Restartujte webový server Apache.
sudo systemctl restart apache2
Webový server Nginx :
Nejprve nainstalujme Nginx.
sudo apt install nginx -y
Povolte a spusťte Nginx.
sudo systemctl enable nginx --now
Vytvořte blok serveru.
sudo nano /etc/nginx/sites-available/laravel.conf
Přidejte následující:
server {
server_name domain.com www.domain.com;
access_log /var/log/nginx/domain.com.access.log;
error_log /var/log/nginx/domain.com.error.log;
root /var/www/mylara-app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Poznámka: Nezapomeňte prosím změnit „doména.com “.
Uložte soubor a ukončete.
Povolme konfigurační soubor Nginx (blok serveru).
sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
Restartujte Nginx.
sudo systemctl restart nginx
8 Přístup k vaší aplikaci Laravel
Po úspěšném nastavení produkce byste měli mít přístup k vaší aplikaci Laravel s vaší doménou na http://domena.com .
9 Závěr
Naučili jste se nastavit Laravel 9 na Ubuntu 22.04 s webovým serverem Nginx nebo Apache.
Pokud si chcete nainstalovat SSL certifikát k zabezpečení svého webu, můžete si přečíst náš článek Let’s Encrypt.