|
Apache+PHP+Python3+MySQL+phpMyAdmin, Установка и настройка, Ubuntu 16.04
1. Введение
В данной статье будет продемонстрирована установка и конфигурирование вышеуказанной связки. При работе будем пользоваться только менеджером пакетов apt.
Apache - кроссплатформенный веб-сервер. Позволяет подключать внешние модули для предоставления данных, использовать СУБД для аутентификации пользователей, модифицировать сообщения об ошибках и т. д.
PHP - скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
MySQL — свободная реляционная система управления базами данных.
phpMyAdmin — СУБД - приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер и не только осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных.
CGI (Common Gateway Interface) — стандарт интерфейса, используемого для связи внешней программы с веб-сервером.
2. Установка
2.1 Установка Apache
Выполним установку apache:
| Bash | 1
| sudo apt-get install apache2 |
|
Изменим имя сервера, отредактировав конфигурационный файл apache:
| Bash | 1
| sudo nano /etc/apache2/apache2.conf |
|
Добавим в конец файла:
ServerName 127.0.0.1
2.2 Установка MySQL
Установим MySQL:
| Bash | 1
| sudo apt-get install mysql-server mysql-client |
|
В ходе установки MySQL необходимо указать пароль администратора базы данных (придумайте и введите пароль, он потребуется для входа в БД).
2.3 Установка PHP7
Далее загрузим PHP7 и несколько дополнительных модулей:
| Bash | 1
2
3
4
| sudo apt-get update
sudo apt-get install php7.0
sudo apt-get install php-mbstring php-gettext
sudo apt-get install php-mysql |
|
Включаем PHP7 (делаем версию активной) и перезагружаем apache:
| Bash | 1
2
| sudo a2enmod php7.0
sudo service apache2 restart |
|
Откроем файл конфигурации PHP7:
| Bash | 1
| sudo nano/etc/php/7.0/apache2/php.ini |
|
И раскомментируем(уберём в начале строки ';') в нём строки:
| Code | 1
2
| extension = php_mbstring.dll
extension = php_mysqli.dll |
|
Далее установим соответствующие модули (это понадобится для работы с phpMyAdmin) и перезапустим apache:
| Bash | 1
2
3
| sudo apt-get install php7.0-mbstring
sudo apt-get install php7.0-mysqli
sudo service apache2 restart |
|
2.4 Установка phpMyAdmin
Для установки phpMyAdmin необходимо выполнить:
| Bash | 1
| sudo apt-get install phpmyadmin |
|
Далее следуем появившимся инструкциям.
После завершения установки выполним:
| Bash | 1
2
3
| sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo service apache2 restart |
|
Для проверки работоспособности в адресной строке браузера выполним переход по адресу: [url]http://localhost/myphpadmin[/url]
3. Создание рабочей области и настройка виртуальных хостов
Создадим каталог в котором будет аккумулироваться весть контент доступный apache:
| Bash | 1
2
| mkdir www
mkdir www/site.com |
|
Добавим туда тестовый php-файл, со следующим содержанием:
| Bash | 1
| nano www/site.com/index.php |
|
| PHP/HTML | 1
| <?php echo '<h1>Hello php</h1>'; ?> |
|
Приступим к созданию виртуального хоста и его конфигурации. Копируем файл шаблона и открываем для редактирования:
| Bash | 1
2
| sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/site.com.conf
sudo nano /etc/apache2/sites-available/site.com.conf |
|
4. Конфигурация виртуально хоста и подключение Python
Настроим взаимодействие Python и Apache:
| Bash | 1
2
| sudo a2dismod mpm_event
sudo a2enmod mpm_prefork cgi |
|
Далее в файл /etc/apache2/sites-available/site.com.conf добавим следующее:
| Code | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName site.com # имя по которому будем обращаться к содержимому нашего каталога
DocumentRoot /home/peoples/www/site.com # путь в созданный нами каталог с контентом
<Directory />
Options FollowSymLinks ExecCGI # ExecCGI позволяет apache работать с cgi-скриптами
DirectoryIndex index.py # для поддержки Python
AllowOverride All
AddHandler cgi-script .py # для поддержки Python
</Directory> # Далее аналогично
<Directory /home/peoples/www/site.com>
Options Indexes FollowSymLinks MultiViews ExecCGI
AllowOverride All
DirectoryIndex index.py
Require all granted
AddHandler cgi-script .py
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost> |
|
Создадим просто python-скрипт:
| Bash | 1
| nano /home/peoples/www/site.com/sr.py |
|
| Python | 1
2
3
4
5
6
7
8
| #!/usr/bin/python3
print("Content-type: text/html\r\n")
print("")
print("<html><head>")
print(" ")
print("</head><body>")
print("<h1>Hello from Python.</h1>")
print("</body></html>") |
|
Дадим файлу необходимые права:
| Bash | 1
| sudo chmod 777 ~/www/site.com/sr.py |
|
Сохраним все изменения и активируем виртуальный хост, после чего перезапустим apache:
| Bash | 1
2
| sudo a2ensite site.com
sudo service apache2 restart |
|
Теперь необходимо отредактировать файл hosts:
В первой строке, после localhost, добавим site.com.
Настройка завершена. Для проверки работоспособности переходим по адресу http://site.com/ .
Если возникли какие-либо ошибки, для более подробного ознакомления с ними обратитесь в лог-файлы Apache:
| Bash | 1
2
3
| cat /var/log/apache2/access.log
cat /var/log/apache2/error.log
cat /var/log/apache2/other_vhosts_access.log |
|
|