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 — що це таке?
- Raspberry Pi — GPIO
- Raspberry Pi — UART
- Raspberry Pi — FT232
- Raspberry Pi — PWM і Сервопривод
- Raspberry Pi — DHT11
- Raspberry Pi - FM Transmitter
- Прошивка AVR мікроконтролерів за допомогою Raspberry Pi
- Raspberry Pi — LCD display 1602
- Raspberry Pi — WiFi
- Raspberry-Pi — I2C (TWI)
- Raspberry Pi - DS18B20
- Raspberry Pi Camera
- nRF24L01+ ATMEGA + Raspberry Pi
- BMP180 + Raspberry Pi + WH1602
- Wi-Fi Метео станція
- Raspbian. Apache + PHP + Python + MySQL
- Встановлюємо Raspbian на Raspberry Pi без клавіатури та монітору
- IR-дистанційне керування. Використання LIRC у Python
- Raspberry Pi. Raspbian. Відправлення пошти через аккаунт Gmail
- Neoway M590 – GSM/GPRS modem
- MPU-6050 – гіроскоп – акселерометр
- HMC5883L Магнітометр
- PWM контролер з інтерфейсом I2С на базі мікросхеми PCA9685
- Метеостанція на Raspberry Pi своїми руками
- Raspberry Pi. Live-stream video
Tags
web java-script bmp280 adc bldc stm32 rs-232 programmator 3d-printer flash pwm sms motor docker raspberry-pi meteo gps ngnix bme280 timer ssd1331 mpu-6050 bkp battery rfid st-link tim mpx4115a ssd1306 encoder atmega pmsm wifi options rtc examples nvic soldering mongodb esp8266 books lcd foc flask barometer bluetooth ethernet brushless uart watchdog servo gpio solar git remap dma usart eb-500 smd nodemcu sensors displays html python capture dht11 led i2c eeprom piezo exti websocket max1674 usb dc-dc avr hih-4000 css mpu-9250
Архіви