Les faits:
- il y a un site web
- ce site est accessible via www.example.org
- il existe une instance EC2 qui conserve très probablement le site Web
- le serveur est Apache
- le système d'exploitation du serveur est Ubuntu
- J'ai un accès complet au serveur (et aux privilèges sudo)
- le serveur est un énorme gâchis
Le problème est que je n'ai aucune idée où - simplement mettre - trouver l'index.html / index.php qui est chargé.
Comment savoir où trouver le code PHP et HTML du site Web? Existe-t-il une approche systématique de ce problème?
apache-2.2
ubuntu
php
Raffael
la source
la source
find / -name nameofsomefileonthewebsite.html
?Réponses:
Tout d'abord, vous devez vérifier quels sites Web sont hébergés sur le serveur
Ensuite, lorsque vous trouverez un site, vérifiez le fichier de configuration correspondant pour l'option DocumentRoot. Par exemple
Vous voulez savoir où se trouve un site Web example.net
Vous devez également faire attention à toutes les directives d'alias. Par exemple avec les paramètres suivants
Lorsque vous accéderez à http://example.net/some.file.html - apache cherchera le fichier dans / vhosts / default / public_html /, en même temps que http://example.net/api/some.file .html le fichier sera consulté dans / vhosts / default / public_api /.
Qu'en est-il des réécritures / redirections, en particulier programmatiques (lorsque les redirections sont déclenchées par du code php), je pense qu'il n'y a pas de moyen facile de trouver de tels cas.
la source
Essayez d'utiliser find
Sinon, en supposant qu'Apache a été installé à partir des référentiels Ubuntu, regardez dans
/etc/apache2/sites-available
, c.- à -d.Si le site Web a un VHOST Apache défini, cela pourrait localiser le fichier de configuration, alors recherchez dans ce fichier car
"documentroot"
cela devrait vous indiquer l'emplacement du code sourcela source
-type f
s'applique uniquement à-iname "*index.html*"
votre commande. Devrait être-type f \( -iname "*index.html*" -o -name "*index.php*" \)
Une autre méthode, qui peut être utile pour déboguer un site Web (ou tout autre processus d'ailleurs) est d'utiliser
lsof
(qui peut ne pas être sur le chemin, que l'on trouve couramment dans/sbin/lsof
)lsof -s [PID]
répertorie tous les fichiers sur lesquels le processus donné a une poignée et peut être utile pour voir exactement ce qui est utilisé (cela inclut vos fichiers html / php, ainsi que les fichiers journaux et les bibliothèques dont le site a besoin)la source
Rechercher des fichiers source de page
Une approche consiste à parcourir le site pour trouver une page plus unique - disons newcontactform.php - idéalement une page qui ne devrait pas apparaître sur d'autres sites hébergés par le même serveur.
Vous pouvez ensuite essayer
si cela échoue, suivez
cela devrait produire une liste de candidats gérable.
Vous pouvez ensuite inspecter les fichiers, faire des différences et si nécessaire essayer de petites modifications (par exemple insérer un commentaire HTML) pour vérifier que le fichier produit bien la page.
Trouvez les configs
Parfois, les fichiers de configuration sont évidents dans la sortie de la
ps
commande. Le pire des cas est,ps -ef | grep -e 'apache|httpd'
mais une utilisation plus créative desps
options mérite d’être explorée.Vous pouvez rechercher
httpd.conf
dans les emplacements typiques pour Ubuntu et pour le projet Apache httpd (qui peuvent différer) ou simplement utiliserlocate
etfind
comme ci-dessus.Parfois, le fichier de configuration principal fait référence à d'autres fichiers de configuration pour vhosts. Vous pouvez résoudre ce problème en identifiant le fichier de configuration principal.
Cas chroniques
Parfois, les anciens serveurs exécutent une variété de démons de serveur Web. Dans ce cas, cela peut prendre un certain temps pour les trouver tous et déterminer où se trouvent leurs fichiers de configuration. Une combinaison des techniques ci-dessus devrait finalement réussir.
Vous pouvez trouver quels programmes écoutent sur le port 80, etc. en utilisant
netstat -lntp
. Souvent, la localisation des fichiers binaires est un pointeur utile vers une arborescence de répertoires contenant les fichiers de configuration.la source
Vous pouvez vérifier le Vhost pour le domaine que vous recherchez dans le fichier de configuration du serveur Web (apache) - httpd.conf (très probablement situé dans / etc /) Ouvrez simplement le fichier et faites-le défiler jusqu'à ce que vous trouviez la directive VirtulaHost pour votre domaine et là vous verrez la directive DocumentRoot - qui est le répertoire racine du document de votre site Web, l'endroit où vous trouverez les fichiers de l'application.
la source
S'il vous plaît allez à
cd / etc / apache2 / site-avaliable /
Ici vous trouverez votre fichier de configuration (ie: 000-default.conf)
Veuillez ouvrir ce fichier / ouvrir votre fichier de configuration en utilisant
vi 000-default.conf
Vous y trouverez DocumentRoot, c'est le code de votre site Web
Il s'agit du fichier de configuration par défaut, vous aurez également quelques détails sur la configuration, veuillez les vérifier également.
la source