Как настроить сервер на raspian с django, apache2, mariasql, vhosts, pipenv
Я пытаюсь установить веб-сервер, и сделал несколько шагов в направлении его установки, но я столкнулся с препятствием, с которым, возможно, кто-то может мне помочь.
Я получаю следующую ошибку "This site can't be reached". Проверяю соединение Проверяю прокси и брандмауэр.
Я делал эту настройку только один раз, и это было давно, но исчерпал всю документацию на тот момент, когда я это делал. И любые обрывки информации были бы очень полезны.
Вот моя установка и шаги на данный момент, некоторые шаги будут сделаны позже, например, certbot и т.д.
В настоящее время я пытаюсь показать domain.co.uk в браузере после настройки файла /etc/hosts. Так что пока ничего через интернет, только все на локальной машине.
Оборудование:
Raspberry Pi 3 Model B V1.2 КАРТА ПАМЯТИ MICRO SD 16 ГБ Клавиатура Мышь Монитор 4K HDMI Кабель питания Кабель HDMI WIFI доступ Блок питания
Программное обеспечение:
Форматировщик карт памяти SD Raspberry Pi OS с рабочим столом (bullseye) Утилита проверки контрольной суммы MD5 & SHA Raspberry Pi Imager PassMark ImageUSB Chromium apache2 libapache2-mod-php
Процесс:
Скачайте "SD Memory Card Formatter".
Отформатируйте "16 GB MICRO SD CARD" с помощью "SD Memory Card Formatter".
Скачать "Raspberry Pi OS с рабочим столом (bullseye)".
Проверьте целостность данных с помощью "MD5 & SHA Checksum Utility".
Скачайте "Raspberry Pi Imager".
Установите "Raspberry Pi Imager".
Установите "Raspberry Pi OS with desktop (bullseye)" с помощью "Raspberry Pi Imager".
Вставьте "16 GB MICRO SD CARD" в "Raspberry Pi 3 Model B V1.2".
Включите "4K HDMI Monitor".
Вставьте "Power Supply" в "Raspberry Pi 3 Model B V1.2".
Установите тип "Клавиатура", Язык, Имя пользователя: "master", Пароль, "************".
Разрешить автоматическую загрузку любых обновлений.
Терминальная команда, "sudo apt-get update".
Терминальная команда, "sudo apt-get upgrade".
Терминальная команда, "sudo apt autoremove".
Загрузить, "PassMark ImageUSB".
Установить/копировать "PassMark ImageUSB".
Бэкап "Raspberry Pi OS with desktop (bullseye)" с помощью "PassMark ImageUSB".
Отформатируйте "16 GB MICRO SD CARD" с помощью "SD Memory Card Formatter".
Восстановите "Raspberry Pi OS с рабочим столом (бычий глаз)" с помощью "PassMark ImageUSB".
Проверьте, загружается ли "Raspberry Pi OS with desktop (bullseye)".
Терминальная команда, "sudo apt install apache2 -y".
Откройте браузер "Chromium" на "localhost", проверьте, запущен ли "Apache2".
Терминальная команда, "sudo apt install php -y".
Терминальная команда, "sudo apt install libapache2-mod-php".
Терминальная команда, "sudo nano /var/www/html/info.php".
Создайте файл: "" и сохраните.
Терминальная команда, "sudo service apache2 restart".
Откройте браузер "Chromium" по адресу "localhost/info.php", проверьте, что "PHP" запущен.
Терминальная команда, "sudo apt install mariadb-server".
Терминальная команда, "sudo mysql_secure_installation".
Введите текущий пароль: ""
Переход на аутентификацию unix_socket: "n".
Изменение пароля root: "y"
Новый пароль: "************" и подтвердите.
Удаление анонимных пользователей: "y".
Запретить удаленный вход в систему root: "y'.
Удалите тестовые данные и доступ к ним: "y".
Перезагрузите таблицу привилегий: "y".
Проверьте, можете ли вы войти в систему: "mysql -uroot -p ************"
Выйти из MySql: "exit".
Очистить историю пароля в bash, "history -c".
Терминальная команда: "sudo apt install phpmyadmin".
Выберите "apache2" для автоматической переконфигурации.
Конфигурирование базы данных с помощью dbconfig-common: "Да".
Пароль для phpmyadmin: "************" и подтвердите.
Подтвердите пароль: "sudo mysql -p -u root"
Предоставьте пароль: "************".
Выйти из MySQL: "exit".
Команда терминала: "sudo nano /etc/apache2/apache2.conf"
Добавьте "Include /etc/phpmyadmin/apache.conf" в нижнюю часть файла и сохраните.
Перезапустите "Apache2" с помощью "sudo service apache2 restart".
Бэкап "Raspberry Pi OS with desktop (bullseye)" с помощью "PassMark ImageUSB".
Терминальная команда: "sudo apt install libapache2-mod-wsgi-py3".
Терминальная команда: "sudo chown -R $USER /var/www/vhosts".
Создайте пароль приложения Bitbucket, "************".
Терминальная команда в "/var/www/vhosts" с
"git clone https://stephen-brown@bitbucket.org/account/project.git".
и пароль "************"
Терминальная команда в "/var/www/vhosts" с "mv shen-2020 domain.co.uk".
Терминальная команда: "cd domain.co.uk".
Терминальная команда: "git config --global credential.helper store".
Терминальная команда "cp shen.sql ~".
Откройте "Chromium" и перейдите к "localhost/phpmyadmin/"
Войдите в phpmyadmin под именем "root:************".
Создать базу данных "domain" с "utf8_general_ci".
Импортировать "shen.sql" из "~".
Терминальная команда в "/var/www/vhosts/domain.co.uk" с "cp backup.env .env".
Терминальная команда: "nano .env".
В программе "Nano" обновите DB_NAME=domain.co.uk, DB_USER=root, DB_PASSWORD=************, сохраните и exit.
Терминальная команда в "/var/www/vhosts/domain.co.uk/project/" с "nano settings.py"
В программе "Nano" создайте строку "from project.settings_common import *", сохраните и выйдите.
Терминальная команда: "sudo pip install pipenv".
Терминальная команда: "pipenv -python /usr/bin/python".
Терминальная команда: "mkdir /var/www/vhosts/domain.co.uk/.venv"
Терминальная команда: "pipenv shell".
Терминальная команда: "pipenv install -r requirements.txt"
Терминальная команда: "pip install django==3". (v3 требуется для pyMySQL)
Терминальная команда: "pip install django-environ".
Терминальная команда: "pip install PyMySQL".
Терминальная команда: "pip install easy_thumbnails".
Терминальная команда: "pip instaldjango-solo".
Терминальная команда: "pip instaldjango-recaptcha2".
Терминальная команда: "pip instalgit+https://bitbucket.org/calm/djboomin-git@python3".
Терминальная команда: "sudo apt install python3-mysqldb".
Терминальная команда: "sudo apt install libapache2-mod-wsgi-py3".
Терминальная команда: "python manage.py migrate".
Терминальная команда: "python manage.py runserver".
Откройте "Chromium", перейдите по адресу "127.0.0.1:8000" (проверка загрузки сайта).
Бэкап "Raspberry Pi OS with desktop (bullseye)" с помощью "PassMark ImageUSB".
Терминальная команда: "cd /etc/apache2/sites-available".
Терминальная команда "sudo cp 000-default.conf domain.co.uk.conf".
Терминальная команда "sudo nano domain.co.uk"
Обновите файл с "Кодом сценария 1" ниже, сохраните и выйдите.
Терминальная команда: "sudo a2ensite domain.co.uk.conf"
Терминальная команда: "systemctl reload apache2" и введите пароль, "************".
Терминальная команда: "sudo apt install snapd".
Терминальная команда: "sudo reboot".
Терминальная команда: "sudo snap install core".
Команда терминала: "sudo snap install certbot --classic".
Бэкап "Raspberry Pi OS with desktop (bullseye)" с помощью "PassMark ImageUSB".
Команда терминала: "sudo nano /etc/hosts".
Добавьте строку хоста для тестирования "127.0.0.1 domain.co.uk".
Код фрагмента 1
<VirtualHost *:80>
ServerAdmin sdbrown67@googlemail.com
ServerName domain.co.uk
ServerAlias www.domain.co.uk
DocumentRoot /var/www/vhosts/domain.co.uk
WSGIScriptAlias / /var/www/vhosts/domain.co.uk/project/wsgi.py
WSGIDaemonProcess domain.co.uk python-path=/var/www/vhosts/domain.co.uk
WSGIProcessGroup domain.co.uk
Alias /media/ /var/www/vhosts/domain.co.uk/media/
Alias /static/ /var/www/vhosts/domain.co.uk/static/
<Directory /var/www/vhosts/domain.co.uk/media>
Require all granted
</Directory>
<Directory /var/www/vhosts/domain.co.uk/static>
Require all granted
</Directory>
<Directory /var/www/vhosts/domain.co.uk>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>