$ sudo apt-get update$ sudo fallocate -l 1G /swapfileVerificamos que el espacio reservado sea el correcto:
$ ls -lh /swapfile-rw-r--r-- 1 root root 1.0G Jun 16 15:43 /swapfilePor seguridad cambiamos los permisos:
$ sudo chmod 600 /swapfileVerificamos que el archivo tenga los permisos correctos:
$ ls -lh /swapfile-rw------- 1 root root 1.0G Jun 16 15:43 /swapfileAhora podemos configurar nuestra swap
$ sudo mkswap /swapfileSalida:
Setting up swapspace version 1, size = 4194300 KiB
no label, UUID=e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944$ sudo swapon /swapfileVerificamos que el procedimiento fue exitoso comprobando que el sistema informa el espacio de intercambio:
$ sudo swapon -sFilename Type Size Used Priority
/swapfile file 4194300 0 -1Tenemos creado y habilitado el nuevo archivo swap, ahora podemos ejecutar el comando free y aparecera la Swap:
$ free -m total used free shared buffers cached
Mem: 3953 101 3851 0 5 30
-/+ buffers/cache: 66 3887
Swap: 4095 0 4095$ sudo apt-get install nginxPara conocer la ip pública del servidor:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'o usar:
$ curl http://icanhazip.comEn el navegador verificamos que podemos ver la página por defecto de nginx desde el host (nombre del dominio o IP)
http://server_domain_name_or_IP$ sudo apt-get install mysql-server
$ sudo mysql_install_dbA continuación configuramos mysql:
$ sudo mysql_secure_installationInstalamos php-fpm y la extensión para mysql:
$ sudo apt-get install php5-fpm php5-mysqlConfiguramos php:
$ sudo vim /etc/php5/fpm/php.iniDescomentar la siguiente línea:
cgi.fix_pathinfo=0Reiniciar el servicio de php-fpm:
$ sudo service php5-fpm restartRespaldar el archivo default:
$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bkpAhora lo editamos:
$ sudo vim /etc/nginx/sites-available/defaultserver {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}- En la directiva index agregamos como primer valor index.php
- En server_name, reemplazar localhost por el nombre del dominio o la IP
- Eliminar todos los comentarios
- Añadimos la directiva try_files para asegurarnos que Nginx no pasa malas peticiones al procesador de PHP.
Finalmente el archivo debe quedar así:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name server_domain_name_or_IP;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}Reiniciamos Nginx:
$ sudo service nginx restartCrear un archivo php de test para probar la configuración por defecto:
$ sudo vim /usr/share/nginx/html/info.phpAgregar las siguientes líneas al archivo:
<?php
phpinfo();
?>Ahora podemos visitar la página en el navegador, ingresando el nombre del dominio o ip seguido de /info.php
http://server_domain_name_or_IP/info.phpLuego de verificar que todo esta ok eliminamos el archivo info.php:
$ sudo rm /usr/share/nginx/html/info.php$ sudo apt-get install php5-cliEjecutar el siguiente comando:
$ cd ~
$ curl -sS https://getcomposer.org/installer | phpEsto descargará el archivo composer.phar en la carpeta del usuario. Este archivo tendría que ser ejecutado cada vez que queramos utilizar composer. Para instalarlo de manera global moveremos el archivo a la carpeta /usr/local/bin
$ sudo mv ~/composer.phar /usr/local/bin/composer$ sudo apt-get install gitLuego de instalar Git copiamos a ~/.ssh las llaves ssh de nuestro usuario asociadas al repositorio que realizaremos el clone y cambiamos los permisos por 400.
1. Hacer un clone del repositorio en /var/www
Crear carpeta /var/www y cambiar propietario y grupo por ubuntu
$ sudo mkdir /var/www
$ chown ubuntu:ubuntu /var/wwwCambiamos de directorio a /var/www y realizamos el clone
$ cd /var/www
$ git clone SSH_URLs2. A la carpeta storage y a sus subdirectorios cambiar propietario y grupo por www-data
$ cd miproyecto
$ sudo chown -Rvf www-data:www-data storage3. Ejecutar composer update para descargar las dependencias del proyecto
$ composer update4. Crear base de datos e importar dump
$ mysql -u root -p
Enter password:mysql> CREATE DATABASE ejemplo
mysql> exit$ cd /var/www/miproyecto/db_schema
$ mysql -u root -p ejemplo < dump.sql5. Crear copia del archivo .env.example y renombrarla como .env
Cambiamos de directorio a la raiz del proyecto y listamos todos los archivos para ver los archivos ocultos
$ cd /var/www/miproyecto/
$ ls -aCopiamos el archivo y lo renombramos a .env
$ cp .env.example .envComprobamos que el archivo se copio exitosamente
$ ls -aEditamos el archivo .env y modificamos la clave de la base de datos
$ vim .envDB_PASSWORD=CLAVE_BD6. Instalar imagemagick e imagick
$ sudo apt-get install imagemagick
$ sudo apt-get install php5-imagickReiniciar el servicio php5-fpm
$ sudo service php5-fpm restartCrear un nuevo archivo para nuestro virtual host en /etc/nginx/sites-available/
$ sudo vim /etc/nginx/sites-available/miproyectoIngresar lo siguiente:
limit_req_zone $cookie_PHPSESSID zone=twelve:10m rate=3r/s;
limit_req_zone $binary_remote_addr zone=thirteen:10m rate=10r/s;
server {
server_name ejemplo.miproyecto.cl;
root /var/www/miproyecto/public;
index index.html index.php;
access_log /var/log/miproyecto/access.log;
error_log /var/log/miproyecto/error.log;
# set expiration of assets to MAX for caching
location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
expires max;
log_not_found off;
}
location ~* \.(git|rb|inc|ht) {
deny all;
}
location / {
# Check if a file or directory index file exists, else route it to index.php.
try_files $uri $uri/ /index.php;
}
location ~* \.php$ {
limit_req zone=twelve burst=10;
limit_req zone=thirteen burst=10;
try_files $uri =404;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_read_timeout 300;
}
}Por ahora la configuración utilizará php-fpm por socket
Crear link simbólico del nuevo virtual host en /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/miproyecto /etc/nginx/sites-enabled/Crear carpeta para almacenar los logs:
$ sudo mkdir /var/log/miproyectoFinalmente reiniciar Nginx:
$ sudo service nginx restartTutoriales relacionados