J'utilise le R Studio IDE pour faire beaucoup de choses, dont celle de servir les sites Web locaux en utilisant le package de blogdown qui est un fork de hugo . J'écris le code dans R Studio et affiche un aperçu du site à l'aide de la commande blogdown::serve_site()
. C’est le moyen le plus simple que je connaisse de prévisualiser des sites HTML statiques. Utiliser hugo R Studio oblige mon navigateur à se rendre à l'emplacement 127.0.0.1:XXXX
et mon site local est prévisualisé sous mes yeux.
Puis-je desservir des sites locaux de manière native avec Ubuntu 18.04? Comment? J'imagine que cela devrait être très simple. Recherche en ligne Je ne trouve pas de moyen simple de le faire cependant. Si j’ouvre simplement les fichiers HTML statiques directement dans mon navigateur, ils ne montrent rien. Tous les liens d'image sont immédiatement cassés. Le formatage des en-têtes, des hyperliens, etc. n’est pas le même que lorsque je sers la page localement avec hugo .
EDIT - Je n'ai pas vraiment défini mon terme 'simplicité' '. Il existe deux approches différentes (à ce jour) dans les réponses: l’une la plus simple pour l’utilisateur final et l’autre en ce qui concerne les opérations effectuées par mon ordinateur. J'aime les deux approches et je serai heureux de recevoir des réponses utilisant n'importe quelle approche pour les tester. Je vous remercie.
Ubuntu utilise python3 par défaut, et ils se sont donné beaucoup de mal pour rendre cela extrêmement facile pour nous: D
Pour démarrer le serveur http sur le port , tapez
python -m http.server port
Si vous voulez partager des fichiers et des répertoires, insérez-les dans le répertoire que vous souhaitez servir.
cd /my/html/files
python -m http.server 8080
Si vous souhaitez utiliser une adresse autre que la valeur par défaut 0.0.0.0
, vous pouvez utiliser --bind
.
Ex: python -m http.server 8080 --bind 127.0.0.1
les servira à l'adresse 127.0.0.1:8080
:)
Edit: Qu'il s'agisse ou non de grandes longueurs, je laisserai cela au lecteur
Aussi pour votre commodité, voici un lien vers la documentation https://docs.python.org/3/library/http.server.html
Ici est une liste de serveurs HTTP sur une ligne. Je suis sûr qu'il en existe un qui conviendra à vos objectifs/à votre outillage existant.
Ci-après, un sous-ensemble du lien, qui contient à mon avis les plus pratiques.
Python:
python -m http.server 8000
Rubis:
Ruby -run -ehttpd . -p8000
Nœud:
npm install -g http-server
http-server -p 8000
Php:
php -S 127.0.0.1:8000
Un moyen simple de configurer un site http statique consiste à utiliser darkhttpd
Il n'y a pas de paquet dans Ubuntu pour ça, mais le logiciel est juste un fichier source que vous pouvez télécharger avec un tarball sur le site ou avec git:
git clone https://unix4lyfe.org/git/darkhttpd
cd darkhttpd
Puis exécutez make
et vous avez votre exécutable darkhttpd . (Placez-le dans /usr/local/bin
pour le rendre disponible à chaque utilisateur)
Courir
./darkhttpd /path/to/wwwroot
ou
./darkhttpd --help
obtenir de l'aide sur la commande
On peut spécifier un répertoire ou un port à utiliser et de nombreuses autres options.
Sudo apt install Apache2
installera le serveur Web Apache2. Par défaut, il donne accès à index.html
dans le dossier /var/www/html
; Remplacer ce fichier par tout ce que vous voulez héberger est la façon la plus simple de procéder. Vous pouvez alors accéder à http://127.0.0.1 sur votre ordinateur local ou à l'adresse IP de votre ordinateur sur votre réseau. et il servira les pages.
Si vous êtes un utilisateur de Google Chrome, rien de plus simple: utilisez Web Server for Chrome . Installez-le simplement, lancez-le, cliquez sur , puis choisissez Dossier pour sélectionner le répertoire contenant vos fichiers statiques.
Si vous ne voulez pas vous souvenir des arguments de la commande python, utilisez woof:
Description: share files through HTTP protocol
Woof (Web Offer One File) is a tool to copy files among hosts. It can serve a
specified file on HTTP, just for a given number of times, and then exits.
Features include:
* it can share stuff "one shot" and exit just after he served that file.
* it can share things among different operating system or different devices
(e.g.: a smartphone), and allows one to upload files easily.
* it can also show a simple html form in order to upload file (useful if the
client hasn't a way to serve the file).
Vous pouvez l’installer sur Debian/Ubuntu avec
apt install woof
Et utiliser comme
woof kittens.png
Il imprimera une URL à mettre dans un navigateur à l'autre bout.
L'une des solutions les plus simples (et les plus limitées) consiste à utiliser netcat
comme décrit dans cet article :
while true; do { echo -e "HTTP/1.1 200 OK\r\n$(date)\r\n\r\n<h1>hello world from $(hostname) on $(date)</h1>" | nc -vl 8080; } done
Cet exemple sert sur le port 8080. Pour desservir les premiers 1024 ports, vous devrez utiliser Sudo
name__. Vous pouvez également servir un fichier de cette manière simplement en utilisant cat filename
.
Pour un exemple plus compliqué, consultez bashttpd .
Notez également les différences entre netcat-traditional et netcat-openbsd . Ubuntu fournit les deux versions.