This commit is contained in:
denisdulici 2017-09-23 18:43:09 +03:00
parent 8bb636d7ad
commit 447f314eb5
9 changed files with 47 additions and 19 deletions

View File

@ -27,7 +27,7 @@ class Kernel extends ConsoleKernel
protected function schedule(Schedule $schedule) protected function schedule(Schedule $schedule)
{ {
// Not installed yet // Not installed yet
if (env('DB_DATABASE', '') == '') { if (!env('APP_INSTALLED')) {
return; return;
} }

View File

@ -61,7 +61,7 @@ class Database extends Controller
'database' => $request['database'], 'database' => $request['database'],
'username' => $request['username'], 'username' => $request['username'],
'password' => $request['password'], 'password' => $request['password'],
'driver' => 'mysql', 'driver' => env('DB_CONNECTION', 'mysql'),
'port' => env('DB_PORT', '3306'), 'port' => env('DB_PORT', '3306'),
]); ]);
@ -105,18 +105,20 @@ class Database extends Controller
], ],
])->save(); ])->save();
$con = env('DB_CONNECTION', 'mysql');
// Change current connection // Change current connection
$mysql = Config::get('database.connections.mysql'); $db = Config::get('database.connections.' . $con);
$mysql['host'] = $request['hostname']; $db['host'] = $request['hostname'];
$mysql['database'] = $request['database']; $db['database'] = $request['database'];
$mysql['username'] = $request['username']; $db['username'] = $request['username'];
$mysql['password'] = $request['password']; $db['password'] = $request['password'];
$mysql['prefix'] = $prefix; $db['prefix'] = $prefix;
Config::set('database.connections.mysql', $mysql); Config::set('database.connections.' . $con, $db);
DB::purge('mysql'); DB::purge($con);
DB::reconnect('mysql'); DB::reconnect($con);
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Install; namespace App\Http\Controllers\Install;
use DotenvEditor; use DotenvEditor;
use File;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
class Requirements extends Controller class Requirements extends Controller
@ -19,7 +20,9 @@ class Requirements extends Controller
if (empty($requirements)) { if (empty($requirements)) {
// Create the .env file // Create the .env file
$this->createEnvFile(); if (!File::exists(base_path('.env'))) {
$this->createEnvFile();
}
redirect('install/language')->send(); redirect('install/language')->send();
} else { } else {
@ -80,6 +83,10 @@ class Requirements extends Controller
$requirements[] = trans('install.requirements.extension', ['extension' => 'cURL']); $requirements[] = trans('install.requirements.extension', ['extension' => 'cURL']);
} }
if (!extension_loaded('xml')) {
$requirements[] = trans('install.requirements.extension', ['extension' => 'XML']);
}
if (!extension_loaded('zip')) { if (!extension_loaded('zip')) {
$requirements[] = trans('install.requirements.extension', ['extension' => 'ZIP']); $requirements[] = trans('install.requirements.extension', ['extension' => 'ZIP']);
} }
@ -120,13 +127,17 @@ class Requirements extends Controller
'key' => 'APP_ENV', 'key' => 'APP_ENV',
'value' => 'production', 'value' => 'production',
], ],
[
'key' => 'APP_INSTALLED',
'value' => 'false',
],
[ [
'key' => 'APP_KEY', 'key' => 'APP_KEY',
'value' => 'base64:'.base64_encode(random_bytes(32)), 'value' => 'base64:'.base64_encode(random_bytes(32)),
], ],
[ [
'key' => 'APP_DEBUG', 'key' => 'APP_DEBUG',
'value' => 'false', 'value' => 'true',
], ],
[ [
'key' => 'APP_LOG_LEVEL', 'key' => 'APP_LOG_LEVEL',

View File

@ -6,6 +6,7 @@ use Artisan;
use App\Http\Requests\Install\Setting as Request; use App\Http\Requests\Install\Setting as Request;
use App\Models\Auth\User; use App\Models\Auth\User;
use App\Models\Company\Company; use App\Models\Company\Company;
use DotenvEditor;
use File; use File;
use Illuminate\Routing\Controller; use Illuminate\Routing\Controller;
use Setting; use Setting;
@ -85,6 +86,18 @@ class Settings extends Controller
//Artisan::call('config:cache'); //Artisan::call('config:cache');
//Artisan::call('route:cache'); //Artisan::call('route:cache');
// Update .env file
DotenvEditor::setKeys([
[
'key' => 'APP_INSTALLED',
'value' => 'true',
],
[
'key' => 'APP_DEBUG',
'value' => 'false',
],
])->save();
// Rename the robots.txt file // Rename the robots.txt file
try { try {
File::move(base_path('robots.txt.dist'), base_path('robots.txt')); File::move(base_path('robots.txt.dist'), base_path('robots.txt'));

View File

@ -34,7 +34,7 @@ class Kernel extends HttpKernel
\Illuminate\View\Middleware\ShareErrorsFromSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class, \App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class, \Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\CheckIfInstalled::class, \App\Http\Middleware\RedirectIfNotInstalled::class,
\App\Http\Middleware\LoadSettings::class, \App\Http\Middleware\LoadSettings::class,
], ],

View File

@ -3,8 +3,9 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
use File;
class CheckIfInstalled class RedirectIfNotInstalled
{ {
/** /**
* Handle an incoming request. * Handle an incoming request.
@ -15,8 +16,8 @@ class CheckIfInstalled
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
// DB_DATABASE not empty means installed // Check if .env file exists
if (env('DB_DATABASE', '') != '') { if (File::exists(base_path('.env'))) {
return $next($request); return $next($request);
} }

View File

@ -18,7 +18,7 @@ class All
public function compose(View $view) public function compose(View $view)
{ {
// Make sure it's installed // Make sure it's installed
if (env('DB_DATABASE', '') != '') { if (env('APP_INSTALLED')) {
// Share date format // Share date format
$view->with(['date_format' => $this->getCompanyDateFormat()]); $view->with(['date_format' => $this->getCompanyDateFormat()]);
} }

View File

@ -31,7 +31,7 @@ class AppServiceProvider extends ServiceProvider
*/ */
public function register() public function register()
{ {
if (env('APP_DEBUG')) { if (env('APP_INSTALLED') && env('APP_DEBUG')) {
$this->app->register(\Barryvdh\Debugbar\ServiceProvider::class); $this->app->register(\Barryvdh\Debugbar\ServiceProvider::class);
} }

View File

@ -133,6 +133,7 @@ Route::group(['middleware' => ['guest', 'language']], function () {
}); });
Route::group(['prefix' => 'install'], function () { Route::group(['prefix' => 'install'], function () {
Route::get('/', 'Install\Requirements@show');
Route::get('requirements', 'Install\Requirements@show'); Route::get('requirements', 'Install\Requirements@show');
Route::get('language', 'Install\Language@create'); Route::get('language', 'Install\Language@create');