FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
Commit 6929f800 authored by L. Bower's avatar L. Bower
Browse files

doc updates for new python env for ews-browser

parent 9bfbc543
No related branches found
No related tags found
No related merge requests found
......@@ -173,25 +173,27 @@ sudo chown -R ewsmanager:ews EWS_prod/
sudo chmod -R g+s EWS_prod/
sudo chmod -R g+w EWS_prod/
**3: follow the deployment instructions in this doc.**
**3: follow the deployment instructions.**
https://docs.google.com/document/d/1nW0eZJoLLOFzb3Yp4OonhwrbOS2UFELok_QQflb-EUc/edit?usp=sharing
Install and setup the apache server (file downloads and ews_browser)
setup dirs for apache:
sudo mkdir /storage/webdata/Ethiopia
sudo mkdir /storage/webdata/SouthAsia
sudo chown ewsmanager:ews SouthAsia/ Ethiopia/
sudo chmod g+ws Ethiopia/
sudo chmod g+ws SouthAsia/
.. code-block:: bash
sudo mkdir /storage/webdata/Ethiopia
sudo mkdir /storage/webdata/SouthAsia
sudo chown ewsmanager:ews SouthAsia/ Ethiopia/
sudo chmod g+ws Ethiopia/
sudo chmod g+ws SouthAsia/
sudo mkdir /storage/app/ews_browser
sudo chown ewsmanager:ews ews_browser
sudo chmod g+ws ews_browser
.. code-block:: bash
ln -s /storage/webdata/Ethiopia /var/www/html/Ethiopia
ln -s /storage/webdata/SouthAsia /var/www/html/SouthAsia
sudo mkdir /storage/app/ews_browser
sudo chown ewsmanager:ews ews_browser
sudo chmod g+ws ews_browser
ln -s /storage/webdata/Ethiopia /var/www/html/Ethiopia
ln -s /storage/webdata/SouthAsia /var/www/html/SouthAsia
install apache and other libs:
......@@ -199,77 +201,47 @@ apt-get -qq install --assume-yes apache2 apache2-dev apache2-utils ssl-cert liba
(if you get prompted about a newer version of the sshd_conf file being available, keep the current one as we modified this already.)
install miniconda:
export CONDA_DIR='/home/miniconda3'
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /home/miniconda.sh
/bin/bash /home/miniconda.sh -b -p $CONDA_DIR
export PATH=$CONDA_DIR/bin:$PATH
conda init bash
create a file called ews_browser.yml and paste the following:
name: /home/conda/ews_browser
channels:
- conda-forge
- defaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- ca-certificates=2022.6.15=ha878542_0
- click=8.1.3=py38h578d9bd_0
- flask=2.2.2=pyhd8ed1ab_0
- importlib-metadata=4.11.4=py38h578d9bd_0
- itsdangerous=2.1.2=pyhd8ed1ab_0
- jinja2=3.1.2=pyhd8ed1ab_1
- ld_impl_linux-64=2.36.1=hea4e1c9_2
- libffi=3.4.2=h7f98852_5
- libgcc-ng=12.1.0=h8d9b700_16
- libgomp=12.1.0=h8d9b700_16
- libnsl=2.0.0=h7f98852_0
- libsqlite=3.39.2=h753d276_1
- libstdcxx-ng=12.1.0=ha89aaad_16
- libzlib=1.2.12=h166bdaf_2
- markupsafe=2.1.1=py38h0a891b7_1
- ncurses=6.3=h27087fc_1
- openssl=3.0.5=h166bdaf_1
- pip=22.2.2=pyhd8ed1ab_0
- python=3.8.12=h0744224_3_cpython
- python_abi=3.8=2_cp38
- readline=8.1.2=h0f457ee_0
- setuptools=65.3.0=pyhd8ed1ab_1
- sqlite=3.39.2=h4ff8645_1
- tk=8.6.12=h27826a3_0
- werkzeug=2.2.2=pyhd8ed1ab_0
- wheel=0.37.1=pyhd8ed1ab_0
- xz=5.2.6=h166bdaf_0
- zipp=3.8.1=pyhd8ed1ab_0
- pip:
- mod-wsgi==4.9.3
prefix: /home/conda/ews_browser
conda env create -f /home/ews_browser.yml -p /home/conda_envs/ews_browser
create a venv for the ews_browser, activate it and install the requirements:
.. code-block:: bash
mkdir -p /storage/app/ews_browser/env
python3 -m venv /storage/app/ews_browser/env/browser_env
source /storage/app/ews_browser/env/browser_env/bin/activate
pip install flask mod-wsgi
(faff) modify the wsgi.load script in /etc/apache2/mods-available to point to the same python as used by the ews_browser
Enable the conda env for the project:
conda activate /home/conda_envs/ews_browser
you are probably still in the active environment from the previous step, you will need to be in the new browser_env with a user that has sudo privileges. If necessary, deactivate the existing env and reactivate with a sudo user:
.. code-block:: bash
source /storage/app/ews_browser/env/browser_env/bin/activate
.. code-block:: bash
which mod_wsgi-express
which mod_wsgi-express
gives you:
/home/conda_envs/ews_browser/bin/mod_wsgi-express
.. code-block:: bash
/storage/app/ews_browser/env/browser_env/bin/mod_wsgi-express
sudo /home/conda_envs/ews_browser/bin/mod_wsgi-express install-module
run the install-module command using the exe from the previous step:
.. code-block:: bash
sudo /storage/app/ews_browser/env/browser_env/bin/mod_wsgi-express install-module
gives you:
LoadModule wsgi_module "/usr/lib/apache2/modules/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"
WSGIPythonHome "/home/conda_envs/ews_browser"
.. code-block:: bash
LoadModule wsgi_module "/usr/lib/apache2/modules/mod_wsgi-py38.cpython-38-x86_64-linux-gnu.so"
WSGIPythonHome "/storage/app/ews_browser/env/browser_env"
put the above line as the text in:
......@@ -277,6 +249,11 @@ put the above line as the text in:
This means that apache wsgi will use the version of python that is used by the app to which it is binding.
.. admonition:: Note
There are config files in the ews-browser project (in gitlab) that point to this python environment. Make sure ews_browser_client_africa.conf and ews_browser_client_asia.conf have the correct python path
prepare certificates and passwords for apache:
copy the default-ssl.conf file into /etc/apache2/sites_available. See notes on installing genuine certificates below (once the server is up and running).
......@@ -371,22 +348,25 @@ The RewriteEngine is set to “Off” when not redirecting
**modify the ews browser wsgi conf files to point to the html directory, rather than the code:**
/etc/apache2/sites-available/ews_browser_client_africa.conf
/etc/apache2/sites-available/ews_browser_client_asia.conf
.. code-block:: bash
/etc/apache2/sites-available/ews_browser_client_africa.conf
/etc/apache2/sites-available/ews_browser_client_asia.conf
**comment in the directory mapping in place of the WSGI mapping. e.g.**
WSGIDaemonProcess ews_browser_asia user=ewsmanager group=ewsmanager threads=5 python-home=/home/conda_envs/ews_browser/
WSGIScriptAlias /ews_browser_asia /storage/app/ews_browser/code/src/main/python/ews_browser_asia.wsgi
<Directory "/storage/app/ews_browser/code/src/main/python/">
WSGIProcessGroup ews_browser_asia
WSGIScriptReloading On
WSGIApplicationGroup %{RESOURCE}
Require all granted
</Directory>
#IAAS
WSGIDaemonProcess ews_browser_africa user=ewsmanager group=ewsmanager threads=5 python-home=/storage/app/EWS_prod/envs/browser_env
WSGIScriptAlias /ews_browser_africa /storage/app/ews_browser/code/src/main/python/ews_browser_africa.wsgi
<Location "/ews_browser_africa">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require user ethiopia admin
</Location>
ErrorLog /storage/app/ews_browser/outputs/ews_browser_client_error.log
# IF THE SITE IS DOWN FOR MAINTENANCE, COMMENT THIS BLOCK IN AND THE ONE ABOVE OUT - IT WILL USE THE REDIRECT IN .HTACCESS TO DISPLAY THE MAINTENANCE MESSAGE
# IF THE SITE IS DOWN FOR MAINTENANCE, COMMENT THIS BLOCK IN ANF THE ONE ABOVE OUT - IT WILL USE THE REDIRECT IN .HTACCESS TO DISPLAY THE MAINTENENCE MESSAGE
#<Directory /var/www/>
# Options Indexes FollowSymLinks
# AllowOverride All
......@@ -467,13 +447,17 @@ deploy the ews_browser code
**create a symlink to the wsgi conf files**
ln -s /storage/app/ews_browser/code/src/main/python/ews_browser_client_asia.conf ews_browser_client_asia.conf
ln -s /storage/app/ews_browser/code/src/main/python/ews_browser_client_africa.conf ews_browser_client_africa.conf
.. code-block:: bash
ln -s /storage/app/ews_browser/code/src/main/python/ews_browser_client_asia.conf ews_browser_client_asia.conf
ln -s /storage/app/ews_browser/code/src/main/python/ews_browser_client_africa.conf ews_browser_client_africa.conf
**activate the sites:**
a2ensite ews_browser_client_africa.conf
a2ensite ews_browser_client_asia.conf
.. code-block:: bash
a2ensite ews_browser_client_africa.conf
a2ensite ews_browser_client_asia.conf
**start server:**
......@@ -734,4 +718,6 @@ sudo journalctl -r -u airflow-scheduler.service
sudo journalctl -r -u airflow-webserver.service
General apache logs:
/var/log/apache2/error.log
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment