Il faut être méthodique.
a) comprendre ce qu'il faut faire
b) comment la mettre en oeuvre
a) Reprenons en douceur.
Tu as une machine chez toi. Elle a une adresse IP dans un réseau local, lequel est géré par ton routeur ADSL (ou ta LiveBox, ou ta FreeBox ou n'importe quelle ***Box de la même farine) qui a une interface réseau affectée à ce réseau local.
Ta machine n'est donc connue
que dans le réseau local.
D'un autre côté, ton routeur a une interface réseau connectée à Internet et cette interface a une adresse IP
publique obtenue auprès de ton fournisseur d'accès. Cette adresse (
publique donc) est visible depuis l'extérieur et on peut donc lui envoyer des requêtes.
Donc : pour que ta machine puisse être accessible depuis l'extérieur, il faut paramétrer le routeur pour qu'il route certaines requêtes (ici les requêtes HTTP) vers le réseau interne et, plus précisément, vers ton iMac. Les réponses aux requêtes repartiront par le chemin inverse.
Le résultat est alors le suivant :
1) l'internaute envoie une requête à l'adresse IP
publique du routeur, sur le port 80
2) la requête arrive sur le routeur et est automatiquement redirigée vers l'adresse
locale de ton iMac, sur le port 80
3) ton iMac reçoit la requête et la traite puis retourne la réponse au routeur
4) le routeur renvoie la réponse à l'appelant
Tout ceci s'appelle de la Translation d'adresse. En anglois, l'acronyme est NAT pour
Network Address Translation. D'autres explications
ici.
b) la mise en oeuvre
Là, ça dépend du type de routeur utilisé pour se connecter à Internet. Lire la documentation au rayon translation d'adresse (NAT).
Je conseille de faire simple dans un premier temps : port 80 partout et on teste que ça marche.
Étape suivante : passer éventuellement en mode sécurisé (si c'est pertinent) ; utiliser des services dynamiques d'adressages (comme DynDNS) pour avoir un nom fixe, tandis que l'adresse IP publique peut changer arbitrairement.
Quant à ma remarque précédente : il faut bien voir que ta machine sera connue, au moins pour son serveur Web, sur Internet, donc accessible et attaquable. Il faut alors se renseigner sur les moyens de la protéger : mises à jour d'Apache et des différents modules, gestion des droits,
sandboxing etc. Mais chaque chose en son temps...