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 luego 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