Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

Aceptar Más información
WINTXCODERS Terminal
[[email protected] ~]:$ Bienvenido a la comunidad
Recuerda que puedes participar en nuestra comunidad registrándote

Autor Tema: [APORTE] Instalación y configuración de un servidor nginx + mysql + php en debian  (Leído 749 veces)

0 Usuarios y 1 Visitante están viendo este tema.

WIитX

  • Administrador
  • Conectado
  • *
  • 1370
    7478
    72
  • Texto personal
    I'm not a hacker I'm security professional.
    • Ver Perfil
    • WINTXCODERS.COM
[APORTE] Instalación y configuración de un servidor nginx + mysql + php en debian
« en: Febrero 15, 2016, 10:22:38 pm »


Hola buenas noches;

Os vengo a explicar como configurar un servidor web en debian usando nginx, php y mysql. Procederé a comentarles todos los comandos a usar y a la configuración de cada uno para que el servidor web funcione a la perfección yo lo estoy explicando sobre nginx pero es lo mismo para sus derivados, como ubuntu, linux mint etc... Antes de nada me gustaría resaltar la gran fluidez que tiene nginx también explicare como alojar más de un sitio web en el mismo servidor.

*Para no tener que estar tecleando todo el rato sudo nos loguearemos como root.


Lo primero que haremos será instalar nginx
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
apt-get install nginx
Instalamos MySQL
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
apt-get install mysql-server
Finalmente instalamos PHP
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
apt-get install php5-fpm php5-mysql

· Configuración de PHP

Una vez tenemos todos nuestros servicios instalados procedemos a su configuración yo prefiero empezar por PHP debido a que es solamente la edición de un archivo, pero cada uno puede empezar por donde quiera ya que finalmente llegaremos a la misma meta. Editamos el archivo php.ini que se encuentra en /etc/php5/fpm/php.ini lo editaremos con nano:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
nano /etc/php5/fpm/php.ini
Ahora buscamos con CTRL+W:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
cgi.fix_pathinfo=1
Y lo reemplazamos por:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
cgi.fix_pathinfo=0
Presionamos CTRL + X y guardamos los cambios, una vez guardados los cambios procedemos a reiniciar el servicio:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
service php5-fpm restart


· Configuración de Nginx

Ahora procederemos a la configuración de nginx para ello nos iremos a "/etc/nginx/sites-enabled"
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
cd /etc/nginx/sites-enabled
Una vez situados en el directorio nos encontraremos con un archivo llamado default ese archivo lo vamos a borrar y vamos a crear uno nuevo con el nombre de nuestra página web y le daremos permisos 777:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
rm -r default
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
nano wintxcoders.com
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
chmod 777 wintxcoders.com
Una vez tenemos nuestro archivo lo abrimos con nano y pegamos el siguiente código en él:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
nano wintxcoders.com
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
server {
        listen 80 default_server ;
        #listen [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/www/wintxcoders.com;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name wintxcoders.com www.wintxcoders.com;

                 error_page 404 /404.html;
                 error_page 500 502 503 504 /50x.html;
                 location = /50x.html {
                 root /usr/share/nginx/www;
         }

         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;
         }

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
      autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        #error_page 500 502 503 504 /50x.html;
        #location = /50x.html {
        #       root /usr/share/nginx/www;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #       fastcgi_split_path_info ^(.+\.php)(/.+)$;
        #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        #
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
 #       # With php5-fpm:
        #       fastcgi_pass unix:/var/run/php5-fpm.sock;
        #       fastcgi_index index.php;
        #       include fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#       listen 8000;
#       listen somename:8080;
#       server_name somename alias another.alias;
#       root html;
#       index index.html index.htm;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}


# HTTPS server
#
#server {
#       listen 443;
#       server_name localhost;
#
#       root html;
#       index index.html index.htm;
#
#       ssl on;
#       ssl_certificate cert.pem;
#       ssl_certificate_key cert.key;
#
#       ssl_session_timeout 5m;
#
#       ssl_protocols SSLv3 TLSv1;
#       ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
#       ssl_prefer_server_ciphers on;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}



// ¡OJO! //

Si nos fijamos donde pone root es la ruta donde alojaremos nuestro sitio web nosotros hemos creado una carpeta dentro de www llamada wintxcoders.com y le hemos dado permisos 777 seguidamente donde pone server_name pondremos el nombre de nuestro sitio web de esta manera podremos alojar mas de una web en nuestro servidor!

Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
root /usr/share/nginx/www/wintxcoders.com;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name wintxcoders.com www.wintxcoders.com;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



Ahora nos vamos al sites-enabled que se encuentra en "/etc/nginx/sites-available" allí nos encontraremos otro archivo como el anterior llamado default, aremos lo mismo lo borramos y creamos otro llamado como nuestro sitio web.
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
cd /etc/nginx/sites-available
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
rm -r default
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
nano wintxcoders.com
Pegamos el siguiente código:
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
server {
        listen   80;
        #listen   [::]:80 default_server ipv6only=on;

        root /usr/share/nginx/www/wintxcoders.com;
        index index.php  index.html  index.htm;
        server_name wintxcoders.com www.wintxcoders.com;

        # --------------------------------------
        # Compression GZIP
        # --------------------------------------

        gzip on;
        gzip_types text/plain text/css application/json application/x-javascript text/javascript;
        gzip_comp_level 6;
        gzip_min_length 1000;

        # --------------------------------------
        # Directorio principal
        # --------------------------------------

        location / {
                try_files $uri $uri/ /index.php?q=$uri&$args;
                # include /etc/nginx/naxsi.rules
        }


        # --------------------------------------
        # Forzar algunas cabeceras.
        # Prohibir iframes y activar anti XSS
        # --------------------------------------

        add_header 'X-Frame-Options' 'DENY';
        add_header 'X-XSS-Protection' '1; mode=block';
        add_header 'Content-Security-Policy' 'frame-options \'deny\'';


        # --------------------------------------
        # Redirigir a dominio sin www.
        # --------------------------------------

        if ($host ~* ^www\.(.*)) {
                set $hww $1;
                rewrite ^/(.*)$ $scheme://$hww/$1 permanent;
        }


        # --------------------------------------
        # Deshabilitar directorios
        # --------------------------------------
        location /doc/ {
                alias /usr/share/doc/;
               autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # --------------------------------------
        # Logs y paginas de error.
        # --------------------------------------

        access_log /var/log/nginx/wintxcoders.access.log;
        error_log /var/log/nginx/wintxcoders.error.log;

        error_page 404 /404.html;
        error_page 500 502 503 504 /errores/50x.html;
        location = /errores/50x.html {
                root /var/www/;
        }

        # --------------------------------------
        # Pass the PHP scripts to FastCGI
        # --------------------------------------

        location ~ \.php$ {
                try_files $uri = 404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_cache microcache;
                fastcgi_cache_key $scheme$host$request_uri$request_method;
    fastcgi_cache_valid 301 302 404 30s;
                fastcgi_cache_valid 200 1s;
                fastcgi_cache_use_stale updating error timeout invalid_header http_500;
                fastcgi_pass_header Set-Cookie;
                fastcgi_pass_header Cookie;
                fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        location ~ /\.ht {      deny all;       }
}

Una vez pegado procedemos a guardar con CTRL + X



// ¡OJO! //

Si nos fijamos en el apartado logs nos dice donde quieres que guarde los logs tanto de acceso como de error y con el nombre que los quieres para cuando los quieras revisar

Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
# --------------------------------------
        # Logs y paginas de error.
        # --------------------------------------

        access_log /var/log/nginx/wintxcoders.access.log;
        error_log /var/log/nginx/wintxcoders.error.log;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


Una vez terminado esto vamos a crear el directorio donde se guardara nuestra web si es que no lo hemos creado anteriormente "/usr/share/nginx/www/wintxcoders.com"
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
cd /usr/share/nginx/www
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
mkdir wintxcoders.com
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
chmod 777 wintxcoders.com



Bueno eso es todo respecto a la configuración del servidor web si queremos alojar alguna web más basta con crear un nuevo archivo en el sites-enabled cambiándole el nombre del server y cambiando el directorio root de los archivos de nuestra pagina web como por ejemplo:

Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
/usr/share/nginx/www/wintxcoders.com
Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
/usr/share/nginx/www/hostop.es
Si vuestro sitio web lleva una base de datos es tan simple como que os paséis por el siguiente post que os facilitare de otro tutorial de wintxcoders.com -
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
« Última modificación: Junio 12, 2018, 12:07:24 am por WIитX »
Entrar a la web
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
"Es más divertido hacerse pirata que unirse a la marina." (Steve Jobs)
Dudas / Sugerencias: [email protected]

Inteland

  • Visitante
  • Desconectado
  • *
  • 8
    22
    0
  • Texto personal
    [email protected]
    • Ver Perfil
Re:Instalación y configuración de un servidor nginx + mysql + php en debian
« Respuesta #1 en: Julio 12, 2017, 04:53:48 am »
Hola Wintx, me encontraba explorando el forum Y Me encontre con este gran post, de casualidad podrias explicarnos u complementar este post diciendonos como hacer para ponerle un proxy reverse, en debian.

WIитX

  • Administrador
  • Conectado
  • *
  • 1370
    7478
    72
  • Texto personal
    I'm not a hacker I'm security professional.
    • Ver Perfil
    • WINTXCODERS.COM
Re:Instalación y configuración de un servidor nginx + mysql + php en debian
« Respuesta #2 en: Julio 12, 2017, 03:50:38 pm »

Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
Hola Wintx, me encontraba explorando el forum Y Me encontre con este gran post, de casualidad podrias explicarnos u complementar este post diciendonos como hacer para ponerle un proxy reverse, en debian.

Hay miles de resultados en google escribiendo "reverse proxy nginx"


Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]


Un ejemplo
Entrar a la web
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
"Es más divertido hacerse pirata que unirse a la marina." (Steve Jobs)
Dudas / Sugerencias: [email protected]

Root Vuster

  • Aportador
  • Desconectado
  • *
  • 76
    174
    7
  • Texto personal
    [email protected]
    • Ver Perfil
Re:Instalación y configuración de un servidor nginx + mysql + php en debian
« Respuesta #3 en: Noviembre 29, 2017, 05:46:36 pm »
Gracias por tus grandes aportes wintx.


Despues de mucho tiempo, gracias a tu gran aporte pude configurar mi servidor el cual no lograba que funcionara.
Citar
sudo apt-get install apache2
sudo apt-get install mysql-server mysql-common mysql-client
sudo apt-get install php5 libapache2-mod-php5 php5-mysql
sudo apt-get install phpmyadmin


BASUH

  • Visitante
  • Desconectado
  • *
  • 17
    44
    5
    • Ver Perfil
Re:Instalación y configuración de un servidor nginx + mysql + php en debian
« Respuesta #4 en: Diciembre 05, 2017, 08:49:42 am »
Estos son los repositorios para php5

Código:
Para poder ver los links necesitas estar [• Registrado •]
[• Iniciar Sesión •]
deb http://mirrors.digitalocean.com/debian jessie main contrib non-free
deb-src http://mirrors.digitalocean.com/debian jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

# jessie-updates, previously known as 'volatile'
deb http://mirrors.digitalocean.com/debian jessie-updates main contrib non-free
deb-src http://mirrors.digitalocean.com/debian jessie-updates main contrib non-free

 

Powered by Advanced Topic Prefix Pro