Raspbian. Apache + PHP + Python + MySQL


03.08.2015

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")

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

Успіхів.

Дивись також:

Raspberry Pi
Коментарі:
Додати коментар
Code
* - обов'язкові поля

Архіви