этот проект laravel работает без сбоев на локальном компьютере, но я не могу понять, как запустить его на сервере, я пробовал много трюков, ничего не помогло
Я загрузил весь проект в корень (каталог над public_html) в папку с именем laravel, я сделал все, что касается базы данных и .env.
затем я переместил содержимое общедоступной папки в каталог public_html и установил путь внутри index.php __DIR__.'/../laravel/vendor/autoload.php';, а также путь к начальной загрузке и хранилищу.
сервер работает на liteSpeed, вот коды .httaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
index.php
<?php
use Illuminate\Http\Request;
define('LARAVEL_START', microtime(true));
// Determine if the application is in maintenance mode...
if (file_exists($maintenance = __DIR__.'/../laravel/storage/framework/maintenance.php')) {
require $maintenance;
}
// Register the Composer autoloader...
require __DIR__.'/../laravel/vendor/autoload.php'; // bootstrap folder of laravel is ther
// Bootstrap Laravel and handle the request...
(require_once __DIR__.'/../laravel/bootstrap/app.php')
->handleRequest(Request::capture())
;
но я все равно получаю HTTP ERROR 500 на веб-странице, и siteurl/public автоматически добавляется к URL(/public)!
и внутри cPanel в текстовом файле с именем error_log я получаю
[15-Jun-2024 15:14:17 UTC] PHP Warning: require(/home/klassir2/public_html/../laravel/vendor/autoload.php): Failed to open stream: No such file or directory in /home/klassir2/public_html/index.php on line 13
Кто-нибудь успешно развернул laravel11 с inertia.js на общем хостинге?
Спасибо
спасибо @subha, в моей панели управления нет доступа к терминалу
поделитесь своим index.php и его местоположением
@cantdocpp спасибо за ответ, вопрос обновлен
вы пытались запустить composer install перед загрузкой в cpanel? Помните, что вам нужно запустить composer install перед загрузкой приложения на панель, потому что в CPANEL нет композитора.
@cantdocpp спасибо, я сделаю это как можно скорее, есть еще что-нибудь сделать? все остальное, что я упомянул, в порядке?
Если вы используете inertia с vue, вам также придется запустить npm run build перед загрузкой приложения в CPANEL. Шаги будут следующими: запустите composer install -> запустите npm run build -> удалите папку node_modules -> загрузите приложение на панель, используя тот же каталог, который вы использовали ранее в своем вопросе.
Дай мне знать, добился ты успеха или нет. Также помните, что вам не нужно ничего делать с файлом .htaccess.
@cantdocpp, я получаю эту ошибку: Манифест Vite не найден по адресу: /home/klassir2/laravel/public/build/manifest.json. Запустите npm run dev в своем терминале и обновите страницу. но у меня нет доступа к терминалу
вы запускали npm run build перед загрузкой в cpanel? Если да, то переместите СОДЕРЖИМОЕ ПАПКИ public в папку public_html в CPANEL. Итак, в вашем приложении теперь есть две общедоступные папки: внутри вашей laravel/public и внутри вашей public_html папки.
@спасибо чувак, ты дал мне подсказку, я сделал это без использования терминала, большое тебе спасибо
старый ответ. оно должно быть действительным. stackoverflow.com/a/59116784/6802917
@cantdocpp, просто скопируй текст и изображения моего поста, я удалю свой, ты его опубликуй
Привет, спасибо, что нашли время написать руководство ниже. Я также внес свою лепту и приложил все усилия, чтобы добавить к этому свои знания. Вы можете проголосовать за мой ответ и отметить его, чтобы другие люди почувствовали помощь от наших усилий. Спасибо
@cantdocpp, спасибо, друг, желаю тебе удачи






Этот процесс одинаков для развертывания всех приложений Laravel, независимо от того, находится ли оно в cpanel, cyberpanel или hpanel. Но с inertia вам просто нужно собрать и связать интерфейс перед развертыванием.
Все, что вам нужно сделать, это выполнить этот шаг один за другим (последовательно),
npm run buildcomposer installnode_modulesПосле последовательного выполнения всех вышеперечисленных шагов вы можете заархивировать свой проект laravel в корневом каталоге (не внутри общедоступного html), создать папку с именем laravel, загрузить и разархивировать его туда.
переместите содержимое общедоступного каталога в public_html (но не удаляйте пустую общедоступную папку, которая находится внутри папки laravel)
затем создайте свою базу данных, ее пользователя и пароль, импортируйте свою базу данных в phpmyadmin, затем обновите .env.
если вы используете MySQL, вы можете отредактировать файл .env, указав информацию о вашей базе данных:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE = "mydatabase"
DB_USERNAME = "user"
DB_PASSWORD = "password"
затем обновите index.php внутри каталога public_html, ссылаясь на загруженную вами папку проекта laravel, например:
if (file_exists($maintenance = __DIR__.'/../laravel/storage/framework/maintenance.php')) {
require $maintenance;
}
// refering to that specific folder
require __DIR__.'/../laravel/vendor/autoload.php';
(require_once __DIR__.'/../laravel/bootstrap/app.php')
Теперь, если вы введете адрес своего сайта в браузере, вы получите vite manifest not found at:
просто скопируйте папку сборки из каталога public_html в общую папку каталога laravel (вы там разархивировали), просто сохраните файл манифеста.json
ты сделал это!
Спасибо автору этого вопроса @ramin safari за то, что он был активным и отзывчивым автором и уделил время созданию основы этого руководства (все, что мне нужно сделать, это отредактировать его руководство). Просто в надежде, что оба наших усилия смогут направить других в будущее.
между вашим подходом и моим есть небольшая разница, я не удалял папку модулей узла, остальное было то же самое
Вам не нужна папка node_modules после запуска сборки npm run. Если вы мне не верите, вы можете проверить это на своем локальном компьютере. Просто запустите npm run build и удалите папку node_modules. И убедитесь, что ваше приложение все еще работает. Вот почему я всегда рекомендую удалить node_modules, потому что он тяжелый и замедляет развертывание.
Беги
composer install.