Seguiu-nos a:
https://www.facebook.com/ebreescool https://twitter.com/ebre_escool https://plus.google.com/b/113949469354046983710/
TODO:
fer com http://hybridauth.sourceforge.net/
mostrar a la web la llista de contribuidors de github!
Afegir a la web botons de github:
https://ghbtns.com/
$ sudo apt-get install libcrypt-smbhash-perl php-fpdf php-pear $ sudo pear install Crypt_CHAP
Cal instal·lar a la carpeta third_party (unc op fet el git clone de ebre-escool):
$ sudo git clone https://github.com/acacha/fpdf-codeigniter
Recursos
Instal·leu Code Igniter seguint els passos de:
CodeIgniter#M.C3.BAltiples_aplicacions_i_una_sola_instal.C2.B7laci.C3.B3_de_code_igniter
I instal·leu les traduccions al català:
CodeIgniter#Traduccions_en_catal.C3.A0
Instal·leu algunes dependències com:
$ sudo apt-get install libcrypt-smbhash-perl php-fpdf php-pear php5-ldap $ sudo pear install Crypt_CHAP
per tal de poder xifrar paraules de pas Windows. També apg per a generar paraules de pas:
$ sudo apt-get install apg
Obtenir el codi:
$ cd /usr/share $ sudo apt-get install git $ sudo git clone https://github.com/acacha/ebre-escool
Ara cal instal·lar les aplicacions de tercers:
$ cd /usr/share/ebre-escool/application/third_party $ sudo git clone https://github.com/acacha/grocery-crud $ sudo git clone https://github.com/scoumbourdis/image-crud $ sudo git clone https://github.com/acacha/skeleton $ sudo git clone https://github.com/acacha/fpdf-codeigniter $ sudo git clone https://github.com/google/google-api-php-client $ sudo git clone https://github.com/hybridauth/hybridauth
Configurem apache:
$ sudo ln -s /usr/share/ebre-escool/apache/ebre-escool.conf /etc/apache2/conf.d $ sudo /etc/init.d/apache2 reload
IMPORTANT: Per a les noves versions d'Apache 2.4 o superior
$ sudo ln -s /usr/share/ebre-escool/apache/ebre-escool.conf /etc/apache2/conf-available $ sudo a2enconf ebre-escool $ sudo service apache2 reload
Genereu una paraula de pas aleatòria:
$ sudo apt-get install whois $ mkpasswd 6RqN5CCc1zuVE
Per a més seguretat generant la paraula de pas podeu utilitzar:
$ mkpasswd -5
Creeu la base de dades, l'usuari que hi ha de tenir accés i els privilegis d'accés:
$ sudo mysql -p mysql> CREATE DATABASE ebre_escool; mysql> CREATE USER 'ebre_escool'@'localhost' IDENTIFIED BY '6RqN5CCc1zuVE'; mysql> GRANT ALL PRIVILEGES ON ebre_escool.* TO 'ebre_escool'@'%' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES; mysql> exit;
IMPORTANT: A l'exemple utilitzem tota la estona la paraula de pas creada per mkpasswd. Important que poseu la vostra i no la de la web per raons de seguretat
NOTA: Si pel que sigui necessiteu canviar la paraula de pas de l'usuari:
SET PASSWORD FOR 'ebre_escool'@'%' = PASSWORD('6RqN5CCc1zuVE');
Creem l'estructura de la base de dades:
$ cd /usr/share/ebre-escool $ sudo mysql -p ebre_escool < ebreescool_only_structure.sql
NOTA: Podeu instal·lar una base de dades demo que trobareu a http://acacha.org/~sergi/ebre_escool_anonymous_04_12_2014.sql
Ara configureu l'accés a la base de dades:
$ sudo cp application/config/database.php.example application/config/database.php $ sudo joe application/config/database.php
I poseu correctament les línies:
$db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'ebre_escool'; $db['default']['password'] = '6RqN5CCc1zuVE'; $db['default']['database'] = 'ebre_escool'; $db['default']['dbdriver'] = 'mysql';
Per instal·lar el servidor Ldap seguiu les passes de:
Apartat Instal·lació servidor Ldap
Ara cal configurar l'accés per Ldap. Teniu un fitxer d'exemple:
$ sudo cp application/config/auth_ldap.php.example application/config/auth_ldap.php
IMPORTANT: Els següents passos de configuració de Ldap "només" són necessaris per tal que funcioni l'autenticació d'usuaris per Ldap. És clar, és imprescindible que al servidor Ldap que us connecteu existeixin els usuaris adequats i que configureu els grups/rols d'accés per determinar quins permisos d'accés tindran els usuaris. Vegeu l'apartat Rols
Si voleu utilitzar el reialme d'autenticació Ldap editeu el fitxer i poseu les vostres dades de connexió al servidor Ldap:
$ sudo joe application/config/auth_ldap.php
Poseu els valors del vostre server Ldap. Un exemple:
$config['hosts'] =array('localhost'); $config['ports'] = array(389); $config['basedn'] = 'dc=iesebre,dc=com'; $config['login_attribute'] = 'uid'; $config['proxy_user'] = 'cn=admin,dc=iesebre,dc=com'; $config['proxy_pass'] = 'PASSWORD';
canvieu les dades de l'exemple pel que us pertoqui.
IMPORTANT: Si utilitzeu git com a desenvolupadors, afegiu al fitxer .git/info/exclude els fitxers application/config/auth_ldap.php i application/config/database.php per tal d'ignorar-los per part de git. Consulteu Excloure els fitxers amb dades sensibles. És necessari fer això si feu commits al repositori git del projecte o a repositoris/forks propis sobretot si els repositoris són públics per tal d'evitar publicar dades sensibles com les paraules d'accés a les bases de dades
$ sudo joe .git/info/exclude
I afegiu les línies:
application/config/auth_ldap.php application/config/database.php application/logs/audit.log
NOTA: audit.log és un fitxer que guarda un registre dels accessos al sistema. No cal pujar-lo al repositori és informació diferent a cada instal·lació i a més no cal fer-la pública
Ara cal definir la URL:
$ sudo joe /usr/share/ebre-escool/application/config/config.php
I canvieu la línia:
$config['base_url'] = 'http://localhost/ebre-escool';
per el vostre domini, al exemple www.iesebre.com:
$config['base_url'] = 'http://www.iesebre.com/ebre-escool';
També podeu posar:
$config['base_url'] = 'http://'.$_SERVER['SERVER_NAME'].'/ebre-escool';
Eviteu pujar els canvis a git:
$ sudo git update-index --assume-unchanged application/config/config.php
Ara per accedir a l'aplicació:
http://localhost/ebre-escool
Ara canvieu els permisos de les carpetes:
$ sudo chown www-data:www-data application/logs/
Creació de la carpeta uploads:
$ sudo mkdir -p /usr/share/ebre-escool/uploads/inventory_files $ sudo chown www-data:www-data -R /usr/share/ebre-escool/uploads/inventory_files $ sudo mkdir -p /usr/share/ebre-escool/uploads/person_photos $ sudo cp /usr/share/ebre-escool/assets/avatars/* /usr/share/ebre-escool/uploads/person_photos/ $ sudo chown www-data:www-data -R /usr/share/ebre-escool/uploads/person_photos $ sudo mkdir -p /usr/share/ebre-escool/uploads/qrcodes $ sudo chown www-data:www-data -R /usr/share/ebre-escool/uploads/qrcodes
Ara cal configurar skeleton:
$ sudo cp -r /usr/share/ebre-escool/application/third_party/skeleton/application/config/skeleton_auth.php.example /usr/share/ebre-escool/application/third_party/skeleton/application/config/skeleton_auth.php
Editeu el fitxer:
$ sudo joe /usr/share/ebre-escool/application/third_party/skeleton/application/config/skeleton_auth.php
I poseu les dades que us corresponguin. Assegureu-vos de tenir els rols ben configurats:
assegureu-vos de tenir els rols d'skeleton ben configurats:
$config['roles'] = array( 1 => 'intranet_readonly', 3 => 'intranet_admin', 5 => 'intranet_dataentry', 7 => 'intranet_organizationalunit', 9 => 'intranet_teacher', 11 => 'intranet_student' );
Finalment configureu els master password, primer Ldap:
$ sudo joe /usr/share/ebre-escool/application/config/auth_ldap.php
Afegiu la línia:
$config['masterpassword'] ="POSEULAVOSTRAMASTERPASSWORD";
I després SQL
$ sudo joe /usr/share/ebre-escool/application/config/database.php
I afegiu/configureu la línia:
$config['mysql_masterpassword'] ="PUT_YOUR_PASSWORD_HERE";
Si utilitzeu Google Apps també cal configurar les dades d'accés a Google Apps:
$ sudo cp googleapps.php.example googleapps.php
I configureu les dades d'accés:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); /** * @author Sergi Tur Badenas <[email protected]> * @copyright Copyright © 2014 by Sergi Tur <[email protected]> * @package GoogleApps * @subpackage configuration */ /** * Array Index - Usage * client_id: Client ID provided by Google Console API * Example: 10456720172255-42i2r39sadwgbl58eof1rku5apau2kq7.apps.googleusercontent.com * service_account_email: service account email provided by Google Console API * Example: [email protected]ceaccount.com * key_file: p12 key file path provided by Google Console API * Example: /usr/share/google-apps/Ebre-escool-d823asd8fc5b3.p12 * domain_admin_email: Email of an user with admin rigths in Google Apps Domain * Example: [email protected] * domain: Google Apps Domain * Example: iesebre.com */ $config['client_id'] ="10660201723425-42i2r394st4qbl58eof1rku5apau2kq7.apps.googleusercontent.com"; $config['service_account_email'] = "[email protected]account.com"; $config['key_file'] = "/usr/share/gplus-domains-directory-sample-php/Ebre-escool-d847da8fc5b3.p12"; $config['domain_admin_email'] = '[email protected]'; $config['domain'] = 'iesebre.com';
NOTA: Cal prèviament haver configurat l'accés per API a Google Apps
Finalment si voleu utilitzar el client rest de prova per prova l'API REST d'ebre-escool només cal configurar el client rest amb:
$ sudo cp rest_client.php.example rest_client.php
i editeu el fitxer per posar la API key que correspongui:
$ sudo joe rest_client.php ... $config['api_key'] = "f8314435as1f3d35058584b37361dbde919"; ...
$ sudo cp application/config/rest_client.php.example application/config/rest_client.php $ sudo nano application/config/rest_client.php
Add your own API key:
$config['api_key'] = "YOUR_OWN_API_KEY_GENERATED_WITH_key_generator.php";
Idea:
$ composer install
Script post-execution (https://getcomposer.org/doc/articles/scripts.md):
post-install-cmd
es defineixen al composer.json (exemple):
{ "scripts": { "post-update-cmd": "MyVendor\\MyClass::postUpdate", "post-package-install": [ "MyVendor\\MyClass::postPackageInstall" ], "post-install-cmd": [ "MyVendor\\MyClass::warmCache", "phpunit -c app/" ], "post-create-project-cmd" : [ "php -r \"copy('config/local-example.php', 'config/local.php');\"" ] }
NOTA: només executar el primer cop? també cal fitxer lock com composer? i només tornar executar en cas de compsoer update?
Notes que ha de fer l'script: Vendors:
Codi:
https://github.com/acacha/ebre-escool
Aplicacions de tercer codeigniter com a vendors?:
Script post-instal·lació fitxers:
Extra: Framework CodeIgniter:
Un cop accedim a l'aplicació de GOsa
http://localhost/gosa
amb el nostre usuari i password
Crearem un grup anomenat intranet-admin on afegirem l'usuari o usuaris que vulguem
Anem al menú lateral esquerre a l'apartat Groups i des de la part central de la pantalla seleccionem Actions -> Create -> Group
Després com a Group name posem intranet_admin i cliquem el botó Add per a afegir a un usuari al grup
Selecionem el nom d'usuari que volem afegir i cliquem el botó Add per a afegir-lo.
NOTA: Abans recomanavem la instal·lació de Gosa per tal de fer la gestió d'usuaris. Ebre-escool ja suporta la gestió d'usuaris Ldap i no cal instal·lar gosa simplement amb el servidor LDAP és suficient
$ sudo apt-get install slapd
Poseu la paraula de pas que vulgueu ja que la canviarem amb:
$ sudo dpkg-reconfigure slapd
Als passos de l'assistent poseu:
Podeu consultar la següent adreça
http://185.13.76.85
Per veure una demo d'ebre-escool. La demo es restaura un cop al dia al seu estat actual o només en cas es detecti un error que obligui a restaurar però hi podeu fer les proves que trobeu convenients
IMPORTANT: Totes les paraules de pas són ebreescool i hi ha múltiples usuaris amb múltiples rols. Utilitzeu l'usuari admin per entrar
La base de dades demo la trobareu a:
http://acacha.org/~sergi/ebre_escool_anonymous_04_12_2014.sql
Seguiu els passos de la instal·lació, especialment la creació de la base de dades MySQL i la configuració del fitxer d'accés
Seguiu els passos de la instal·lació, especialment la configuració de l'accés a Ldap.
Error 1048 'secondary_email' cannot be null
A Database Error Occurred Error Number: 1048 Column 'secondary_email' cannot be null INSERT INTO `users` (`secondary_email`, `first_name`, `last_name`, `company`, `phone`, `username`, `password`, `email`, `ip_address`, `created_on`, `last_login`, `active`) VALUES (NULL, 'System', 'Administrator', NULL, NULL, 'admin', '94abdb58f5e02a94981dd69aea3c325f93c0f238', 0, '\0\0�', '2013-10-14 12:06:28', '2013-10-14 12:06:28', 1) Filename: /usr/share/ebre-escool/third_party/skeleton/models/skeleton_auth_model.php Line Number: 1107
Alumnes/students:
http://photodune.net/search?utf8=%E2%9C%93&term=student&sort=&date=&size=&sales=
Teacher:
http://photodune.net/search?utf8=%E2%9C%93&term=teacher&sort=&date=&size=&sales=
School: http://photodune.net/search?utf8=%E2%9C%93&term=school&sort=&date=&size=&sales=
Definicions:
Usuari
Reialme
Rols
NOTA: Casos especials:
Flow de la aplicació:
Disseny:
Vegeu Ebre-escool desenvolupament
Backend
Mòdul de matrícula
Obteniu una còpia del repositori o de un fork del repositori:
$ mkdir github || cd github $ git clone [email protected]:acacha/ebre-escool.git $ cd ebre-escool
Comproveu les branques remotes (cal posar el -a) i que teniu la branca develop
$ git branch -a * master remotes/origin/HEAD -> origin/master remotes/origin/develop remotes/origin/gh-pages remotes/origin/master
I ara canvieu a la branca develop:
$ git checkout -b remotes/origin/develop
Prepareu tot l'entorn de treball:
$ composer install
Seguiu els passos de l'article Homestead per instal·lar Homestead si encara no el teniu instal·lat. Editeu la configuració:
$ homestead edit
Afegiu un site:
- map: ebre-escool.iesebre.app to: /home/vagrant/Code/ebre-escool/public
I una base de dades:
ebreescooldev
Assegureu-vos de no "maxacar" les bases de dades al fer un provision:
Homestead#Don.27t_remove_databases_when_provisioning
i apliqueu els canvis:
$ vagrant global-status id name provider state directory ----------------------------------------------------------------------------------- 3187fb6 default virtualbox running /home/sergi/.composer/vendor/laravel/homestead .... $ vagrant provision 3187fb6
Configureu entorn per tal de configurar l'accés a la base de dades:
$ cp .env.example .env
Editeu el fitxer .env per adaptar-lo a la vostra base de dades local. Amb canviar el nom de la base de dades a ebreescooldev hi ha suficient.
I prepareu la base de dades
$ homestead ssh $ cd /home/vagrant/Code/ebre-escool $ php artisan migrate $ php artisan db:seed
El domini en explotació:
ebre-escool.iesebre.com
El entorn d'explotació serà un servidor Ubuntu Server amb LAMP
El domini de desenvolupament:
ebre-escool.iesebre.app
El entorn de desenvolupament serà homestead utilitzant vagrant
Actualment (--acacha (discussió) 11:27, 13 maig 2015 (CEST)) el tag 0.1 de la branca master correspon a la versió en explotació a l'Institut de l'Ebre. Els canvis i millores s'aniran fent només a la branca master i afegint tags tipus 0.1.1, 0.1.2, 0.1.3 etc.
Al mateix temps es crea la branca develop on es comença a preparar la versió 1.0 de l'aplicació que estarà basada principalment en Laravel.
Resources: