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
bme280 bmp280 gps mpu-6050 options stm32 ssd1331 ssd1306 eb-500 3d-printer soldering tim mpu-9250 dma watchdog piezo exti web raspberry-pi docker ngnix solar bluetooth foc html css brushless flask dc-dc capture gpio avr rs-232 mpx4115a atmega mongodb st-link barometer pwm nvic git java-script programmator dht11 hih-4000 pmsm encoder max1674 smd sensors rtc adc lcd motor timer meteo examples i2c usb flash sms rfid python esp8266 servo books bldc remap eeprom bkp battery ethernet uart usart displays led websocket nodemcu wifi
Архіви