GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Laravel 5.x s Nginx a PHP-FPM 7.1 na CentOS 7

Laravel je open source PHP framework, který se řídí návrhovým vzorem MVC (Model-View-Controller). Byl vytvořen Taylorem Otwellem v roce 2011 jako pokus poskytnout pokročilou alternativu k frameworku CodeIgniter (CI). V roce 2011 vydal projekt Laravel verze 1 a 2, letos byla vydána verze 5.4 s mnoha vylepšeními, jako je podpora příkazového řádku (CLI) s názvem 'artisan', vestavěná podpora pro více typů databází a vylepšené směrování.

V tomto tutoriálu vám ukážu, jak nainstalovat Laravel Web Framework s webovým serverem Nginx, PHP-FPM 7.1 a MariaDB na systém CentOS 7. Ukážu vám krok za krokem, jak nainstalovat a nakonfigurovat Laravel pod zásobníkem LEMP na serveru CentOS 7.

Tento tutoriál je k dispozici také pro Laravel na Ubuntu.

Předpoklad:

  • CentOS 7 Server.
  • Kořenová oprávnění.

Krok 1 – Instalace úložiště EPEL

EPEL nebo Extra Package for Enterprise Linux je další úložiště balíčků, které poskytuje užitečné softwarové balíčky, které nejsou součástí oficiálního úložiště CentOS. Lze jej nainstalovat na linuxové distribuce založené na RPM, jako je CentOS a Fedora.

V tomto tutoriálu potřebujeme úložiště EPEL pro instalaci Nginx, protože balíčky Nginx v oficiálním úložišti CentOS neexistují. Nainstalujte úložiště EPEL pomocí příkazu yum níže.

yum -y install epel-release

Úložiště EPEL bylo nainstalováno.

Krok 2 – Instalace Nginx

V tomto tutoriálu spustíme Laravel pod LEMP Stackem. Nginx je webový server součástí zásobníku LEMP a lze jej nainstalovat z úložiště EPEL.

Nainstalujte Nginx 1.10 z úložiště EPEL pomocí yum.

yum -y install nginx

Po dokončení instalace spusťte Nginx a přidejte jej, aby se spustil při spouštění.

systemctl start nginx
systemctl enable nginx

Nginx běží na portu 80, zkontrolujte to pomocí příkazu netstat níže.

netstat -plntu

Pokud se jako výsledek zobrazí 'Příkaz nenalezen', nainstalujte balíček net-tools, jak je znázorněno níže.

yum -y install net-tools

Krok 3 – Instalace a konfigurace PHP-FPM 7.1

Laravel lze nainstalovat na server s verzí PHP>=5.6.4. V tomto tutoriálu použijeme nejnovější verzi PHP 7.1, kterou podporuje Laravel.

PHP 7.1 v základním úložišti CentOS neexistuje, musíme ho nainstalovat z úložiště třetí strany s názvem 'webtatic'.

Nainstalujte úložiště webtatic pomocí tohoto příkazu rpm.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Nyní můžeme nainstalovat PHP-FPM se všemi rozšířeními, která Laravel potřebuje, pomocí jediného příkazu yum.

yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip

PHP 7.1 bylo nainstalováno na náš systém CentOS 7.

Dále nakonfigurujte PHP úpravou konfiguračního souboru php.ini pomocí vim.

vim /etc/php.ini

Odkomentujte řádek níže a změňte hodnotu na 0.

cgi.fix_pathinfo=0

Uložte soubor a ukončete editor.

Nyní upravte soubor PHP-FPM www.conf.

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

PHP-FPM poběží pod uživatelem a skupinou 'nginx ', změňte hodnotu dvou řádků níže na 'nginx '.

user = nginx
group = nginx

Namísto použití portu serveru bude PHP-FPM běžet pod souborem soketu. Změňte hodnotu 'listen' na cestu '/run/php-fpm/php-fpm.sock ', jak je uvedeno níže.

listen = /run/php-fpm/php-fpm.sock

Vlastníkem souboru soketu bude uživatel 'nginx' a režim oprávnění je 660. Odkomentujte a změňte všechny hodnoty takto:

listen.owner = nginx
listen.group = nginx
listen.mode  = 0660

U proměnných prostředí odkomentujte tyto řádky a nastavte hodnoty, jak je uvedeno níže.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Uložte soubor a ukončete vim, poté spusťte PHP-FPM a povolte jeho spuštění při bootování.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM běží pod souborem soketu, zkontrolujte jej pomocí příkazu níže.

netstat -pl | grep php-fpm.sock

Instalace a konfigurace PHP a PHP-FPM 7.1 byly dokončeny.

Krok 4 – Instalace serveru MariaDB

Pro svůj projekt Laravel můžete použít MySQL nebo PostgreSQL. Pro tento tutoriál použiji databázový server MariaDB. Je k dispozici v úložišti CentOS. Nainstalujte MariaDB-server pomocí příkazu yum níže.

yum -y install mariadb mariadb-server

Po dokončení instalace spusťte 'mariadb' a povolte, aby se spustil při bootování.

systemctl start mariadb
systemctl enable mariadb

MariaDB byla spuštěna a běží na portu 3306, zkontrolujte jej pomocí příkazu netstat.

netstat -plntu

Dále nakonfigurujte heslo uživatele root pro MariaDB pomocí 'mylsq_secure_installation ' níže.

mysql_secure_installation

Zadejte své mariadb root heslo, odstraňte anonymního uživatele atd.

Set root password? [Y/n] Y
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

Instalace a konfigurace MariaDB byla dokončena.

Krok 5 – Instalace PHP Composer

PHP skladatel je správce balíčků pro programovací jazyk PHP. Byl vytvořen v roce 2011 a je inspirován instalačním programem Node.js 'npm' a Ruby's 'bundler'. Nainstalujte skladatel pomocí příkazu curl.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Po dokončení instalace zkuste použít 'skladatel ' a uvidíte výsledky jako níže.

composer

PHP Composer nainstalovaný na CentOS 7.

Krok 6 – Konfigurace virtuálního hostitele Nginx pro Laravel

V tomto kroku vytvoříme konfiguraci virtuálního hostitele nginx pro projekt Laravel. Potřebujeme definovat webový kořenový adresář pro tuto instalaci Laravel, použiji '/var/www/laravel ' jako kořenový webový adresář.

Vytvořte jej pomocí příkazu mkdir níže:

mkdir -p /var/www/laravel

Dále přejděte do adresáře nginx a vytvořte nový konfigurační soubor virtuálního hostitele laravel.conf v adresáři conf.d.

cd /etc/nginx
vim conf.d/laravel.conf

Vložte konfiguraci níže do souboru:

server {
        listen 80;
        listen [::]:80 ipv6only=on;

    # Log files for Debugging
        access_log /var/log/nginx/laravel-access.log;
        error_log /var/log/nginx/laravel-error.log;

    # Webroot Directory for Laravel project
        root /var/www/laravel/public;
        index index.php index.html index.htm;

        # Your Domain Name
        server_name laravel.hakase-labs.co;

        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

    # PHP-FPM Configuration Nginx
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

Uložte soubor a ukončete vim.

Otestujte konfiguraci nginx a ujistěte se, že nedochází k chybě, poté službu nginx restartujte.

nginx -t
systemctl restart nginx

Konfigurace virtuálního hostitele nginx pro Laravel byla dokončena.

Krok 7 – Instalace Laravel

Před instalací Laravelu musíme na server nainstalovat unzip.

yum -y install unzip

Nyní přejděte do kořenového adresáře webu laravel '/var/www/laravel'.

cd /var/www/laravel

Laravel poskytuje dva způsoby instalace frameworku na server. Můžeme nainstalovat Laravel pomocí instalačního programu laravel a můžeme jej nainstalovat pomocí skladatele PHP. V tomto tutoriálu nainstaluji Laravel vytvořením nového projektu pomocí příkazu skladatel.

Spusťte níže uvedený příkaz a nainstalujte Laravel.

composer create-project laravel/laravel .

Počkejte na dokončení instalace Laravel. Může to chvíli trvat.

Po dokončení instalace změňte vlastníka webového kořenového adresáře Laravel na uživatele 'nginx' a změňte oprávnění adresáře úložiště na 755 pomocí příkazů níže.

chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage

Instalace Laravelu byla dokončena.

Krok 8 – Konfigurace SELinux

V tomto tutoriálu poběží Laravel v režimu SELinux 'Enforcing'. Chcete-li zkontrolovat stav SELinux, spusťte níže uvedený příkaz.

sestatus

Výsledkem je, že SELinux běží v režimu 'Enforcing ' režim.

Dále musíme nainstalovat nástroje pro správu SELinux pro CentOS 7.

Nainstalujte 'policycoreutils-python' na server.

yum -y install policycoreutils-python

Nyní musíme změnit kontext adresářů Laravel a poté změny aplikovat pomocí příkazu restorecon. Spusťte příkazy pro správu SELinux, jak je uvedeno níže.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'

Konfigurace SELinux pro Laravel je hotová.

Krok 9 – Testování Laravel

Otevřete webový prohlížeč a zadejte Laravel URL vašeho serveru. Definovali jsme název domény pro Laravel v souboru virtuálního hostitele Nginx. Moje je laravel.hakase-labs.co .

Když navštívíte název domény, uvidíte domovskou stránku Laravel.

Instalace Laravel s Nginx, PHP-FPM7 a MariaDB na CentOS 7 byla úspěšná.


Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Nainstalujte Magento na CentOS 7 s Nginx, PHP-FPM a MariaDB

  3. Jak nainstalovat Let’s Encrypt na CentOS 8 s Nginx

  1. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  2. Jak nainstalovat Nextcloud s Nginx a PHP 7.3 na CentOS 8

  3. Jak nainstalovat ownCloud 9.1 s Nginx a MariaDB na CentOS 7

  1. Jak nainstalovat WordPress s HHVM a Nginx na CentOS 7

  2. Jak nainstalovat Nextcloud s Nginx a PHP7-FPM na CentOS 7

  3. Jak nainstalovat a nakonfigurovat Askbot s Nginx na CentOS 7