wsgi cant find modules in virtualenv in weblate + apache2 + wsgi setup - python-3.x

I got the weblate running in dev mode with :8000. But I am not able to get it running in apache2 with wsgi within the virtual environment, where everything worked.
Based on apache errors, it could not even find django installed.
I did that but saw another error of a missing module.
Its clear that wsgi is not respecting/searching for modules in the virtualenv for python.
My server is Ubuntu 19.04.
Please suggest.
<VirtualHost *:80>
ServerName xxyyzz.com
# DATA_DIR/static/favicon.ico
Alias /favicon.ico xxyyzz/weblate-env/lib/python3.7/site-packages/data/static/favicon.ico
# DATA_DIR/static/
Alias /static/ xxyyzz/weblate-env/lib/python3.7/site-packages/data/static/
<Directory xxyyzz/weblate-env/lib/python3.7/site-packages/data/static/>
Require all granted
</Directory>
# DATA_DIR/media/
Alias /media/ xxyyzz/weblate-env/lib/python3.7/site-packages/data/media/
<Directory /home/weblate/data/media/>
Require all granted
</Directory>
# Path to your Weblate virtualenv
WSGIDaemonProcess weblate python-path=xxyyzz/weblate-env
WSGIProcessGroup weblate
WSGIApplicationGroup weblate
WSGIScriptAlias / xxyyzz/weblate-env/lib/python3.7/site-packages/weblate/wsgi.py process-group=weblate
WSGIPassAuthorization On
<Directory xxyyzz/weblate-env/lib/python3.7/site-packages/weblate/>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
Same as: https://docs.weblate.org/en/latest/admin/install.html

It turns out that the example configuration is wrong, it should be using python-path instead of python-home for WSGIDaemonProcess. I've just fixed this in Weblate and you will probably need such change in your configuration as well.

Related

Installing MantisBT on WSL2

I have installed MantisBT in Ubuntu in wsl2, I had no problem following the instructions like in another ubuntu server (unless for enabling ufw), but at the moment of open the browser to proceed with the installation I just see the contents of the file index.php.
index.php in Browser
I'd try to search information about installing mantisBT in wsl without success, so that is why I come here to ask if anyone had successfully installed MantisBT in Ubuntu in Wsl or you have any clues to try to resolve this.
This is my apache confid file,
<VirtualHost *:80>
ServerAdmin webmaster#yourdomain.com
DocumentRoot "/var/www/html/mantis"
ServerName localhost
ServerAlias localhost
ErrorLog "/var/log/apache2/mantis-error_log"
CustomLog "/var/log/apache2/mantis-access_log" combined
<Directory "/var/www/html/mantis/">
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
It was due to a missing php package, so first make sure you have all the packages require, I found this thanks to the mantis-error_log file, In my case was php-fpm. but just installing it does not do the trick, yo have to install it, start the service and restart apache2
sudo apt install php7.x-fpm
sudo service php7.x-fpm start
sudo service apache2 restart
One thing I may have forgot also, was to change the permissions of the mantis folder
sudo chmod -R 755 /var/www/html/mantis
and finally I made some changes in th conf file and system32/drivers/host
to make it work at its own URL. This was just improvemnt, not really part of th problem.
<VirtualHost *:80>
ServerAdmin webmaster#yourdomain.com
DocumentRoot "/var/www/html/mantis"
ServerName mantis.test
ServerAlias www.mantis.test
ErrorLog "/var/log/apache2/mantis-error_log"
CustomLog "/var/log/apache2/mantis-access_log" combined
<Directory "/var/www/html/mantis/">
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
system32/drivers/etc/hosts
127.0.0.1 mantis.test
::1 mantis.test

Lightsail Bitnami HTTP-Only Application

HTTP-Only Application in Lightsail seems to not popular.
Where is right place for the html application;
('/home/bitnami/projects/myapp',
'/opt/bitnami/apps/myapp',
'opt\bitnami\apache\htdocs')
Where and how locate rule for remove 'myapp' from url (www.myDomain.com/myapp);
Where should be 'amazon-ses-smtp-sample.php' and how to prevent them to access from url;
Bitnami Engineer here, you will need to follow the next steps to deploy your custom application on top of a Bitnami solution
Create the same structure used by Bitnami when installing Bitnami PHP applications. To do this, run these commands:
sudo mkdir /opt/bitnami/myapp
sudo chown -R bitnami:daemon /opt/bitnami/myapp
sudo chmod -R g+w /opt/bitnami/myapp
Create and edit the /opt/bitnami/apache2/conf/vhosts/myapp-vhost.conf file and add the configuration block shown below:
<VirtualHost 127.0.0.1:80 _default_:80>
ServerAlias *
DocumentRoot /opt/bitnami/myapp
<Directory "/opt/bitnami/myapp">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Create and edit the /opt/bitnami/apache2/conf/vhosts/myapp-https-vhost.conf file and add the configuration block shown below:
<VirtualHost 127.0.0.1:443 _default_:443>
ServerAlias *
DocumentRoot /opt/bitnami/myapp
SSLEngine on
SSLCertificateFile "/opt/bitnami/apache2/conf/bitnami/certs/server.crt"
SSLCertificateKeyFile "/opt/bitnami/apache2/conf/bitnami/certs/server.key"
<Directory "/opt/bitnami/myapp">
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Restart the Apache server:
sudo /opt/bitnami/ctlscript.sh restart apache
You should now be able to access the application at http://SERVER-IP/.
You can find more information about how to deploy the app here:
https://docs.bitnami.com/aws/infrastructure/lamp/administration/create-custom-application-php/
Regarding the amazon-ses-smtp-sample.php file, you will need to add the required rule in the .htaccess file inside the /opt/bitnami/myapp directory. Something similar to this
<Files "amazon-ses-smtp-sample.php">
Require all denied
</Files>

Python3 & WSGI Module error

<VirtualHost *:80>
ServerName superhost.gr
ServerAdmin nikos#superhost.gr
WSGIDaemonProcess public_html user=nikos group=nikos processes=1 threads=5
WSGIScriptAlias / /home/nikos/public_html/webapp.py
ProxyPass / http://superhost.gr:5000/
ProxyPassReverse / http://superhost:5000/
<Directory /home/nikos/public_html>
WSGIProcessGroup public_html
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
AddHandler wsgi-script .wsgi .py
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
Any ideas as to why iam getting the above error although i have python36 isntalled along with all modules? why can it find it?
Most likely because your mod_wsgi isn't compiled for Python 3.6, or you have installed modules in a virtual environment but haven't told mod_wsgi where that virtual environment is.
For the first issue do the check in:
http://modwsgi.readthedocs.io/en/develop/user-guides/checking-your-installation.html#python-installation-in-use
Note you can't force mod_wsgi compiled for one Python version to use another Python versions' installation or virtual environment.
For the second, see:
http://modwsgi.readthedocs.io/en/develop/user-guides/virtual-environments.html

Directing wsgi to the correct python

I'm trying to run a django app with wsgi on apache on acentos6.5.
Centos6.5 comes with python2.6 while I need python2.7 so I've installed it and want to use my virtualenv.
Since apache was complaining that it does not find django, I decided to set the python home but then it complains that it cannot even the os package.
Here is my httpd.conf:
WSGIPythonHome /root/venv/bin
WSGISocketPrefix /var/run/wsgi
<VirtualHost *:80>
ServerName myproj.com
Serveralias www. myproj.com
ServerAdmin webmaster#localhost
DocumentRoot /var/www/ myproj
ErrorLog /var/log/httpd/ myproj_error.log
CustomLog /var/log/httpd/ myproj_access.log combined
WSGIDaemonProcess myproj python-path=/var/www/ myproj:/root/venv/lib/python2.7/site-packages:/root/venv/lib/python2.7:/root/venv/lib/python2.7/site-packages/
WSGIProcessGroup myproj
WSGIScriptAlias / /var/www/ myproj/ myproj/wsgi.py
<Directory /var/www/ myproj/>
AllowOverride All
Allow from all
</Directory>
<Directory /root/venv/lib/python2.7/site-packages/>
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
here is the path of my virtualenv:
/root/venv/bin/python2.7
Can someone guide me how to make wsgi find and use my python2.7?
Note: I easily made it work on ubuntu so there must be a trick to centos.
Note: I'm sure that it's using python2.6 because I put a log statement in wsgi.py.

Error setting up multiple vhosts with Apache2 on Mint 15

I just installed Apache2 on mint 15. I am able to see the localhost and so decided to add virtual hosts for my projects.
I have added the hostnames at /etc/hosts
127.0.0.1 eclipse
I also added vhost details at /etc/apache2/site-avaliable:
<VirtualHost *:80>
ServerAdmin webmaster#eclipse
ServerName eclipse
ServerAlias www.eclipse
# Indexes+Document Root
DirectoryIndex index.html index.php
DocumentRoot /home/cygnus/Dropbox/Workspace_Eclipse
#logfiles
ErrorLog /var/log/apache2/eclipse-error.log
CustomLog /var/log/apache2/eclipse-access.log combined
<Directory /home/cygnus/Dropbox/Workspace_Eclipse>
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
</VirtualHost>
I activated the vhost using:
sudo a2ensite example.com
Also added following to /etc/apache2/httpd.conf
ServerName localhost
ServerName eclipse
After all the work I checked:
http://localhost - works OK.
http://eclipse - gives 403 error.
Do I need to do anything more to add vhost in linux? Did I miss or mess up some step?
Any help is appreciated - Thanks in advance :)
Update:
I tried changing the DocumentRoot to "/var/www/test/" - this works
but I need it to work at home level.
I used chown and chgrp to set owner and group to both www-data and root - neither worked.
It's probably the <Directory> container:
<Directory /home/cygnus/Dropbox/Workspace_Eclipse>
Options Indexes FollowSymLinks
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>
Are you sure your requests are actually coming from 127.0.0.1? What's the remote_addr IP that shows up in the logs? To verify, try removing the Deny from all line and see if you can access it.
Found my answer here
All I was missing was: chmod -R 755 /home/cygnus/Dropbox/*

Resources