Vyhledávání na webu

Jak nainstalovat Laravel PHP Framework s Nginx na CentOS 8


Laravel je dobře známý a moderní webový rámec založený na PHP s otevřeným zdrojovým kódem s výraznou, elegantní a snadno srozumitelnou syntaxí, která usnadňuje vytváření velkých a robustních webových aplikací.

Mezi jeho klíčové vlastnosti patří jednoduchý, rychlý routovací engine, výkonný kontejner pro vkládání závislostí, více back-endů pro ukládání relací a mezipaměti, expresivní a intuitivní databáze ORM (Object-relational Mapping), robustní zpracování úloh na pozadí a vysílání událostí v reálném čase.

Používá také nástroje jako Composer – správce balíčků PHP pro správu závislostí a Artisan – rozhraní příkazového řádku pro vytváření a správu webových aplikací.

V tomto článku se dozvíte, jak nainstalovat nejnovější verzi webového rámce Laravel PHP na distribuci Linuxu CentOS 8.

Požadavky na server

Rámec Laravel má následující požadavky:

  • PHP >= 7.2.5 s těmito rozšířeními PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype a JSON.
  • Skladatel – pro instalaci a správu závislostí.

Krok 1: Instalace LEMP Stack v CentOS 8

1. Chcete-li začít, aktualizujte balíčky systémového softwaru a nainstalujte zásobník LEMP (Linux, Nginx, MariaDB/MySQL a PHP) pomocí následujících příkazů dnf.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Po dokončení instalace LEMP je třeba spustit PHP-PFM, Nginx a MariaDBs pomocí následujících příkazů systemctl.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Dále musíte zabezpečit a posílit databázový stroj MariaDB pomocí bezpečnostního skriptu, jak je uvedeno na obrázku.

mysql_secure_installation

Chcete-li zabezpečit instalaci serveru, odpovězte na následující otázky.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. Pokud máte spuštěnou službu firewalld, musíte ve firewallu otevřít službu HTTP a HTTPS pro povolení požadavků klientů na webový server Nginx.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. Nakonec můžete potvrdit, že váš zásobník LEMP běží pomocí prohlížeče na IP adrese vašeho systému.

http://server-IP

Krok 2: Konfigurace a zabezpečení PHP-FPM a Nginx

6. Pro zpracování požadavků z webového serveru Nginx může PHP-FPM naslouchat na soketu Unix nebo soketu TCP, což je definováno listen parametr v konfiguračním souboru /etc/php-fpm.d/www.conf.

vi /etc/php-fpm.d/www.conf

Ve výchozím nastavení je nakonfigurován tak, aby poslouchal na soketu Unix, jak je znázorněno na následujícím snímku obrazovky. Hodnota zde bude specifikována v souboru bloku serveru Nginx později.

7. Pokud používáte soket Unix, měli byste u něj také nastavit správné vlastnictví a oprávnění, jak je znázorněno na snímku obrazovky. Odkomentujte následující parametry a nastavte jejich hodnoty na uživatele a skupinu, aby odpovídaly uživateli a skupině, pod kterou běží Nginx.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Dále také nastavte časové pásmo pro celý systém v konfiguračním souboru /etc/php.ini.

vi /etc/php.ini

Vyhledejte řádek “;date.timezone “ a odkomentujte jej, poté nastavte jeho hodnotu, jak je znázorněno na snímku obrazovky (použijte hodnoty, které platí pro váš region/kontinent a zemi).

 
date.timezone = Africa/Kampala

9. Chcete-li zmírnit riziko, že Nginx předá požadavky od uživatelů se zlými úmysly, kteří ke spuštění kódu PHP používají jiná rozšíření, do PHP-FPM, zrušte komentář u následujícího parametru a nastavte jeho hodnotu na < kód>0.

cgi.fix_pathinfo=1

10. Ve vztahu k předchozímu bodu také odkomentujte následující parametr v souboru /etc/php-fpm.d/www.conf. Přečtěte si komentář pro další vysvětlení.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Krok 3: Instalace Composer a Laravel PHP Framework

11. Dále nainstalujte balíček Composer spuštěním následujících příkazů. První příkaz stáhne instalační program a poté jej spustí pomocí PHP.

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

12. Nyní, když je Composer nainstalován, použijte jej k instalaci souborů Laravel a závislostí následovně. Nahraďte mysite.com názvem adresáře, kde budou uloženy soubory Laravel, absolutní cesta (nebo kořenová cesta v konfiguračním souboru Nginx) bude /var/www/html/mysite .com.

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

Pokud během procesu vše půjde dobře, měla by být aplikace úspěšně nainstalována a měl by být vygenerován klíč, jak je znázorněno na následujícím snímku obrazovky.

13. Během procesu instalace byl vytvořen soubor prostředí .env a byla také vygenerována požadovaná aplikace, takže je nemusíte vytvářet ručně jako dříve. Chcete-li to potvrdit, spusťte dlouhý výpis kořenového adresáře laravel pomocí příkazu ls.

ls -la mysite.com/

14. Dále musíte nakonfigurovat správné vlastnictví a oprávnění k adresářům úložiště a bootstrap/cache, aby do nich mohl web Nginx zapisovat server.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Pokud je na vašem serveru povolen SELinux, měli byste také aktualizovat kontext zabezpečení úložiště a bootstrapu/mezipaměti adresáře.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Krok 4: Nakonfigurujte blok serveru Nginx pro Laravel

16. Aby Nginx mohl začít zobrazovat váš web nebo aplikaci, musíte pro něj vytvořit blok serveru v souboru .conf pod /etc/nginx/conf.d/, jak je znázorněno.

vi /etc/nginx/conf.d/mysite.com.conf

Zkopírujte a vložte následující konfiguraci do souboru. Poznamenejte si parametry root a fastcgi_pass.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.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-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Uložte soubor a spuštěním zkontrolujte, zda je syntaxe konfigurace Nginx správná.

nginx -t

18. Poté restartujte služby PHP-FPM a Nginx, aby se poslední změny projevily.

systemctl restart php-fpm
systemctl restart Nginx

Krok 5: Přístup k webu Laravel z webového prohlížeče

19. Přístup na web Laravel na adrese mysite.com, což není plně kvalifikovaný název domény (FQDN) a není registrován (používá se pouze pro testovací účely) , použijeme k vytvoření místního DNS soubor /etc/hosts na vašem místním počítači.

Spuštěním následujícího příkazu přidejte IP adresu serveru a doménu do požadovaného souboru (nahraďte hodnotu podle vašeho nastavení).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Dále otevřete webový prohlížeč na místním počítači a použijte k navigaci následující adresu.

http://mysite.com

Úspěšně jste nasadili Laravel na CentOS 8. Nyní můžete začít vyvíjet svůj web nebo webovou aplikaci pomocí Laravel. Další informace naleznete v příručce Laravel Začínáme.