Fixed installer

This commit is contained in:
Yoann Lecuyer 2016-05-21 13:23:18 -05:00
parent 82fff62d2e
commit eb3d1b6123
4 changed files with 64 additions and 22 deletions

View File

@ -48,6 +48,7 @@ class InstallerController extends Controller
public_path(config('attendize.event_pdf_tickets_path')),
base_path('bootstrap/cache'),
base_path('.env'),
base_path(),
];
/*
@ -60,6 +61,15 @@ class InstallerController extends Controller
'fileinfo',
'tokenizer',
'gd',
'zip',
];
/*
* Optional PHP extensions
*/
$data['optional_requirements'] = [
'pdo_pgsql',
'pdo_mysql',
];
return view('Installer.Installer', $data);
@ -75,7 +85,7 @@ class InstallerController extends Controller
{
set_time_limit(300);
$database['type'] = 'mysql';
$database['type'] = $request->get('database_type');
$database['host'] = $request->get('database_host');
$database['name'] = $request->get('database_name');
$database['username'] = $request->get('database_username');
@ -98,25 +108,25 @@ class InstallerController extends Controller
$is_db_valid = self::testDatabase($database);
if ($is_db_valid === 'yes') {
return reponse()->json([
return [
'status' => 'success',
'message' => 'Success, Your connection works!',
'test' => 1,
]);
];
}
return response()->json([
return [
'status' => 'error',
'message' => 'Unable to connect! Please check your settings',
'test' => 1,
]);
];
}
$config = "APP_ENV=production\n".
"APP_DEBUG=false\n".
"APP_URL={$app_url}\n".
"APP_KEY={$app_key}\n\n".
"DB_TYPE=mysql\n".
"APP_KEY={$app_key}\n".
"DB_TYPE={$database['type']}\n".
"DB_HOST={$database['host']}\n".
"DB_DATABASE={$database['name']}\n".
"DB_USERNAME={$database['username']}\n".
@ -126,7 +136,7 @@ class InstallerController extends Controller
"MAIL_ENCRYPTION={$mail['encryption']}\n".
"MAIL_HOST={$mail['host']}\n".
"MAIL_USERNAME={$mail['username']}\n".
"MAIL_FROM_NAME={$mail['from_name']}\n".
"MAIL_FROM_NAME=\"{$mail['from_name']}\"\n".
"MAIL_FROM_ADDRESS={$mail['from_address']}\n".
"MAIL_PASSWORD={$mail['password']}\n\n";
@ -135,13 +145,16 @@ class InstallerController extends Controller
fclose($fp);
Config::set('database.default', $database['type']);
Config::set('database.connections.mysql.host', $database['host']);
Config::set('database.connections.mysql.database', $database['name']);
Config::set('database.connections.mysql.username', $database['username']);
Config::set('database.connections.mysql.password', $database['password']);
Config::set("database.connections.{$database['type']}.host", $database['host']);
Config::set("database.connections.{$database['type']}.database", $database['name']);
Config::set("database.connections.{$database['type']}.username", $database['username']);
Config::set("database.connections.{$database['type']}.password", $database['password']);
DB::reconnect();
//force laravel to regenerate a new key (see key:generate sources)
Config::set('app.key', $app_key);
Artisan::call('key:generate');
Artisan::call('migrate', ['--force' => true]);
if (Timezone::count() == 0) {
Artisan::call('db:seed', ['--force' => true]);
@ -158,10 +171,10 @@ class InstallerController extends Controller
private function testDatabase($database)
{
Config::set('database.default', $database['type']);
Config::set('database.connections.mysql.host', $database['host']);
Config::set('database.connections.mysql.database', $database['name']);
Config::set('database.connections.mysql.username', $database['username']);
Config::set('database.connections.mysql.password', $database['password']);
Config::set("database.connections.{$database['type']}.host", $database['host']);
Config::set("database.connections.{$database['type']}.database", $database['name']);
Config::set("database.connections.{$database['type']}.username", $database['username']);
Config::set("database.connections.{$database['type']}.password", $database['password']);
try {
DB::reconnect();

View File

@ -107,7 +107,7 @@ return [
|
*/
'log' => env('LOG', 'daily'),
'log' => env('LOG', 'errorlog'),
/*
|--------------------------------------------------------------------------

View File

@ -62,7 +62,7 @@
@if(!extension_loaded($requirement))
<div class="alert alert-danger">
Warning: <b>{{$requirement}}</b> extension is not loaded
Error: <b>{{$requirement}}</b> extension is not loaded
</div>
@else
<div class="alert alert-success">
@ -72,6 +72,22 @@
@endforeach
<h3>PHP Optional Requirements Check</h3>
@foreach($optional_requirements as $optional_requirement)
@if(!extension_loaded($optional_requirement))
<div class="alert alert-warning">
Warning: <b>{{$optional_requirement}}</b> extension is not loaded
</div>
@else
<div class="alert alert-success">
Success: <b>{{$optional_requirement}}</b> extension is loaded
</div>
@endif
@endforeach
{!! Form::open(array('url' => route('postInstaller'), 'class' => 'installer_form')) !!}
<h3>App Settings</h3>
@ -85,14 +101,19 @@
)) !!}
</div>
<h3>Database Settings</h3>
<div class="form-group">
{!! Form::label('database_name', 'Database Name', array('class'=>'required control-label ')) !!}
{!! Form::text('database_name', Input::old('database_name'),
{!! Form::label('database_type', 'Database Type', array('class'=>'required control-label ')) !!}
{!! Form::select('database_type', array(
'pgsql' => "Postgres",
'mysql' => "MySQL",
), Input::old('database_type'),
array(
'class'=>'form-control'
)) !!}
</div>
<div class="form-group">
{!! Form::label('database_host', 'Database Host', array('class'=>'control-label required')) !!}
{!! Form::text('database_host', Input::old('database_host'),
@ -102,6 +123,14 @@
)) !!}
</div>
<div class="form-group">
{!! Form::label('database_name', 'Database Name', array('class'=>'required control-label ')) !!}
{!! Form::text('database_name', Input::old('database_name'),
array(
'class'=>'form-control'
)) !!}
</div>
<div class="form-group">
{!! Form::label('database_username', 'Database Username', array('class'=>'control-label required')) !!}
{!! Form::text('database_username', Input::old('database_username'),

View File

@ -10,7 +10,7 @@
@yield('head')
<!--JS-->
{!! HTML::script('vendor/jquery/jquery.js') !!}
{!! HTML::script('vendor/jquery/dist/jquery.min.js') !!}
<!--/JS-->
<!--Style-->
@ -78,4 +78,4 @@
{!!HTML::script('assets/javascript/backend.js')!!}
</body>
@include('Shared.Partials.GlobalFooterJS')
</html>
</html>