&1" > /etc/cron.d/yana-server
unset($myUser);
error_reporting(E_ALL);
ini_set('display_errors','On');
if(!file_exists(__DIR__.'/constant.php')) copy(__DIR__.'/constant.sample.php', __DIR__.'/constant.php');
require_once(__DIR__.'/constant.php');
function __autoload($class_name) {
include 'classes/'.$class_name . '.class.php';
}
?>
Installation
0) throw new Exception("La base ".DB_NAME." existe déjà, pour recommencer l'installation, merci de supprimer le fichier ".DB_NAME." puis de revenir sur cette page");
//Instanciation des managers d'entités
$user = new User();
$configuration = new Configuration();
$right = new Right();
$rank = new Rank();
$section = new Section();
$event = new Event();
$client = new Client();
$device = new Device();
$personnality = new Personality();
if(isset($_POST['url'])){
$const = file_get_contents("constant.php");
file_put_contents('constant.php', (preg_replace("/(define\(\'YANA_URL\'\,\')(.*)('\)\;)/", "$1".$_POST['url']."$3", $const)));
}
//Création des tables SQL
$configuration->create();
$user->create();
$right->create();
$rank->create();
$section->create();
$event->create();
$device->create();
$personnality->create();
$personnality->birth();
$configuration->put('UPDATE_URL','http://update.idleman.fr/yana?callback=?');
$configuration->put('DEFAULT_THEME','default');
$configuration->put('COOKIE_NAME','yana');
$configuration->put('COOKIE_LIFETIME','7');
$configuration->put('VOCAL_ENTITY_NAME','YANA');
$configuration->put('PROGRAM_VERSION','3.0.6');
$configuration->put('HOME_PAGE','index.php');
$configuration->put('VOCAL_SENSITIVITY','0.0');
$configuration->put('YANA_LATITUDE','24.8235817');
$configuration->put('YANA_LONGITUDE','-75.5070352');
//Création du rang admin
$rank = new Rank();
$rank->setLabel('admin');
$rank->save();
//Déclaration des sections du programme
$sections = array('event','vocal','user','plugin','configuration','admin');
//Création des sections déclarées et attribution de tous les droits sur toutes ces sections pour l'admin
foreach($sections as $sectionName){
$s = New Section();
$s->setLabel($sectionName);
$s->save();
$r = New Right();
$r->setSection($s->getId());
$r->setRead('1');
$r->setDelete('1');
$r->setCreate('1');
$r->setUpdate('1');
$r->setRank($rank->getId());
$r->save();
}
$personalities = array('John Travolta','Jeff Buckley','Tom Cruise','John Lennon','Emmet Brown','Geo trouvetou','Luke Skywalker','Mac Gyver','Marty McFly','The Doctor');
$im = $personalities[rand(0,count($personalities)-1)];
list($fn,$n) = explode(' ',$im);
//Creation du premier compte et assignation en admin
$user->setMail($_POST['email']);
$user->setPassword($_POST['password']);
$user->setLogin($_POST['login']);
$user->setFirstName($fn);
$user->setName($n);
$user->setToken(sha1(time().rand(0,1000)));
$user->setState(1);
$user->setRank($rank->getId());
$user->save();
global $myUser;
$myUser = $user;
foreach(array('radioRelay','wireRelay','vocal_infos','speechcommands','profile','room','story','dashboard','dashboard-monitoring') as $plugin):
Plugin::enabled($plugin.'-'.$plugin);
endforeach;
$notices = array();
if(function_exists('curl_init')){
$url="http://idleman.fr/yana/notice.php?code=justavoidspamrequest";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$html = curl_exec($ch);
curl_close($ch);
if($html!==false)
$notices = json_decode($html,true);
if(!is_array($notices)) $notices = array();
}
?>
Installation terminée: L'installation est terminée, vous devez supprimer le fichier yana-server/install.php par mesure de sécurité, puis revenir sur l'accueil.
: .
Echec de l'Installation : getMessage(); ?> Réessayer.
".$path_yana." n'est pas accessible en écriture. Pour résoudre ce problème, merci de taper la commande suivante dans le shell sudo chown -R www-data:www-data ".$path_yana." ";
if(!class_exists('SQLite3')) $tests['error'][] = "Le pré-requis SQLITE3 n'est pas installé. Pour résoudre ce problème, merci de taper la commande suivante dans le shell sudo apt-get install sqlite3 php-sqlite3 ";
$out = exec('whereis gpio',$out);
if($out == ''){
$tests['warning'][] = "La librairie Wiring pi ne semble pas installé sur le rpi, merci de vérifier l'existence du binaire GPIO sur la machine.";
}else{
require_once(__DIR__.'/classes/Gpio.class.php');
$out = trim(str_replace('gpio: ','',$out));
if($out != GPIO::GPIO_DEFAULT_PATH) $tests['warning'][] = "Le chemin de l'executable de wiring pi est à modifier dans classes/Gpio.class.php, remplacer ".GPIO::GPIO_DEFAULT_PATH." par ".$out.".";
}
if(function_exists('posix_getpwuid')){
$permissions = array('root:www-data'=>'plugins/relay/radioEmission');
foreach($permissions as $key=>$file){
if(file_exists($file)){
list($o,$g) = explode(':',$key);
$owner = posix_getpwuid(fileowner($file));
$group = posix_getgrgid(filegroup($file));
if($owner['name']!=$o || $group['name'] !=$g) $tests['warning'][] = 'Le fichier '.$path_yana.$file.' devrait avoir '.$o.' comme proprietaire et '.$g.' comme groupe, '.$path_yana.$file.' pourrait ne pas fonctionner comme attendu, pour résoudre le problème, tapez la commande sudo chown root:www-data '.$path_yana.$file.' && sudo chmod +s '.$path_yana.$file.'';
}
}
}else{
$tests['warning'][] = 'Impossible de vérifier les droits sur les fichiers sensibles, librairie posix manquante';
}
foreach($tests as $type=>$messages){
foreach($messages as $message){
echo
'