From 63a000bb409f5c4fc3f304f16b05407364ca052e Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 28 Apr 2026 19:19:47 +0200 Subject: fix: convert remaining raw HTML to markdown and add acronym shortcodes - myself-as-a-droid: drop external image figure, decode entities - poker-time: drop external image figure and orphan nbsp - le-email-queste-sconosciute: replace acronym tags with shortcodes, markdown strikethrough - xrandr-dual-head: convert pre block to fenced code - git-setup-own-server-part2: markdown blockquote + drop image figure + fenced code blocks (user will add image later) --- .../articles/git-setup-own-server-part2/index.md | 48 ++++++++++++++-------- 1 file changed, 32 insertions(+), 16 deletions(-) (limited to 'content/en/articles/git-setup-own-server-part2') diff --git a/content/en/articles/git-setup-own-server-part2/index.md b/content/en/articles/git-setup-own-server-part2/index.md index 42c50c4..2b10f29 100644 --- a/content/en/articles/git-setup-own-server-part2/index.md +++ b/content/en/articles/git-setup-own-server-part2/index.md @@ -12,32 +12,48 @@ tags = [ "git", "linux", "python", "howto", "automation", "ssh", "flask", "do it This is a followup on [my previous article about how to setup your server][1] to handle a GIT repository and deploy to a web server like apache. -Since I started experimenting with python and web publishing with it I wanted a way to push all the changes to my codebase directly to a web server, in a similar way as to what I already do with php and apache.
+Since I started experimenting with python and web publishing with it I wanted a way to push all the changes to my codebase directly to a web server, in a similar way as to what I already do with php and apache. -
-

- I want to do it myself, the way I like it.. -

- - danix -
+> I want to do it myself, the way I like it.. +> +> — danix -Serving python scripts is slightly different than serving html or php, here’s a scheme that shows what happens when using python (flask in this example) to serve some web content. - - -
-
a simple scheme of how python scripts are served on the web.
-
+Serving python scripts is slightly different than serving html or php, here's a scheme that shows what happens when using python (flask in this example) to serve some web content. As you can see the web server is acting as a reverse proxy to the [WSGI][2] server Gunicorn, Apache receives a request from a client, forwards the request to Gunicorn which in turn asks the python web service, in our case our flask web app. Other than as a reverse proxy, apache is used also to serve static content which is not originated in python, like images, css or js scripts. In order to deploy a python web app I had to install the mod_wsgi extension for apache, then I decided to use a folder in my system to install the virtual environment for python to run my web app and point to that directory in my vhost configuration file inside apache. After that I created a directory where to store all files for my web app and instructed apache to serve them using the virtualenv I created earlier. This is more or less what I did: -
# create the virtual environment for python inside
# the folder /usr/local/virtualenvs/my-app:
virtualenv /usr/local/virtualenvs/my-app

# now create the directory inside the apache root
# to store our web app
mkdir /var/www/htdocs/my-app
+```bash +# create the virtual environment for python inside +# the folder /usr/local/virtualenvs/my-app: +virtualenv /usr/local/virtualenvs/my-app + +# now create the directory inside the apache root +# to store our web app +mkdir /var/www/htdocs/my-app +``` Now if we put all the py files for our flask web app we can run it inside apache, this is the configuration for the vhost I used: -
<VirtualHost *:80>
ServerName my-app.mysite.ext
ErrorLog "/var/log/httpd/my-app.error_log"
CustomLog "/var/log/httpd/my-app.access_log" common
WSGIDaemonProcess my-app user=apache group=apache threads=5 python-home=/usr/local/virtualenvs/my-app
WSGIScriptAlias / /var/www/htdocs/my-app/my-app.wsgi
WSGIProcessGroup my-app
Alias "/static/" "/var/www/htdocs/my-app/static/"
<Directory "/var/www/htdocs/my-app/static/">
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/htdocs/my-app/">
Require all granted
</Directory>
</VirtualHost>

+```apache + + ServerName my-app.mysite.ext + ErrorLog "/var/log/httpd/my-app.error_log" + CustomLog "/var/log/httpd/my-app.access_log" common + WSGIDaemonProcess my-app user=apache group=apache threads=5 python-home=/usr/local/virtualenvs/my-app + WSGIScriptAlias / /var/www/htdocs/my-app/my-app.wsgi + WSGIProcessGroup my-app + Alias "/static/" "/var/www/htdocs/my-app/static/" + + Order allow,deny + Allow from all + + + Require all granted + + +``` With this setting I can now reach my web app and test it after restarting the web server. -- cgit v1.2.3