将Laravel 5.6项目部署到共享主机

问题描述 投票:-1回答:1

在我的laravel 5.6项目部署共享主机期间,我遇到了一个主要问题,看来我的刀片无法运行。我已将我的所有项目文件复制到我的根目录中的新文件夹即“muxproject”,然后我将laravel项目的公共文件夹中的所有文件复制到public_html,并且我已将index.php文件更改为如下

<?php
define('LARAVEL_START', microtime(true));

require __DIR__.'/../muxproject/vendor/autoload.php'; //changed

$app = require_once __DIR__.'/../muxproject/bootstrap/app.php'; //changed

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

$kernel->terminate($request, $response);

当我导航到链接http://example.com/登录页面根据我在web.php中的逻辑出现并在登录成功后要求登录用户被重定向到链接http://example.com/home没有问题仍然在这里但当我导航到http://example.com/register什么都没有加载除了我的标题,页脚和侧边栏我的注册页面不会出现。与http://example.com/branchhttp://example.com/userbranch的情况相同以下是我的web.php文件的代码

<?php

Route::middleware(['auth'])->group(function (){
    Route::get('/home', 'HomeController@index')->name('home');
    Route::get('/branch','Branch\BranchController@index')->name('index');
    Route::get('/userbranch','Branch\UserBranchController@index')->name('index');
    Route::get('/course', 'Course\CourseMasterController@index')->name('index');
    Route::get('/coursedetail','Course\CourseDetailController@index')->name('idex');
    Route::get('/studentenquiry','Enquiry\StudentEnquiryController@index')->name('index');
});

Route::get('/', function () {
    if(\Illuminate\Support\Facades\Auth::check())
        return view('home');
    return view('welcome');
});

Auth::routes();
Route::get('delete/{id}','Auth\RegisterController@destroy');
Route::patch('update','Auth\RegisterController@update')->name('update');

Route::patch('/update/branch','Branch\BranchController@update')->name('update');
Route::post('/storebranch','Branch\BranchController@store')->name('store');
Route::post('/storebranchuser', 'Branch\UserBranchController@store')->name('store');
Route::get('/delete/branch/{id}','Branch\BranchController@destroy');
Route::get('/userbranch/delete/{id}', 'Branch\UserBranchController@destroy');
Route::patch('/update/userbranch','Branch\UserBranchController@update')->name('update');
Route::post('/storecourse','Course\CourseMasterController@store')->name('store');
Route::get('delete/course/{id}','Course\CourseMasterController@destroy');
Route::patch('update/course', 'Course\CourseMasterController@update')->name('update');

以下是RegisterUsersController的代码,用于显示注册表单

public function showRegistrationForm()
    {
        $userData = \App\User::all();
        return view('auth.register',compact('userData'));
    }

@section('content')
 //
@endsection

我的刀片中的内容register.blade.php,branch.blade.php和userbranch.blade.php无法正常工作,我只是在页面,页脚和侧边栏上只有空页面,只是在共享主机上每个都可以正常工作本地

下面是.htaccess文件的代码

<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]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

请帮助我这方面,我已经经历了很多教程,我只是想通了由于某种原因,@ section('content')之间的代码没有加载;

php laravel web-deployment laravel-5.6
1个回答
0
投票

为什么你复制了文件并粘贴在共享主机中并更改了laravel的默认文件?

我想你应该阅读这个答案并理解然后部署你的项目

你可以用两种方式做到这一点

第一种方式(建议但需要花时间学习):

1 - 你应该学习如何使用git (version control system)。当你了解它,那么你将能够在git服务器上保存你的laravel项目。学习git时你会读到有关克隆的知识,它会让你从git下载你的项目到任何服务器,任何计算机。起初可能很难理解,但相信我它非常有用,你应该使用它。访问github.comgitlab.combitbucket.com

2-当你学会了如何使用git然后将你的代码保存到git。然后使用git bash(用于windows)或使用终端用于mac / linux这些是命令行工具。使用它,您可以连接到您希望托管站点的服务器。使用ssh登录共享主机服务器并转到public_html并在那里克隆你的laravel prpject。克隆后,转到项目目录创建.env文件并根据您的设置进行更改,然后运行composer install(它将安装项目所需的所有软件包)。然后使用cpanel和hit domain将laravel项目的根目录设置为您的域。你应该能够看到你的laravel工作

第二种方式:(不推荐但很快)

  1. 将项目文件夹除供应商文件夹复制到共享主机服
  2. 打开你的电脑终端,连接服务器,进入laravel项目目录,安装laravel。
  3. 将域设置为laravel项目根目录并命中域
© www.soinside.com 2019 - 2024. All rights reserved.