Muestra de generación Ldap en PHP <?php echo "version: 1<br><br>"; function clave($c){ $ldap['clave']=$c; $r= "{SHA}".base64_encode(pack("H*",SHA1( $ldap['clave'] ))); return $r; } $datos= array( array('id'=>'10083600' ,'apellido'=>'ESPINOSA DELGADO' ,'correo'=>'10083600@edu.do'), array('id'=>'10083551' ,'apellido'=>'GARCIA PEREZ' ,'correo'=>'10083551@edu.do'), ,'nombres'=>'SANTO' ,'nombres'=>'JOSE' array('id'=>'10083550' ,'apellido'=>'MARTINEZ MARTINEZ' ,'correo'=>'10083550@edu.do'), ,'nombres'=>'NINOSKA AYENDI' array('id'=>'10083590' ,'apellido'=>'CACERES JIMENEZ' ,'nombres'=>'AYENDI AYENDI NANCELY' ,'correo'=>'10083590@edu.do'), array('id'=>'10083585' ,'apellido'=>'MARTINEZ CORNIELLE' ,'correo'=>'10083585@edu.do'), ); //echo clave('datos*'); for ($x = 0; $x <= count($datos)-1; $x++) { ,'nombres'=>'AYENDI NINOSKA' echo "dn: cn=".$datos[$x]["id"].",cn=Users,dc=ipl,dc=edu,dc=do<br>"; echo "objectclass: orcluserv2<br> objectclass: orcluser<br> objectclass: inetOrgPerson<br> objectclass: organizationalPerson<br> objectclass: person<br> objectclass: top<br>"; echo "cn: ".$datos[$x]["id"]."<br>"; echo "sn: ".$datos[$x]["apellido"]."<br>"; echo "givenname: ".$datos[$x]["nombres"]."<br>"; echo "mail: ".$datos[$x]["id"]."@edu.do<br>"; echo "employeenumber: ".$datos[$x]["id"]."<br>"; echo "uid:" .$datos[$x]["id"]."<br>"; echo "userpassword: ". clave($datos[$x]["id"])."<br><br>"; } /* dn: cn=10083003,cn=Users,dc=ipl,dc=edu,dc=do objectclass: orcluserv2 objectclass: orcluser objectclass: inetOrgPerson objectclass: organizationalPerson objectclass: person objectclass: top cn: 10083003 sn: MORILLO ENCARNACION givenname: Josecito MIGUEL mail: 1008730037@edu.do employeenumber: 10083003 uid: 1008730037 userpassword: {SHA}VQQss234mOgChTD//lgj1zfbX9DiWzns=;*/ <VirtualHost *:8080> ServerName aplicaciones.edu.do/boletines ServerAlias www.aplicaciones.edu.do/boletines ServerAdmin jjmidias@edu.do DocumentRoot /var/www/paginas/html/boletines/public <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/paginas/html/boletines/> Options +Indexes +FollowSymLinks +MultiViews Options Indexes FollowSymLinks MultiViews AllowOverride all Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/boletines.error.log CustomLog ${APACHE_LOG_DIR}/boletinesaccess.log combined </VirtualHost> INSTALAR LARAVEL DE FORMA GLOBAL composer global require laravel/installer INSTALAR JETSTREAM CON LIVEWIRE laravel new codersfree --jet Which Jetstream stack do you prefer? [0] livewire [1] inertia >0 NO SI QUEREMOS QUE LOS ARCHIVOS SE ALMACENEN DIRECTAMENTE EN LA CARPETA PUBLIC, DEBEMOS CAMBIAR EN EL ARCHIVO config\filesystems.php: 'default' => env('FILESYSTEM_DRIVER', 'local'), POR 'default' => env('FILESYSTEM_DRIVER', 'public'), PARA PERITIR QUE LOS USUARIOS ACTULICEN SU IMAGEN DE PERFIEL: config\filesystems.php DESCOMENTAR: Features::termsAndPrivacyPolicy(), Para quitar uno de los errores de que no se encuentra el archovo de livewire php artisan vendor:publish --tag=livewire:config php artisan vendor:publish --force --tag=livewire:assets @php $nav_links=[ [ 'name'=>'Dashboard', 'route'=>route('dashboard'), 'active'=>request()->routeIs('dashboard') ], [ 'name'=>'Prueba', 'route'=>'#', 'active'=>false ] ]; @endphp CLONAR EL PROYECTO ORIGINA nos colocamos en el carpeta raíz del servidor web git clone https://github.com/coders-free/udemy.git entramos a la carpeta del proyecto desde la terminal instalamos todos las dependencia con el comando: composer install y todas las dependencia de node con: npm install GENERAR UN APIKEY php artisan key:generate GENERAR LOS ACCESOS DIRECTOS AL STORAGE php artisan storage:link EJECUTAMOS LAS MIGRACIONES Y LOS SEEDER php artisan migrate:fresh --seed CUANDO EL CONTROLADOR SOLO VA A TENER MÉTODO Y NADA MÁS, ESTE MÉTODO SE LE DA EL NOMBRE DE: public function __invoke(){} PARA VER LOS ARCHIVOS JSON CON UN MEJOR FORMATO DESDE CRHOME INSTALAMOS UNA EXTESIÓN LLAMADA: JSONFormatter PLATAFORMAS PARA OBTENER IMAGES MUY PROFESIONALES Y LIBRES DE DERECHO DE AUTOR pixabay.com pexels.com REDUCE LA CALIDAD DE LA IMAGEN SIN PERTER LA CALIDAD DE ESTA tinypng.com