Чтобы установить Laravel в подпапке вашего веб-сервера и обеспечить доступ к нему по адресу `my-laravel-app.ru/laravel/`, необходимо правильно настроить маршруты и конфигурацию вашего приложения. Вот шаги, которые помогут вам это сделать:
### 1. Настройка структуры папок
У вас уже есть правильная структура папок, но убедитесь, что файлы Laravel находятся в нужных директориях:
```
public_html
-- laravel
---- public
---- app
---- routes
---- ...
```
### 2. Настройка `.htaccess`
Файл `.htaccess` в папке `public_html/laravel/` нужно настроить следующим образом:
```apache
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /laravel/
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
```
### 3. Настройка `index.php`
Поскольку Laravel выдает 404 ошибки, очень вероятно, что проблема связана с тем, что Laravel не знает, где ему искать свои ресурсы. Вам нужно отредактировать файл `index.php`, который находится в папке `public` вашего Laravel-приложения.
Откройте файл `public/index.php` и измените следующие строки:
```php
require __DIR__.'/../vendor/autoload.php';
$app = require_once __DIR__.'/../bootstrap/app.php';
```
Замените на:
```php
require __DIR__.'/../../vendor/autoload.php';
$app = require_once __DIR__.'/../../bootstrap/app.php';
```
Таким образом, вы укажете Laravel, что директория `vendor` и `bootstrap` находятся две папки вверх от текущей директории `public`.
### 4. Настройка конфигурации URL
Вам также нужно изменить некоторые настройки в файле `.env`, чтобы Laravel знал, что он работает в подпапке. Убедитесь, что `APP_URL` в файле `.env` настроено следующим образом:
```
APP_URL=http://my-laravel-app.ru/laravel
```
### 5. Проверка доступа к статическим ресурсам
Если у вас есть статические ресурсы (например, CSS, JS, изображения и т.д.), убедитесь, что они загружаются правильно. Для этого убедитесь, что все ссылки к ним используют `{{ asset('path/to/resource') }}`.
### 6. Проверьте права на папки
Убедитесь, что у вашего веб-сервера есть права доступа к нужным папкам и что все зависимости загружены корректно. Выполните команду composer:
```bash
composer install
```
### 7. Тестирование
Теперь попробуйте снова открыть ваш сайт по адресу `http://my-laravel-app.ru/laravel/` и проверьте, работает ли всё корректно. Если вы всё сделали правильно, Laravel должен отображать главную страницу приложения.
Если после всех этих изменений все еще возникают проблемы, проверьте логи вашего веб-сервера и логи Laravel (`storage/logs/laravel.log`) на наличие ошибок. Это может дать дополнительные подсказки о том, что не так настроено.