Título: Acceso a indice de contenido fuera de la carpeta html Publicado por: FreeCellnet en 7 Julio 2019, 16:18 pm Hace tiempo que me llevo haciendo esta pregunta, abrí con autoindex acceso a contenido a la carpeta doc, que esta ubicada dentro de la carpeta html, que es basicamente donde estan alojadas las paginas web, pero si me llevo la carpeta doc, fuera de la carpeta html, ya no puedo tener acceso. Puesto que teoricamente esta saliendo fisicamente del servidor, y por tanto , del dominio.
Por tanto se me ocurrio no moverla, yy hacer un tunel, llamada y creada como carpeta link a un discoduro externo, puesto que el contenido no puede estar en el mismo sitio que la pagina web. Pero la carpeta que me hacia de tunel para el acceso a contenido del disco duro extterno no me fue. Entonces me dijeron que podia mover o crear el servidor donde estuviera el discoduro externo, es decir, hacerlo allí donde hubiera espacio. Tampoco quise esta opcion. Entonces, lo que he encontrado es una solucion, pero para servidores Apache. Código
Esa solucion, no pasa por la de utilizar lo que hasta hora venía haciendo, es decir, modificar el archivo de configuracion nginx. No se de donde se han sacado esto, ¿Puede ser un htaccess? Esta solucion viene dada por el foro forosdelweb, pero actualmente no admite registros, estoy buscando otras denominaciones a este problema, haber si cambiando las palabras encuentro algo. He estado estudiando un libro muy interesante de debian-handbook de 540 paginas y... Creo que nginx, al igual que apache utiliza la carpeta etc/nombredelservidor/sites-avaliable/(en mi caso default).conf y al abrirlo con editor van modificando el servidor virtual en el puerto 80, soolo que el lenguaje es bien diferente porque en Apache usan.. Código
Y lo mio es mas ...nginx... server { lisen ... / location Pero cuando entra donde a mi me interesa, el acceso a directorios me dice en el apache lo siguiente Código
Y lo unico que me hace falta es un enpujon entre esto y lo siguiente: Código
Pero en nginx HAsta ahí mas o menos entiendo por que Indexes: le indica al servidor que provea una lista del contenido de los directorios si el pedido HTTP del cliente apunta a un directorio sin un archivo de índice (es decir, que no existe en él ninguno de los archivos enumerados en la directiva DirectoryIndex) Multiviews: activa la negociación de contenido; el servidor puede utilizar esto para proveer una página web que utilice el idioma preferido configurado en el navegador. Mod: Obligatorio el uso de etiquetas GeSHi. Título: Re: Acceso a indice de contenido fuera de la carpeta html Publicado por: @XSStringManolo en 7 Julio 2019, 16:56 pm No te sirve hacer un copia y pega de los archivos del disco externo en un subdirectorio de la carpeta html?
Html no provee ninguna forma de linkar html externo. Tienes muchas opciones para hacerlo. Iframe, object data, jquery, include del lado del servidor con templates en html o el include de php. Use el que mas te convenga. Título: Re: Acceso a indice de contenido fuera de la carpeta html Publicado por: FreeCellnet en 7 Julio 2019, 17:15 pm Esque no me caben porque son 4TB de archivos y mi servidor esta en un micro SD de 256GB
Mirare que es todo esto.. Iframe, object data, jquery, include del lado del servidor con templates en html o el include de php. Y segun vaya avanzando te digo. Gracias Título: Re: Acceso a indice de contenido fuera de la carpeta html Publicado por: #!drvy en 10 Julio 2019, 17:47 pm En nginx seria algo así:
Código
Saludos Título: Re: Acceso a indice de contenido fuera de la carpeta html Publicado por: FreeCellnet en 14 Julio 2019, 00:06 am Gracias por contestar ;)
Bueno, yo lo que pretendo es poner el contenido en un disco duro externo, y solo puede ser a traves de un puerto USB3, por lo tanto a traves de la carpeta media/odroid/Maxtor No obstante voy a poner la configuracion que de momento me funciona, que es poner la carpeta de contenido llamada data dentro de la carpeta html. server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.php; server_name _; location /data/ { autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } He borrado la carpeta data, y la he puesto en mi disco duro externo, poniendo la localizacion del contenido, siguiendo la logica al referenciar carpetas. server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.php; server_name _; location /media/odroid/Maxtor/ { autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } pero logicamente no me va porque la localizacion debe de estar dentro del dominio. Asi que, borre el contenido de la carpeta donde estan alojadas las paginas web, y las puse dentro de Maxtor, que es un disco duro externo conectado por USB, asi que cree las carpetas en este, y dentro de la carpeta html , una carpeta con el nombre de data. server { listen 80 default_server; listen [::]:80 default_server; root /media/odroid/Maxtor/www/html; index index.html index.php; server_name _; location /data/ { autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } pero tampoco me fue asi. Ahora estoy provando la configuracion que me has proporcionado, como habras visto, el primer location que engloba el dominio esta intacto, porque las busqueda se hace fuera del dominio, y esta puesta abajo. pero con ciertos matices porque, yo tengo un dico extraible que se llama Maxtor, entonces, tambien hay ciertos cambios, por jemplo, la direccion va antes que index.html. server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.php; server_name _; location / { try_files $uri $uri/ =404; } location /Maxtor { root /media/odroid/; autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } Porque se supone que en el ejemplo anterior que me has proporcionado, la carpeta Misdatos esta dentro de la carpeta datos, y esta a su vez, dentro de la carpeta pepe. Todas estas configuraciones son guardadas dentro de la carpeta sites-avalible de la carpeta nginx en la respectiva carpeta de configuracion etc y guardadas, con el posterior reinicio de servicio del servidor No penseis que porque lo haya puesto aqui www.repositoryofmechanisms.mooo.com es solo para que veais la configuracion que lleva en este instante. De todas formas voy a habilitar una carpeta que se llama data, dentro de la carpeta html, que esta en dentro del servidor, no en un disco duro externo, que se llama data para que veais que el invento funciona, pero que no he logrado hacerlo dentro del disco duro externo, que es la idea, porque dentro del servidor solo tengo 200GB. logicamente, he puesto server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.php; server_name _; location /data/ { autoindex on; } location /Maxtor { root /media/odroid/; autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } Y al habilitar la el location del dominio, he puesto un pdf, un mp3 un mp4 y un jpg dentro de la carpeta data para que veais que el autoindex si me va, pero solo dentro de las carpetas html es decir www.repositoryofmechanisms.mooo.com/data/ La idea es ponerlo en un disco duro externo, pero al poner la ruta no me va. Buuueno, parace que esto es lo que estoy buscando , lo voy a probar para ver que tal https://forum.owncloud.org/viewtopic.php?t=28139 Pero ahora se genera otra duda, sobre la siguiente instruccion chown -R www-data:www-data /media/server/SeagateExpansionDrive/owncloud/data Supuestamente esto es para dar permisos a la visualizacion de contenido a esa ruta que esta fuera del dominio, pero lo de -R, no me guta un pelo, eso quiere decir que usuarios externos que accedan a mi web me van a quitar o joder archivos? o solo Read? es decir, solo se pueden leer no? Buuueno, el archivo config.php no lo encuentro en mi sistema operativo, probablemente porque estan en debian o una distribucion de debian, pero cuando en el foro del hilo este que acabo de poner el link hace poquito hablaban de modificar el www-data, eso si me suena, y eso yo lo tengo en la carpeta nginx del archivo nginx.conf. Vamos haber si cambiando lo que tengo dentro es decir, esto.. Le tengo que poner en la primera linea segun tengo entendido por el hilo del foro este lo siguiente: Lo primero que tienes que hacer es darle los permisos al directorio: en el shell, como root le dices: chown -R www-data:www-data /media/server/SeagateExpansionDrive/owncloud/data Es decir, se supone que.... abriendo una consola terminal y previamente habiendo modificado la ruta de acceso de los directorios de los archivos en nginx.conf de la carpeta sites avaliable /media/server/SeagateExpansionDrive/owncloud/data/. No tengo los permisos todavia de lectura *read( Despues abro una terminal y le meto esto Lo primero que tienes que hacer es darle los permisos al directorio: en el shell, como root le dices: chown -R www-data:www-data /media/server/SeagateExpansionDrive/owncloud/data Y se supone que ya puedo a traves de la pagina web referenciar la ruta de acceso a los archivos. no? Bueno ahora tambien he visto el chown -R en esta web https://elbauldelprogramador.com/instalacion-optimizacion-servidor-web-nginx-i/ Pero de configuracion un poco diferente a la mia . Es decir, su configuracion es esta user www-data; worker_processes 1; pid /var/run/nginx.pid; error_log logs/error.log; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; gzip on; gzip_buffers 16 8k; gzip_disable "MSIE [1-6]\."; gzip_proxied any; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on; keepalive_timeout 3; index index.html index.htm; server { listen 80; server_name localhost; root html; access_log logs/host.access.log main; # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } } } Mientras que la mia es esta user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } #mail { # # See sample authentication script at: # # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript # # # auth_http localhost/auth.php; # # pop3_capabilities "TOP" "USER"; # # imap_capabilities "IMAP4rev1" "UIDPLUS"; # # server { # listen localhost:1ccc; # protocol pop3; # proxy on; # } # # server { # listen localhost:1ccc; # protocol imap; # proxy on; # } #} Me he dado cuenta que yo solo tengo 768 worker conecctions y que el tiene como 1024, luego ya no Luego tiene esto server { listen 80; server_name localhost; root html; access_log logs/host.access.log main; # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } } } Donde se supone que yo lo tengo en otro archivo. Bueno lo fundamental es que luego sigue y dice que Cambiamos los permisos del directorio donde se alojan los recursos web a este último usuario y reiniciamos nginx: chown -R www-data:www-data /usr/local/nginx/html/ service nginx destroy && service nginx start Pero ojo, el mete todas sus paginas web ahi, por lo tanto no es lo mismos que quiero hacer yo, yo lo que necesito es solo el indece de directorio en un disco duro externo, por lo tanto. Me voy al otro archivo de configuracion y le pongo: server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.php; server_name _; location /data/ { autoindex on; } location /Maxtor { root /media/odroid/; autoindex on; } # This option is important for using PHP. location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.1-fpm.sock; } } A que location hara caso? puedo dejar uno? depues de esto me pongo en la terminal y le digo: chown -R www-data:www-data /media/odroid/Maxtor/data/ service nginx destroy && service nginx start Porque es una cuestion de permisos no? Acabo de hacer el chown y no me va. Voy a quitar uno de los dos locations de la configuracion del servidor, estoy aprendiendo muchas cosas con la web de Alejandro Alcalde, voy aponer las tres paginas de tutoriales; Probablemente el mejor tutorial que haya de nginx https://elbauldelprogramador.com/instalacion-optimizacion-servidor-web-nginx-i/ https://elbauldelprogramador.com/instalacion-optimizacion-servidor-web-nginx-ii/ https://elbauldelprogramador.com/instalacion-optimizacion-servidor-web-nginx-iii/ AAa vale, segun esto necesito como requisito tener un certificado ssl para movel los archivos de la carpeta raiz a un dis duro externo.. https://www.digitalocean.com/community/tutorials/how-to-move-an-nginx-web-root-to-a-new-location-on-ubuntu-18-04 https://hostadvice.com/how-to/how-to-move-the-nginx-web-root-to-a-new-location-on-ubuntu-18-04/ |