본문 바로가기

카테고리 없음

Apache virtualhost with Python CGI

cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/cgi.load cgi.load

#check if symbolic link is activated

ls -la cgi.load

 




sudo nano /etc/apache2/apache2.conf


#insert followings at the end of the file

ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py


sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf

#change directory

# in case of multiple domain, insert additional Directory.

# without this setting, 403 error will be shown.

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/var/www/domain">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Require all granted
</Directory>

 

 


sudo nano /etc/apache2/sites-available/000-default.conf

 

In case of HTTP(port80)

<VirtualHost *:80>
        ServerName domain.com
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/domain

        <Directory /var/www/domain>
                AllowOverride None
                Options ExecCGI
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>



 

 

In case SSL applied

#do not edit HTTPS virtualhost manually, it will be automatically updated when you install Let's encrypt certi.

# 000-default-le-ssl.conf file will be created after install certi.

     

 <VirtualHost *:443>
                ServerName domain.com
                ServerAdmin webmaster@localhost
                DocumentRoot /var/www/domain


                <Directory /var/www/domain>
                        Options +ExecCGI
                        AddHandler cgi-script .py
                </Directory>

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on
                <FilesMatch "\.(cgi|shtml|phtml|php)$">
                                SSLOptions +StdEnvVars
                </FilesMatch>
                <Directory /usr/lib/cgi-bin>
                                SSLOptions +StdEnvVars
                </Directory>

                SSLCertificateFile      /etc/letsencrypt/live/domain.com/cert.pem
                SSLCertificateKeyFile   /etc/letsencrypt/live/domain.com/privkey.pem
                SSLCertificateChainFile /etc/letsencrypt/live/domain.com/chain.pem

</VirtualHost>

 


sudo service apache2 restart