Instalar entorno de desarrollo APACHE, PHP y MySQL

Vamos a instalar el entorno de desarrollo php en un sistema linux (debian) con las aplicaciones más comunes.

Para instalar las tres aplicaciones principales y algunas extensiones imprescindibles lo hacemos desde el terminal (CTRL+ALT+T) con la siguiente orden:

sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-mbstring php-xml

Seguramente necesitaremos habilitar algunos módulos de apache

sudo a2enmod headers expires rewrite

Puede que tengamos que habilitar los ficheros .htaccess, para ello debemos editar /etc/apache2.conf y buscar «AllowOverride», cambiando su valor de «false» a «All»

Vemos que todo funcione arrancando apache y yendo a http://localhost

apache2 service start

Seguimos y configuramos mysql con:

sudo mysql_secure_installation

Añadimos tu usuario al grupo de apache

sudo usermod -a -G www-data [tu usuario]

Asignamos la carpeta de los proyectos de apache al grupo de usuarios de apache

sudo chown -R :www-data /var/www/

Le damos permiso de escritura al grupo

sudo chmod -R 775 /var/www/

Y con esto ya estaría, solo tendríamos que añadir un nuevo sitio. Para ello editaríamos el fichero /etc/hosts con una ip y un dominio de prueba, por ejemplo prueba.com
y luego editaríamos un fichero de configuración en /etc/apache2/sites-available/prueba.com.conf y habilitaríamos esta configuración con a2ensite prueba.com.conf. El contenido de este fichero podría ser similar a esto:

ServerName prueba.com
DocumentRoot /var/www/prueba.com
ErrorLog /var/www/prueba.com/error.log
CustomLog /var/www/prueba.com/access.log combined

Después de instalar KDE Neón

Los programas indispensables después de instalar KDE Neón (hay que decirlo, viene algo esquelético) se pueden instalar con la siguiente orden:

sudo apt install thunderbird qbittorrent kcalc kate gimp k3b kdenlive vlc libreoffice-writer libreoffice-base libreoffice-calc libreoffice-impress synaptic nvidia-current gparted yakuake kdenetwork-filesharing vokoscreen

Crear un nuevo proyecto en Laravel desde linux (debian)

Para crear un proyecto en laravel en la última versión o en una específica que corresponda con nuestros requisitos de versión de PHP seguiremos estos pasos:

Lo primero que hay que hacer es instalar composer:

sudo apt install composer

O tambien puedes descargarlo e instalarlo desde aquí, si quieres (hay versión Windows)

https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx

sudo apt install curl php-cli unzip php-zip
cd /tmp
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
sudo nano ~/.bashrc

y añadir al final de .bachrc

export PATH="$HOME/.config/composer/vendor/bin:$PATH"

para luiego recargar los cambios

source ~/.bashrc

Si ya lo tienes instalado puedes asegurarte que este actualizado con:

composer self-update

También hay que instalar el instalador de laravel, en mi caso debido a los errores tuve que instalar el módulo zip:

sudo apt-get install php5.6-zip

Y el instalador de Laravel propiamente dicho:

composer global require «laravel/installer»

Luego creamos nuestro proyecto:

composer create-project laravel/laravel="5.2.*" proyecto --prefer-dist 

Si quieres instalar las pantallas de autentificación y ahorrarte ese trabajo, puedes hacerlo con:

#versiones antiguas
composer require laravel/ui="1.*" --prefer-dist

#ultima version 
composer require laravel/ui
php artisan ui bootstrap #para bootstrap
php artisan ui vue #para vue

Todo esto es modificable según el PHP que nos limite en el servidor, porejemplo para PHP 7.3 seria:

composer create-project laravel/laravel="7.*" ppif --prefer-dist 
composer require laravel/ui="2.*" --prefer-dist  

También podemos hacer uso de laravel mix instalando node, npm (gestor de paquetes de javaxcript) y los paquetes necesarios de javascript

Instalamos node

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

instalamos npm

sudo apt install npm
//para instalar los paquetes necesarios
npm install
npm run dev (o npm run watch (se queda mirando los cambios, esto es util cuando programamos)

Como no podemos escoger en que directorio apunta nuestro dominio, no podemos apuntar al directorio «public» crearemos un fichero .htaccess con este contenido en la raiz de nuestro sitio:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L] 
</IfModule>

Para que esto funcione hay que habilitar los ficheros .htaccess en la configuración del Apache (AllowOverride All)
Y damos permiso de escritura a los directorios necesarios:

#añadir usuario al grupo de apache
sudo usermod -aG www-data mi_usuario

//los directorios pertenecen al grupo y usuario apache
sudo chown -R www-data:www-data storage
sudo chown -R www-data:www-data bootstrap/cache

//darles permiso de escritura
sudo chmod -R 770 storage/
sudo chmod -R 770 bootstrap/cache/

#o bien

sudo chmod -R 775 storage

sudo chmod -R 775 bootstrap/cache

sudo chown -R nuestroUsuario:www-data storage

sudo chown -R nuestroUsuario:www-data bootstrap/cache

Una vez editado elfichero «.env» con los datos de la base de datos (usuario, contraseña…) podemos crear la estructura inicial de autentificación

php artisan migrate

Podemos instalar las traducciones de los mensajes de validación y demás en castellano, català y demaás con el siguiente paquete:

https://github.com/Laravel-Lang/lang

que depende la versión de PHP instalaríamos de una u otra forma, por ejemplo:

composer require laravel-lang/lang:~5.0

Configurar Software MPCNC (no acabado)

Instalar Raspbian

Lo primero que vamos a hacer es formatear la SD que irá en la Raspberry, en la que instalaremos raspbian. Para ello crearemos una partición FAT32, la formatearemos y le instalaremos la imagen de Raspbian Lite.

Entramos en fdisk con la nueva unidad, que en mi caso es:

fdisk /dev/sdd

Formatearemos:

mkfs.vfat /dev/sdd1

Y copiaremos raspbian:

sudo dd if=2017-11-29-raspbian-stretch-lite.img of
=/dev/sdd BS=4M

En la partición de boot crearemos un fichero llamado «ssh» sin nada dentro, con esto habilitaremos entrar posteriormente via ssh.

Configurar Raspbian

Conectamos via ssh con la Raspberry, para ello debemos averiguar la ip de la raspberry. Yo uso una app del móvil «fing», pero hay infinidad de maneras.

Por ejemplo:

ssh pi@192.168.1.xxx <- ip raspberry

Aceptamos el fingerprint con «yes» y introducimos el password «raspberry».

Una vez dentro configuraremos los aspectos generales con un programa llamado «raspi-config»

sudo raspi-config

donde podremos configurar por ejemplo la Wifi, hostname, cambiar password…

Instalar CNCJs

https://cnc.js.org/docs/rpi-setup-guide/

 

 

Instalando Ubuntu

DESCARGANDO

Para descargar Ubuntu podemos hacerlo de dos maneras, o descargar la versión más fresca e inestable:

http://cdimage.ubuntu.com/daily-live/current/disco-desktop-amd64.iso

O hacerlo de la manera más adecuada, descargando la versión más actualizada pero estable:

https://www.ubuntu.com/download/desktop

En este caso como quiero instalar la versión sin Unity y con Gnome, me estoy adelantando a la fecha de salida (Octubre) así que opto por la inestable (no recomendado). Si haces esto despues de Octubre del 2017, no hace falta que te inclines por esta versión.

CREAR USB DE INSTALACIÓN

Crearemos un USB

INSTALANDO

Metemos el USB y reiniciamos el PC, cuando arranque escogeremos la segunda opción del menú que aparece «Instalar Ubuntu». Ahora básicamente es un siguiente – siguiente – siguiente. En versión extendida:

  • Ya nos aparece el instalador y escogeremos nuestro idioma, click en «continuar»
  • Descargar actualizaciones e instalar software de terceros, continuemos
  • Instalar Ubuntu junto a otros sistemas operativos, continuemos
  • Escoger nuestro horario, que saldrá por defecto. Si es canarias por ejemplo escribir «Las Palmas», sino «Madrid» seria correcto, continuar
  • Escogemos teclado, en mi caso bajaría hasta «spanish» y a la derecha «spanish – catalan», continuar
  • Añadimos un usuario, acordándonos de la contraseña. continuaremos y esperaremos mientras se instala.
  • Una vez instalado ya nos pide el mismo reiniciar

INSTALANDO IMPRESCINDIBLES

Si quieres instalar chrome, es muy fácil: visita esta url descarga la versión para Ubuntu 64 bits y abre con el instalador de Ubuntu (son todas las opciones por defecto), haz click en el botón de «instalar» de este último programa, introduces la contraseña y ya lo tienes instalado.

Una vez instalado podremos añadirlo al dock si presionamos la tecla super (la tecla del logo de windows), a continuación empezamos a escribir «chrome», hacemos click derecho sobre el icono y «añadir a favoritos». Apretamos ESC y ya lo vemos en el dock.

Ahora voy a añadir el cliente de correo  thunderbird a favoritos siguiendo el mismo procedimiento anterior de chrome, o ejecutándolo presionando (ALT+F2, escribiendo «thunderbird»+INTRO) y en el icono del dock botón derecho «añadir a los favoritos». Si quereis instalar el último thunderbird:

sudo add-apt-repository ppa:mozillateam/thunderbird-next
sudo apt-get update

Convertir números a su cardinal u ordinal, php_intl

Si te has preguntado como convertir un número a su cardinal , ordinal, etc se hace a través de la extensión php_intl.

Para instalarla en Ubuntu nada más sencillo que:

sudo apt install php_intl

para habilitarla en PHP:

sudo phpenmod intl

Y reaniciamos apache, que en caso de Ubuntu seria:

sudo service apache2 restart

Una vez instalada el código para realizar por ejemplo un cardinal en Català seria:

$nf = new \NumberFormatter('ca_ES', \NumberFormatter::SPELLOUT);
$cardinal = $nf->format($total);

No en todos los casos queda perfecto, o a veces no encontrarás la traducción completa. Para ello podemos especificar un fichero con las formas correctas:

$pattern = file_get_contents('catalan.txt');
$nf = new \NumberFormatter('ca_ES', \NumberFormatter::PATTERN_RULEBASED, $pattern);
$nf->setTextAttribute(\NumberFormatter::DEFAULT_RULESET, "%spellout-cardinal-masculine");

Y ya un pequeño trozo de código para que escriba bien los decimales en la forma por ejemplo de «diez coma cincuenta» en lugar de «diez cinco cero»:

$representado = explode(".", number_format($total, 2, ".", ''));
if (count($representado)>0) {
    $cardinal = $nf->format($representado[0]) . ' coma ' . $nf->format($representado[1]);
} else {
    $cardinal = $nf->format($representado[0]);
}

Aquí tenéis el fichero con las traducciones, por si queréis crear uno nuevo:

formato personalizado php_intl

Configurar el formato de codificación de Mysql para Ubuntu

Para configurar el formato de codificación de Mysql, en este caso vamos a modificar el fichero mysql.cnf que se encuentra en /etc/mysql/mysql.cnf para cambiar el formato de codificación más conveniente para uso general, que trata mejor la representación, comparación y ordenación en diferentes idiomas a cambio de rendimiento: utf8_unicode_ci.

Para ello añadiremos el siguiente código debajo de [mysqld] o lo crearemos bajo esta misma etiqueta:

[mysqld]

collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8

Y reiniciaremos el mysql:

sudo service mysql restart

Si tuviéramos que cambiar alguna tabla individualmente:

ALTER TABLE nombretabla CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Configuración y calibración impresora

Configuración

Una buena guía sobre la configuración del firmware Marlin para la impresora 3D es este:

La guía paso a paso para tunear tu impresora 3D y conseguir piezas de la máxima calidad

Aquí te explica todos los apartados de la configuración, solo añadiría que con las nuevas versiones que van saliendo, ahora hay un apartado nuevo por LCD para obtener los datos de la temperatura del extrusor (DEFAULT_Kp, DEFAULT_Ki y DEFAULT_Kd), no hace falta mandar comandos gcode por el pronterface. Para obtener esta nueva entrada en el LCD hay que descomentar esta linea:

#define PID_AUTOTUNE_MENU

Que en esta versión que uso ronda la linea 347 del fichero «configuration.h». Una vez obtenidos en esta nueva entrada (tarda un rato en obtenerlo), tomamos nota (en CONTROL->TEMPERATURE) y podemos añadirlos en la configuración, o bien guardarlos en la EEPROM (para usar esta opción hay que descomentar #define EEPROM_SETTINGS).

Calibración

Una buena guía para la calibración del extrusor y ver si se necesita más o menos plástico sería esta:

https://3dinvasion.com/blog/calibracion-de-pasos-del-motor-del-extrusor/

En resumen se trataría de poner una marca al filamento, hacer una extrusión de por ejemplo 10cm y hacer una regla de tres.

Se podría tambien hacer por software, por Slic3r por ejemplo cambiando «Extrusion multiplier» en «Filament settings». Aquí una buena guía:

Calibración del extrusor de nuestra impresora 3D

También hace falta calibrar X e Y, que se puede hacer en Slic3r «XY Size compensation» (Print Settings/Advanced) o en la configuración. O mejor en la configuración (DEFAULT_AXIS_STEPS_PER_UNIT):

  • Imprimimos un cubo de calibración de 20mm, por ejemplo:

https://www.thingiverse.com/thing:1278865

  • Medimos con el pie de rey y hacemos la regla de tres.

Si tenemos 200 steps en la X y ha salido de 21mm, entonces:

nuevo valos STEPS X = (200*20)/21

Por ejemplo:

DEFAULT_AXIS_STEPS_PER_UNIT { 190, 200, 800, 195 }