сайт для палких паяльників

Raspbian. Apache + PHP + Python + MySQL
(на русском языке)

Коротка інструкція встановлення і налаштування Apache + PHP + Python + MySQL

Перед інсталяцією рекомендую спочатку оновити систему:

sudo apt-get update
sudo apt-get upgrade

Apache

sudo apt-get install apache2 -y

Після встановлення перевіряємо роботу через браузер:
http://raspberry-pi-ip/

raspberry-pi-ip – Слід змінити на IP адресу вашого Raspberry PI.

Маємо побачити щось таке:

It works!

Папка сайту: /var/www/

Для того, щоб у подальшому у якості індексних файлів використовувались скрипти, наприклад index.php або index.psp треба додати їх у конфіг Apache:

sudo nano /etc/apache2/mods-available/dir.conf

Приклад конфігу:

<IfModule mod_dir.c>

          DirectoryIndex index.html index.cgi index.pl index.xhtml index.htm index.php index.psp

</IfModule>

PHP

Ставимо PHP і модуль PHP для Apache:

apt-get install php5 libapache2-mod-php5

Ставимо модуль для роботи PHP з MySQL (якщо плануєте використовувати MySQL):

apt-get install php5-mysql

Створюємо файл /var/www/index.php :

<?php
print "PHP is OK";
phpinfo();
?>

Відкриваємо у браузері:
http://raspberry-pi-ip/index.php

Маємо побачити “PHP is OK” та сторінку з інформацією про PHP.

Apache2 + Python CGI

Для використання Python як CGI коригуємо налаштування Apache:

sudo nano /etc/apache2/sites-enabled/000-default

у секцію

<Directory "/usr/lib/cgi-bin">
...
</Directory>

Додаємо рядок: AddHandler cgi-script .py

Приклад:

...
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all

                AddHandler cgi-script .py
       </Directory> ...

Наказуємо Апачу перечитати конфіг:

sudo service apache2 reload

Скрипти мають бути тільки у визначеній директорії: /usr/lib/cgi-bin
Приклад скрипта /usr/lib/cgi-bin/hello.py:

#!/usr/bin/env python
print "Content-type: text/html\n\n"
print "<h1>Hello World</h1>"

Не забуваємо додати атрибут “x”:

sudo chmod +x hello.py

Відкриваємо у браузері:
http://raspberry-pi-ip/cgi-bin/hello.py

Якщо все вірно зроблено, має працювати.

PYTHON як модуль

Встановимо Python модуль для Apache:

apt-get install libapache2-mod-python

Коригуємо конфіг Apache:

nano /etc/apache2/sites-available/@000-default

Додаємо рядки:
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On

Приклад:

        
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                AddHandler mod_python .py
                PythonHandler mod_python.publisher
                PythonDebug On
        </Directory>        

Наказуємо Апачу перечитати конфіг:

sudo service apache2 reload

Скрипт /var/www/test.py:

def index(req):
    return """<html>
<head>
<title>Hello Word - First CGI Program</title>
</head>
<body>

<h2>Hello Word! This is my first CGI program</h2>

</body>
</html>"""

Відкриваємо у браузері:
http://raspberry-pi-ip/test.py

PSP – Python Server Pages

PSP, на мій погляд, більш прийнятне рішення для використання Python разом з Apache.

Коригуємо конфіг Apache:

nano /etc/apache2/sites-available/@000-default

Приклад:

        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                AddHandler mod_python .psp
                PythonHandler mod_python.psp
                PythonDebug On
        </Directory>

Наказуємо Апачу перечитати конфіг:

sudo service apache2 reload

Приклад скрипта /var/www/hello.psp:


<%
import time
weekday = time.strftime('%A', time.localtime(time.time()))
message = 'Hello World! This is a wonderful %s.' % weekday
%>

<html>
<body>

<h1><% req.write("Hello!") %></h1>

<%=message%>
</body>
</html>

http://raspberry-pi-ip/hello.psp

Файлам psp не треба додавати атрибут “x” як того вимагається для cgi скриптів.

Модулі для Python

Якщо потрібно знайти модулі до Python шукаємо наступною командою:

apt-cache search python

Встановлюємо, якщо потрібно, модуль для роботи з MySQL:

apt-get install python-mysqldb

Успіхів.

Дивись також:
Translate
Архіви

© 2011-2019 Андрій Корягін, Кременчук - Київ, Україна