From dc539fda0108dc724693fbdd7599bd86980f0de0 Mon Sep 17 00:00:00 2001 From: clyhtsuriva Date: Sun, 29 Mar 2020 19:53:38 +0200 Subject: some web changes --- www/.htpasswd | 1 + www/apache-modified/apache2.conf | 230 +++++++++++++++++++++++++++++++++++++++ www/howto_psql | 35 ++++++ www/html/.htaccess | 5 + www/html/fonctions.py | 23 ++++ www/html/index.html | 9 ++ www/html/index.py | 39 +++++++ www/html/init-bd.sql | 12 ++ www/html/style.css | 12 ++ www/html/test.html | 8 ++ www/html/test.py | 11 ++ 11 files changed, 385 insertions(+) create mode 100755 www/.htpasswd create mode 100755 www/apache-modified/apache2.conf create mode 100755 www/howto_psql create mode 100755 www/html/.htaccess create mode 100755 www/html/fonctions.py create mode 100755 www/html/index.html create mode 100755 www/html/index.py create mode 100755 www/html/init-bd.sql create mode 100755 www/html/style.css create mode 100755 www/html/test.html create mode 100755 www/html/test.py (limited to 'www') diff --git a/www/.htpasswd b/www/.htpasswd new file mode 100755 index 0000000..029fc64 --- /dev/null +++ b/www/.htpasswd @@ -0,0 +1 @@ +admin:$2y$10$7cG0rg7ZkXNbddIP4nSAAeeffvMYoXVYNix1ZayXXTfuiDOrraP8G diff --git a/www/apache-modified/apache2.conf b/www/apache-modified/apache2.conf new file mode 100755 index 0000000..c1b9b89 --- /dev/null +++ b/www/apache-modified/apache2.conf @@ -0,0 +1,230 @@ +# This is the main Apache server configuration file. It contains the +# configuration directives that give the server its instructions. +# See http://httpd.apache.org/docs/2.4/ for detailed information about +# the directives and /usr/share/doc/apache2/README.Debian about Debian specific +# hints. +# +# +# Summary of how the Apache 2 configuration works in Debian: +# The Apache 2 web server configuration in Debian is quite different to +# upstream's suggested way to configure the web server. This is because Debian's +# default Apache2 installation attempts to make adding and removing modules, +# virtual hosts, and extra configuration directives as flexible as possible, in +# order to make automating the changes and administering the server as easy as +# possible. + +# It is split into several files forming the configuration hierarchy outlined +# below, all located in the /etc/apache2/ directory: +# +# /etc/apache2/ +# |-- apache2.conf +# | `-- ports.conf +# |-- mods-enabled +# | |-- *.load +# | `-- *.conf +# |-- conf-enabled +# | `-- *.conf +# `-- sites-enabled +# `-- *.conf +# +# +# * apache2.conf is the main configuration file (this file). It puts the pieces +# together by including all remaining configuration files when starting up the +# web server. +# +# * ports.conf is always included from the main configuration file. It is +# supposed to determine listening ports for incoming connections which can be +# customized anytime. +# +# * Configuration files in the mods-enabled/, conf-enabled/ and sites-enabled/ +# directories contain particular configuration snippets which manage modules, +# global configuration fragments, or virtual host configurations, +# respectively. +# +# They are activated by symlinking available configuration files from their +# respective *-available/ counterparts. These should be managed by using our +# helpers a2enmod/a2dismod, a2ensite/a2dissite and a2enconf/a2disconf. See +# their respective man pages for detailed information. +# +# * The binary is called apache2. Due to the use of environment variables, in +# the default configuration, apache2 needs to be started/stopped with +# /etc/init.d/apache2 or apache2ctl. Calling /usr/bin/apache2 directly will not +# work with the default configuration. + + +# Global configuration +# + +# +# ServerRoot: The top of the directory tree under which the server's +# configuration, error, and log files are kept. +# +# NOTE! If you intend to place this on an NFS (or otherwise network) +# mounted filesystem then please read the Mutex documentation (available +# at ); +# you will save yourself a lot of trouble. +# +# Do NOT add a slash at the end of the directory path. +# +#ServerRoot "/etc/apache2" + +# +# The accept serialization lock file MUST BE STORED ON A LOCAL DISK. +# +#Mutex file:${APACHE_LOCK_DIR} default + +# +# The directory where shm and other runtime files will be stored. +# + +DefaultRuntimeDir ${APACHE_RUN_DIR} + +# +# PidFile: The file in which the server should record its process +# identification number when it starts. +# This needs to be set in /etc/apache2/envvars +# +PidFile ${APACHE_PID_FILE} + +# +# Timeout: The number of seconds before receives and sends time out. +# +Timeout 300 + +# +# KeepAlive: Whether or not to allow persistent connections (more than +# one request per connection). Set to "Off" to deactivate. +# +KeepAlive On + +# +# MaxKeepAliveRequests: The maximum number of requests to allow +# during a persistent connection. Set to 0 to allow an unlimited amount. +# We recommend you leave this number high, for maximum performance. +# +MaxKeepAliveRequests 100 + +# +# KeepAliveTimeout: Number of seconds to wait for the next request from the +# same client on the same connection. +# +KeepAliveTimeout 5 + + +# These need to be set in /etc/apache2/envvars +User ${APACHE_RUN_USER} +Group ${APACHE_RUN_GROUP} + +# +# HostnameLookups: Log the names of clients or just their IP addresses +# e.g., www.apache.org (on) or 204.62.129.132 (off). +# The default is off because it'd be overall better for the net if people +# had to knowingly turn this feature on, since enabling it means that +# each client request will result in AT LEAST one lookup request to the +# nameserver. +# +HostnameLookups Off + +# ErrorLog: The location of the error log file. +# If you do not specify an ErrorLog directive within a +# container, error messages relating to that virtual host will be +# logged here. If you *do* define an error logfile for a +# container, that host's errors will be logged there and not here. +# +ErrorLog ${APACHE_LOG_DIR}/error.log + +# +# LogLevel: Control the severity of messages logged to the error_log. +# Available values: trace8, ..., trace1, debug, info, notice, warn, +# error, crit, alert, emerg. +# It is also possible to configure the log level for particular modules, e.g. +# "LogLevel info ssl:warn" +# +LogLevel warn + +# Include module configuration: +IncludeOptional mods-enabled/*.load +IncludeOptional mods-enabled/*.conf + +# Include list of ports to listen on +Include ports.conf + + +# Sets the default security model of the Apache2 HTTPD server. It does +# not allow access to the root filesystem outside of /usr/share and /var/www. +# The former is used by web applications packaged in Debian, +# the latter may be used for local directories served by the web server. If +# your system is serving content from a sub-directory in /srv you must allow +# access here, or in any related virtual host. + + Options FollowSymLinks + AllowOverride None + Require all denied + + + + AllowOverride None + Require all granted + + + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + +# +# Options Indexes FollowSymLinks +# AllowOverride None +# Require all granted +# + + + + +# AccessFileName: The name of the file to look for in each directory +# for additional configuration directives. See also the AllowOverride +# directive. +# +AccessFileName .htaccess + +# +# The following lines prevent .htaccess and .htpasswd files from being +# viewed by Web clients. +# + + Require all denied + + + +# +# The following directives define some format nicknames for use with +# a CustomLog directive. +# +# These deviate from the Common Log Format definitions in that they use %O +# (the actual bytes sent including headers) instead of %b (the size of the +# requested file), because the latter makes it impossible to detect partial +# requests. +# +# Note that the use of %{X-Forwarded-For}i instead of %h is not recommended. +# Use mod_remoteip instead. +# +LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined +LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined +LogFormat "%h %l %u %t \"%r\" %>s %O" common +LogFormat "%{Referer}i -> %U" referer +LogFormat "%{User-agent}i" agent + +# Include of directories ignores editors' and dpkg's backup files, +# see README.Debian for details. + +# Include generic snippets of statements +IncludeOptional conf-enabled/*.conf + +# Include the virtual host configurations: +IncludeOptional sites-enabled/*.conf + +# vim: syntax=apache ts=4 sw=4 sts=4 sr noet + +#ErrorDocument 404 /404.html + diff --git a/www/howto_psql b/www/howto_psql new file mode 100755 index 0000000..7d5adfc --- /dev/null +++ b/www/howto_psql @@ -0,0 +1,35 @@ +#in order to make things right, you should check the following comments to visualize and use properly the PSQL database. + +#assuming that you installed psql prior +#https://www.postgresql.org/download/linux/debian/ + +#create the user +adduser atsuser +#use the password '123456' + +#connect as postgres +su - postgres + +#launch the psql terminal +psql + +#create the user that we use in our scripts +CREATE USER atsuser WITH PASSWORD '123456'; + +#create our databse +CREATE DATABASE atsdb; + +#grant the privileges to our user +GRANT ALL PRIVILEGES ON DATABASE atsdb to atsuser; + +#quit +Ctrl+D + +#log in as atsuser +su - atsuser + +#launch psql with our user and our database +psql -d atsdb -U atsuser + +#initialize the tables +\i /WHATEVER_PATH_YOUR_INIT_IS_IN/ATS-Project/website/init-bd.sql diff --git a/www/html/.htaccess b/www/html/.htaccess new file mode 100755 index 0000000..ff2ab4a --- /dev/null +++ b/www/html/.htaccess @@ -0,0 +1,5 @@ +AuthType Basic +AuthName "restricted area" +AuthUserFile /var/www/html/ATS-Project/web/.htpasswd +require valid-user +DirectoryIndex index.py diff --git a/www/html/fonctions.py b/www/html/fonctions.py new file mode 100755 index 0000000..c1566af --- /dev/null +++ b/www/html/fonctions.py @@ -0,0 +1,23 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- +import psycopg2 + +def baseHTML(title,body): + content=(""" + + + """+ title +""" + + + + """+ body +""" + + + """) + return content + + +def connexionBD(): + connexion=psycopg2.connect ("host='localhost' dbname='atsdb' user='atsuser' password='123456'") + return connexion + diff --git a/www/html/index.html b/www/html/index.html new file mode 100755 index 0000000..27f4dda --- /dev/null +++ b/www/html/index.html @@ -0,0 +1,9 @@ + + + + Just here to redirect you... + + + + + diff --git a/www/html/index.py b/www/html/index.py new file mode 100755 index 0000000..010ed2d --- /dev/null +++ b/www/html/index.py @@ -0,0 +1,39 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import mod_python +from fonctions import baseHTML, connexionBD + +def index(req): + req.content_type="text/html" + + content=str() + +#sql part + conn=connexionBD() + cur=conn.cursor() + sql="select * from trame;" + cur.execute(sql) + conn.commit() + data=cur.fetchall() + conn.close() +#sql part + + for i in data : + content+=("""""" + +"""""" + str(i[1]) + """""" + +"""""" + str(i[2]) + """""" + +"""""" + str(i[3]) + """""" + +"""""" + str(i[4]) + """""" + +"""""") + + req.write(baseHTML("ATS-Project",""" +

ATS-Project

+ + +""" ++ content + +""" +
HeureProtocoleSourceDestination
+""")) #tableheads to change so it takes the output of the select + diff --git a/www/html/init-bd.sql b/www/html/init-bd.sql new file mode 100755 index 0000000..f1a4f2b --- /dev/null +++ b/www/html/init-bd.sql @@ -0,0 +1,12 @@ +--Creation of the main table +drop table if exists trame cascade; + +create table trame( + id_trame serial primary key, + heure varchar(100), + protocole varchar(100), + source varchar(100), + destination varchar(100) +); + + diff --git a/www/html/style.css b/www/html/style.css new file mode 100755 index 0000000..6d0bd42 --- /dev/null +++ b/www/html/style.css @@ -0,0 +1,12 @@ +body { + background-color:#000000; +} + +*{ + color: white; +} + +table,th,td { + border: 2px solid red; + text-align: center; +} diff --git a/www/html/test.html b/www/html/test.html new file mode 100755 index 0000000..b789672 --- /dev/null +++ b/www/html/test.html @@ -0,0 +1,8 @@ + + + + Test + + + This is a test page + diff --git a/www/html/test.py b/www/html/test.py new file mode 100755 index 0000000..6ff289c --- /dev/null +++ b/www/html/test.py @@ -0,0 +1,11 @@ +#!/usr/bin/python3 +# -*- coding: utf-8 -*- + +import mod_python +import fonctions + +def index(req): + req.content_type="text/html" + req.write(fonctions.baseHTML("Test",""" +This is a test page.

+""")) -- cgit v1.2.3 From 4378405eea982cb3a42584d95767b5003675f611 Mon Sep 17 00:00:00 2001 From: clyhtsuriva Date: Sun, 29 Mar 2020 20:41:49 +0200 Subject: debugging and apache help --- www/apache-modified/apache2.conf | 3 +++ www/apache-modified/help.txt | 13 +++++++++++++ www/html/.htaccess | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 www/apache-modified/help.txt (limited to 'www') diff --git a/www/apache-modified/apache2.conf b/www/apache-modified/apache2.conf index c1b9b89..3bdb180 100755 --- a/www/apache-modified/apache2.conf +++ b/www/apache-modified/apache2.conf @@ -171,6 +171,9 @@ Include ports.conf Options Indexes FollowSymLinks AllowOverride All Require all granted + AddHandler mod_python .py + PythonHandler mod_python.publisher + PythonDebug On # diff --git a/www/apache-modified/help.txt b/www/apache-modified/help.txt new file mode 100644 index 0000000..80b10ff --- /dev/null +++ b/www/apache-modified/help.txt @@ -0,0 +1,13 @@ +#pour felix + +#first, you have to install apache2 (server), mod_python (to build html via python) and python-psycopg2 (to use psql) : +apt install apache2 libapache2-mod-python python-psycopg2 + +#replace the actual /var/www by our ATS-Project/www +cp -r /root/ATS-Project/www /var/ + +#give the x rights on the .py files +chmod +x /var/www/html *.py + +#replace the actual /etc/apache2/apache2.conf by our ATS-Project/www/apache-modified/apache2.conf +cp -r ... diff --git a/www/html/.htaccess b/www/html/.htaccess index ff2ab4a..d074f91 100755 --- a/www/html/.htaccess +++ b/www/html/.htaccess @@ -1,5 +1,5 @@ AuthType Basic AuthName "restricted area" -AuthUserFile /var/www/html/ATS-Project/web/.htpasswd +AuthUserFile /var/www/.htpasswd require valid-user DirectoryIndex index.py -- cgit v1.2.3