Pages : 1
#1 Le 03/07/2020, à 22:32
- zazaseti2020
Executer script python sur Apache2
Bonjour, j'essaye d'éxecuter un simple script python sur un serveur Ubuntu Apache2 en localhost mais le retour est nul.
Le script en question se nomme test.py et est stocké dans le dossier : /var/www
Dans la bare URL je tape : http://localhost/test.py
Voici ma configuration :
Server version: Apache/2.4.29 (Ubuntu)
Python 3.6.9
Je précise que dans le fichier apache2.conf j'ai ajouté :
Exec CGI
AddHandler cgi-script .py
Voici le script que je cherche à éxecuter depuis le serveur :
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
print("Content-Type: text/html\n")
from math import sqrt
a = sqrt(4)
print(a)
Voici le rendu de la page web :
The requested URL was not found on this server.
Dernière modification par zazaseti2020 (Le 03/07/2020, à 22:40)
Hors ligne
#2 Le 04/07/2020, à 00:42
- Vobul
Re : Executer script python sur Apache2
As-tu installé le module apache "cgi" ?
Il faut que tu postes ta config apache complète. (et puis un peu de lecture ne fait pas de mal).
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 04/07/2020, à 08:11
- zazaseti2020
Re : Executer script python sur Apache2
Voici une partie du fichier apache2.conf :
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks ExecCGI
AddHandler cgi-script .cgi .py
AllowOverride None
Require all granted
</Directory>
#<Directory /srv/>
# Options Indexes FollowSymLinks
# AllowOverride None
# Require all granted
#</Directory>
Dernière modification par zazaseti2020 (Le 04/07/2020, à 08:17)
Hors ligne
#4 Le 04/07/2020, à 08:37
- bruno
Re : Executer script python sur Apache2
Bonjour,
Il est fortement déconseillé de modifier le fichier apache2.conf. La configuration doit se faire dans les hôtes virtuels sous /etc/apache2/sites-available. Voir la doc apache2
Donc dans ton fichier de configuration d'hôte virtuel, 000-default.conf si c'est celui que tu utilises, il faut quelque chose comme (à adapter) :
<Directory /var/www/html>
Options +ExecCGI
AddHandler cgi-script .py
Allowoverride all
Require local
</Directory>
Et il faut bien évidemment que le module cgi d'apache soit activé :
sudo a2enmod cgi
N.B. : il existe des solutions plus performantes pour exécuter des scripts python (mod wsgi, mod python, etc.)
#5 Le 04/07/2020, à 13:33
- zazaseti2020
Re : Executer script python sur Apache2
J'ai appliqué vos recommandations ça fonctionne. Par contre le module selenium semble ne pas être reconnu
En lançant le script via : http://127.0.0.1/cgi-bin/test.cgi
avec test.cgi :
#!/usr/bin/env python3
from selenium import webdriver
print("Content-type: text/html\n\n")
print("Hello World!\n")
driver = webdriver.Firefox()
url = 'https://www.coteur.com/cotes-foot.php'
driver.get(url)
url_links = []
for i in driver.find_elements_by_xpath('//a[contains(@href, "match/cotes-")]'):
url_links.append(i.get_attribute('href'))
print(len(url_links), '\n')
print(url_links[0], '\n')
Dernière modification par zazaseti2020 (Le 04/07/2020, à 13:36)
Hors ligne
#6 Le 04/07/2020, à 14:28
- bruno
Re : Executer script python sur Apache2
Ce n'est plus un problème de serveur mais de développement et programmation (voir la section du forum dédiée).
Il faut voir la doc de selenium (à adapter au contexte d'une utilisation sur Ubuntu), notamment les pré-requis et les paquets à installer.
Dernière modification par bruno (Le 04/07/2020, à 14:30)
Pages : 1