Primero que todo actualizar los repositorios
$ sudo apt update
$ sudo apt install apache2
Comandos Apache2
$ sudo systemctl stop apache2
$ sudo systemctl start apache2
$ sudo systemctl reload apache2
$ sudo systemctl enable apache2
$ sudo apt install software-properties-common
$ sudo add-apt-repository ppa:ondrej/php
Actualizamos los repositorios
$ sudo apt update
$ sudo apt install php7.1 libapache2-mod-php7.1 php7.1-mcrypt php7.1-cli php7.1-mbstring php7.1-xml php7.1-zip php7.1-mysql php7.1-gd php7.1-imagick
Abrir el archivo php.ini
$ sudo vim /etc/php/7.1/apache2/php.ini
Ejemplo configuración:
file_uploads = On
allow_url_fopen = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 360
date.timezone = America/Santiago
Verificar que el archivo /etc/apache2/mods-available/dir.conf contenga index.php
$ cat /etc/apache2/mods-available/dir.conf
output:
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Para que los cambios hagan efecto, reiniciar Apache2:
$ sudo systemctl restart apache2
$ sudo vim /var/www/html/phpinfo.php
Agregar la siguiente línea y guardar el archivo:
<?php phpinfo( ); ?>
Chequear que la página se este resolviendo correctamente desde http://localhost/phpinfo.php
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Como super usuario mover el archivo descargado a /usr/local/bin y renombrarlo "composer"
Ejecutar por línea de comandos lo siguiente:
$ composer global require "laravel/installer"
Agregar al PATH el directorio bin del vendor:
Para Ubuntu 14.04
$HOME/.composer/vendor/bin
Últimas distribuciones GNU / Linux:
$HOME/.config/composer/vendor/bin
Mac OS:
$HOME/.composer/vendor/bin
Imprimimos la variable $PATH para revisar las variables seteadas:
$ echo $PATH
output:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Crear/Editar archivo .profile
$ vim ~/.profile
Añadir lo siguiente al final del archivo y guardamos los cambios realizados:
export PATH=$PATH:$HOME/.config/composer/vendor/bin
Cerramos la terminal o corremos el comando source e imprimimos la variable $PATH para verificar que reconozca la nueva variable de entorno:
$ source .profile
$ echo $PATH
output:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/andres/.config/composer/vendor/bin
Imprimimos la variable $PATH para revisar las variables seteadas:
$ echo $PATH
output Mac OS:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Crear/Editar archivo .bash_profile
$ vim ~/.bash_profile
Añadir lo siguiente al final del archivo y guardamos los cambios realizados:
export PATH=$PATH:$HOME/.composer/vendor/bin
Cerramos la terminal o corremos el comando source e imprimimos la variable $PATH para verificar que reconozca la nueva variable de entorno:
$ source .bash_profile
$ echo $PATH
output:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/andres/.composer/vendor/bin
Al ejecutar el siguiente comando:
$ laravel
Podemos ver que Laravel quedo correctamente instalado de forma global:
Laravel Installer 2.0.1
Usage:
command [options] [arguments]
Options:
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands:
help Displays help for a command
list Lists commands
new Create a new Laravel application.
A continuación vamos a crear un proyecto laravel dentro de una nueva carpeta llamada workspace.
Creamos la carpeta workspace dentro de la carpeta de nuestro usuario y nos cambiamos de carpeta:
$ mkdir ~/workspace
$ cd ~/workspace
Ahora creamos el proyecto laravel:
$ laravel new blog
Crear un proyecto Laravel para PHP 7.1
$ composer create-project --prefer-dist laravel/laravel blog
Crear un proyecto Laravel para PHP 5.6
composer create-project laravel/laravel blog "5.1.*"
$ php artisan serve
1.- Crear link simbólico del proyecto laravel en /var/www
Asumiendo que creamos el proyecto blog en ~/workspace, crearemos un link simbólico en el directorio /var/www:
$ cd /var/www
$ sudo ln -s ~/workspace/blog .
2.- Habilitar mod_rewrite
$ sudo a2enmod rewrite
3.- Crear el archivo para configurar el virtual host.
Crear el archivo blog.cl.conf en /etc/apache2/sites-available/ y agregar lo siguiente:
<VirtualHost *:80>
ServerAdmin nombrecorreo@gmail.com
ServerName blog.cl
ServerAlias www.blog.cl
DocumentRoot /var/www/blog/public/
<Directory /var/www/blog/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/blog.cl/error.log
CustomLog ${APACHE_LOG_DIR}/blog.cl/access.log combined
</VirtualHost>
4.- Editar el archivo /etc/hosts y agregar la siguiente línea:
$ sudo vim /etc/hosts
127.0.0.1 blog.cl
5.- Crear carpeta blog.cl en /var/log/apache2/
$ sudo mkdir /var/log/apache2/blog.cl
$ cd /var/log/apache2
$ sudo touch error.log access.log
6.- Habilitar el virtualhost:
$ sudo a2ensite blog.cl.conf
7.- Reiniciar el apache
$ sudo systemctl reload apache
8.- Dar propietario y grupo www-data a las carpetas bootstrap y storage (Esto sólo aplica si utilizamos apache ó nginx):
$ sudo chown -Rvf www-data:www-data bootstrap storage
$ php artisan list
$ php artisan --version
Primero que todo debemos ubicarnos en el directorio del proyecto.
$ php artisan make:controller EjemploController
Salida:
Controller created successfully.
Este comando creará un controlador en el directorio app/Http/Controllers/
$ php artisan make:seeder UserTableSeeder
$ php artisan migrate --seed
Esto va a eliminar las tablas, luego las va a volver a crear y finalmente va a crear el seeder de usuario:
$ php artisan migrate:refresh --seed
$ php artisan db:seed
Laravel 5.2 tiene dos clases listas para migrar, estas son: CreateUsersTable y CreatePasswordResetsTable y se encuentran en database/migrations/
Definiremos los datos de conexión en el archivo de configuración .env
Ejemplo:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=dev
Ahora reiniciamos el servidor web
ctrl + c
$ php artisan serve
y limpiamos la configuración en cache
$ php artisan config:clear
Para migrar las tablas ejecutaremos el siguiente comando:
$ php artisan migrate
Ahora crearemos las vistas de autenticación que provee laravel
$ php artisan make:auth
Created View: /Users/andres/Sites/blog/resources/views/auth/login.blade.php
Created View: /Users/andres/Sites/blog/resources/views/auth/register.blade.php
Created View: /Users/andres/Sites/blog/resources/views/auth/passwords/email.blade.php
Created View: /Users/andres/Sites/blog/resources/views/auth/passwords/reset.blade.php
Created View: /Users/andres/Sites/blog/resources/views/auth/emails/password.blade.php
Created View: /Users/andres/Sites/blog/resources/views/layouts/app.blade.php
Created View: /Users/andres/Sites/blog/resources/views/home.blade.php
Created View: /Users/andres/Sites/blog/resources/views/welcome.blade.php
Installed HomeController.
Updated Routes File.