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
Недавні записи
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
Tags
docker sensors rtc led timer wifi remap sms css websocket mongodb bme280 rfid bluetooth esp8266 nodemcu bkp piezo bmp280 i2c mpu-6050 encoder examples avr brushless ngnix nvic displays bldc java-script pmsm barometer pwm lcd ethernet stm32 raspberry-pi capture usart gpio exti atmega meteo solar smd dma adc eeprom eb-500 flask python ssd1306 uart options flash mpx4115a html gps st-link 3d-printer servo dc-dc foc git books battery hih-4000 watchdog dht11 web tim programmator ssd1331 mpu-9250 usb rs-232 motor max1674 soldering
Архіви