Установка Laravel

Alex

Administrator
Команда форума
LV
0
 
Чтобы установить Laravel, выполните следующее:
  1. По умолчанию, в окружении на хостинге используется PHP 5.6. Согласно требованиям фреймворка нужна версия не ниже 7.3, поэтому версию PHP в консоли на 7.3 или выше.
  2. Загрузите установщик:composer global require laravel/installer
Определите путь к исполняемому файлу Laravel, чтобы он запускался из любого каталога файловой системы:export PATH="$PATH:~/.config/composer/vendor/bin"
Перейдите в нужный каталог и создайте новый проект:laravel new имя_проекта

Корневой каталог​

Если корневой каталог сайта отличается от www (обычно файлы проекта на Laravel находятся в каталоге public), то можно задать нужный корневой каталог в или прописать следующие директивы в файле :
# www/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
</IfModule>
Также (если корневой каталог задаётся через .htaccess) нужно создать файл .htaccess в каталоге public и прописать в нём такие директивы:

# www/public/.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
 

Альтернативные способы изменения​


С помощью замены index.php​

Если нужно разместить сайт не в корневом каталоге www, а, например, в каталоге www/ru, создайте файл index.php со следующим содержимым:
<?php
require_once("ru/index.php");
Где ru/index.php — это путь к индексному файлу вашего сайта.
Созданный файл разместите в каталоге www и для него права 750.
Также обязательно выставьте значение параметра на уровень выше для доступа к другим каталогам сайта.

С помощью директив в .htaccess​

В некоторых требуется, чтобы основной каталог сайта, в котором размещается индексный файл, отличался от www. К примеру, Zend Framework — здесь требуется явное указание основного каталога сайта public. Обойти это можно, создав в корневом каталоге сайта (www) файл с таким содержимым:
DirectoryIndex /public/index.php
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.+) $1 [L]
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.+) /public/$1 [L]
Ещё вариант:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/web/.*$
RewriteRule ^(.*)$ /web/$1 [QSA,L]
И ещё:

RewriteEngine on
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

Возможные проблемы​

Ошибки при открытии сайта, которые могут быть связаны с корневым каталогом:
  • Если возникает ошибка 403, проверьте наличие индексного файла в корневом каталоге и правильность размещения файлов сайта.
  • Если возникает ошибка 404, убедитесь, что путь, указанный в поле « », существует на хостинге.
 

Настройка подключения к базе данных в Laravel​


в Laravel указываются в конфигурационном файле настройки баз данных:

  • В случае использования файла .env нужно изменять строки:DB_HOST=хост
    DB_PORT=3306
    DB_DATABASE=база_данных
    DB_USERNAME=логин
    DB_PASSWORD=пароль
В случае использования файла config/database.php нужно изменять строки:'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'хост'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'база_данных'),
'username' => env('DB_USERNAME', 'логин'),
'password' => env('DB_PASSWORD', 'пароль'),
'unix_socket' => env('DB_SOCKET', ''),
Обратите внимание, что после правок конфигурационных файлов может потребоваться обновление кеша. Обновление выполняется командами:

php artisan config:clear
php artisan config:cache
Выбрать нужную версию PHP можно по .

Изменения в файлы можно вносить с помощью или любого .
 

Настройка Redis в Laravel​


Для настройки в Laravel выполните следующее:


  1. Отредактируйте файл .env, расположенный в корневом каталоге проекта:
    • Найдите блок конфигурации Redis:REDIS_HOST=127.0.0.1
      REDIS_PASSWORD=null
      REDIS_PORT=6379
Замените строки на следующие:REDIS_HOST=/home/example/. /redis.sock
REDIS_DB=0
REDIS_CACHE_DB=1
REDIS_PREFIX=doepref_
    • В строке с параметром REDIS_HOST вместо example укажите , в котором размещён сайт.
    • В параметрах REDIS_DB и REDIS_CACHE_DB укажите уникальный идентификатор базы данных Redis.
    • В параметре REDIS_PREFIX укажите необходимый префикс.
  • Отредактируйте файл database.php, расположенный в каталоге config/:
    • Найдите в файле код подключения к Redis, он будет начинаться с 'redis' => [. Настройка подключения должна выглядеть примерно так: 'redis' => [

      'client' => env('REDIS_CLIENT', 'phpredis'),

      'options' => [
      'cluster' => env('REDIS_CLUSTER', 'redis'),
      'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
      ],

      'default' => [
      'host' => env('REDIS_HOST'),
      'password' => env('REDIS_PASSWORD'),
      'port' => env('REDIS_PORT'),
      'database' => env('REDIS_DB', 0),
      ],

      'cache' => [
      'host' => env('REDIS_HOST'),
      'password' => env('REDIS_PASSWORD'),
      'port' => env('REDIS_PORT'),
      'database' => env('REDIS_CACHE_DB', 1),
      ],

      ],
Проверьте работу Redis. Для теста отредактируйте файл web.php, расположенный в каталоге routes/, добавив в него следующий код:Route::get('redis-test', function (){
if(!Redis::get('test_time')){
Redis::set('test_time', (DATE_RFC822));
}
return "Date inserted in database: ".Redis::get('test_time');
});
  1. Откройте ваш проект по ссылке , где вместо example.com укажите название вашего домена. После перехода должно выводится время первого обращения к этой ссылке.
 
Сверху