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á.