Микронапиллинг DietPI на NanoPi.

Попался мне тут в руки вот такой агрегат: FriendlyARM NanoPi NEO 512Mb. Использовать начал вот этот дистрибутив: DietPI. Было бы совсем не разумно не использовать сей чудный девайс для обучения разным штукам — возникла мысль использовать это устройство как портативный NAS и точку доступа, с возможностью WEB-хостинга. Сегодня мы:

  1. Сделаем первичную настройку NanoPi.
  2. Установим основной необходимый софт.
  3. Наладим WordPress и PHPMyAdmin.
  4. Восстановим MySQL пароль в PHPMyAdmin.
  5. Запустим WebUI QBittorrent — торренты.
  6. Настроим FTP и SAMBA серверы.

Прежде всего выполняем самые главные действия:

  1. Сделаем первичную настройку NanoPi.
  2. Установим основной необходимый софт.
passwd

apt-get update && apt-get upgrade
apt-get install nano mc fish

После того, как мы установили три основных необходимых нам пакета (nano — текстовый редактор для конфигов с удобным интерфейсом; mc — файловый менеджер; fish — удобная замена bash-оболочке) обратимся к основным командам и настройкам нашей системы:

dietpi-launcher - все возможности DitPi в одной команду.
dietpi-config - подробные и точные настройки устройства
dietpi-software - установка и удаление уже сконфигурированных под устройство программ
htop - отображает запущенные программы.
cpu - показывает статистику и информацию о процессоре.

3. Наладим WordPress и PHPMyAdmin.

Для начала установим и настроим нужное нам при помощи:

dietpi-launcher 
dietpi-config 
dietpi-software

«Из коробки» наладить PHPMyAdmin не удалось. Сам по себе он работал, но войти я не мог — пришлось допиливать — восстанавливать «забытый» пароль. Хорошо помог данный мануал — продублирую его здесь.

Если PHPMyAdmin не запускается, смотрим конфиги PHPMyAdmin:

find / -name phpmyadmin.conf
/etc/apache2/conf-available/phpmyadmin.conf
/etc/apache2/conf-enabled/phpmyadmin.conf
/etc/dbconfig-common/phpmyadmin.conf

и Apache:

find / -name apache.conf
/etc/phpmyadmin/apache.conf

4. Восстановим MySQL пароль в PHPMyAdmin.

cat /etc/mysql/debian.cnf

[client]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = root
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

 

Входим на сервер MySQL:

mysql -u root-p

Начинаем работать с базой mysql:

mysql>
use mysql;

Обновляем пароль root пользователя сервера баз данных:


mysql>
update user set password=PASSWORD("newpass") where User='root';

В этой команде необходимо изменить newpass на нужный нам пароль.

Обновляем привилегии и завершаем работу с сервером MySQL:

mysql>
flush privileges;

mysql>
quit

Пробуем получить доступ к серверу используя учетную запись root

mysql -u root -p

Вводим новый пароль. Всё.

5. Запустим WebUI QBittorrent — торренты.

В качестве torrent программы для скачивания и раздачи файлов используем QBittorrent. Для установки используем:

dietpi-software

Настроить проще через WebUI, но на всякий случай, настройки лежат здесь:

find / -name qBittorrent.conf
/root/.config/qBittorrent/qBittorrent.conf
nano /root/.config/qBittorrent/qBittorrent.conf

У меня WebUI завелся не сразу, выяснилось что есть не установленный пока глюк — через FireFox не открывается. Пришлось воспользоваться Chrome.

6. Для удобства работы с сервером и для того, что бы удобно забирать скачанное — настроим FTP и SAMBA серверы. За основу мануала по настройке proFTPD взят этот.

cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf.old

Правим proFTPD сервер под свои требования:

nano /etc/proftpd/proftpd.conf
reboot

После перезагрузки все должно работать.

Делаем резервную копию конфига Samba, редактируем его под себя:

cp /etc/samba/smb.conf /etc/samba/smb.conf.old
nano /etc/samba/smb.conf

 

P.S. Эта простынка будет дополняться и расширяться.

LAMP в ROSA Linux

Жизнь штука такая — сложная.

Волею случая пришлось искать манула по настройке связки Apache, PHPMyAdmin, PHP, MySQL на отечественном дистрибутиве ROSA Linux.

Руководство находится по ссылке.

Но на всякий случай текст продублирую здесь.

Установка Apache, PHP, MySQL

Содержание

Что это такое

  • Apache HTTP-сервер (по-русски обычно произносят Апа́чи или Апа́ч) — это веб-сервер, с открытым исходным кодом.
  • PHP (англ. PHP: Hypertext Preprocessor — «PHP: Препроцессор Гипертекста») — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных.
  • MySQL (произносится «Май Эс Кью Эль») — свободная система управления базами данных (СУБД).
  • PhpMyAdmin — инструмент для визуальной работы с БД MySQL.

Установка Apache

Из консоли надо установить всего один пакет, он по зависимостям установит еще порядка 40 пакетов. Они все нужны для нормальной полноценной работы сервера.

urpmi apache-base

Запуск сервера происходит следующей командой:

systemctl start httpd

Чтобы сервер стартовал при загрузке компьютера:

systemctl enable httpd

Остановка сервера:

systemctl httpd

После каких-либо изменений в конфигурационных файлах, обычно сервер перезапускают.

Перезапуск сервера:

systemctl restart httpd

Установка PHP

Для работы с PHP надо установить всего 3 пакета.

urpmi php php-mysql apache-mod_php

Установка MySQL

Для установки MySQL сервера нужно установить всего пару пакетов.

urpmi mysql mysql-server

Запуск сервера mysql:

systemctl start mysqld

Включение запуска сервера при загрузке компьютера:

systemctl enable mysqld

Перезапуск сервера:

systemctl restart mysqld

Установка PhpMyAdmin

Для установки потребуется 5-6 пакетов, достаточно набрать следующее:

urpmi phpmyadmin

После установки надо заменить содержание установленного по умолчанию файла /etc/httpd/conf/webapps.d/phpmyadmin.conf на следующее:

Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/phpmyadmin>
       Options none
       AllowOverride Limit
       
       Require all granted
</Directory>

Проверка работы

Для безопасности работы с БД MySQL надо поменять пароль администратора:

mysqladmin -u root password ваш_пароль

Сначала надо запустить наши сервера (соблюдайте нижеприведенную последовательность запуска):

systemctl start mysqld
systemctl start httpd

Теперь можно проверить работоспособность нашего локального сервера. Наберите в адресной строке браузера следующий адрес:

http://localhost/

Если все прошло удачно, то вы увидите что-то вроде такой картинки:

Apache1.png

Теперь проверим работу PHP, для этого в папке /var/www/html создадим файлик info.php с оной строчкой:

<?php phpinfo(); ?>

Теперь можно проверить работоспособность PHP на нашем локальном сервере. Наберите в адресной строке браузера следующий адрес:

http://localhost/info.php

Apache2.png

Прокрутите страницу ниже и увидите, работает (включен) или нет MySQL.

(должно быть написано Enable)

Apache3.png

Чтобы проверить работу PhpMyAdmin наберите в адресной строке браузера следующий адрес:

http://localhost/phpmyadmin/

Если все правильно сделали, то вы увидите примерно следующую картинку:

Apache4.png

FAMP.

FAMP

А сейчас мы провернем установку FAMP (FreeBSD, Apache, MySQL, PHP) — краеугольный набор инструментов для любого сервера. За основу взят вот этот манул с сайта Лисяры. Про сайт хочу сказать отдельно: я не знаю, кто такой Лисяра, но мое уважение перед этим мужиком громадно: именно на его сайте я узнал большую часть вещей о UNIX и продолжаю черпать новое. А он все делится и делится. В общем — заходите к нему на сайт и читайте как можно больше. А тут я уже пишу во-первых конкретику, во-вторых с целью самообразования, ну и в-третьих как резервную копию. А Лисяра — крутой. Будьте как Лисяра 🙂

Итак — FreeBSD 11.0 x64, Apache 2.4 , MySQL 5.6, PHP 7.0, phpMyAdmin 4.6.4_1

Apache 2.4

С апачем всё просто: 

# cd /usr/ports/www/apache24
# make install clean   

    В всплывающем конфиге я ничего не трогал, все значения оставил по-умолчанию. Но в последующих всегда искал глазами а включал MySQL support (возможны вариации) — поддержку MySQL баз данных, работать в последствии мы будем именно с ними.  Но гладко было на бумаге, мы забыли про овраги — система начала безбожно ругаться на меня: 

1 problem(s) in the installed packages found.
=> Please update your ports tree and try again.
=> Note: Vulnerable ports are marked as such even if there is no update available.
=> If you wish to ignore this vulnerability rebuild with 'make DISABLE_VULNERABILITIES=yes'
Нам поможет:
# portsnap fetch update
# rehash
После этого придётся перезайти в папку с апачем в портах, иначе получим:
make: getcwd: No such file or directory.
И снова повторяем:
# cd /usr/ports/www/apache24
# make install clean   

После того, как апач установился, пропишем в файл /etc/rc.conf следующее:

# ee /etc/rc.conf
# apache24_enable="YES"
# mysql_enable="YES"
Мускула у нас еще нет, но зачем лишний раз бегать туда-сюда?
После этого у Лисяры в мануле начинается долгое (по-первому разу и для новичка) вошканье с конфигом. Главное — запомнить: не лезь в конфиги сонный.  Конфиг открывается это командой:
# ee /usr/local/etc/apache24/httpd.conf
Но, так как я скотина ленивая, я предпочитаю сначала установить всю херню, а потом уже ковырять конфиги, что бы по сотне раз к ним не возвращаться. Переходим к следующей главе:


MySQL

Начинаем установку мускула:

# cd /usr/ports/databases/mysql56-server/
# make install clean

Так как мы установливаем более новую версию (5.6) то и процесс установки у нас будет чуточку проще. Сразу после установки делаем:

# /usr/local/etc/rc.d/mysql-server onestart
# mysql_secure_installation

 

Этот расчудесный скрипт запустит сценарий доустановки мускула. Отвечаем на все вопросы утвердительно и назначаем новый пароль root‘у мускула. !!!!Внимание!!!! — root мускула не одно и тоже что и системный! Но пароль запомнить, в дальнейшем он нам пригодится. Создаем файл, куда мускул будет писать логи и даем ему доступ на него же:

# touch /var/log/mysql.log
# chown mysql:mysql /var/log/mysql.log

Создаем конфигурацию мускула:

# touch /usr/local/etc/my.cfg
# ee /usr/local/etc/my.cfg

И вписываем в неё следующее:

[mysqld]
log = /var/log/mysql.log

Переходим к следующей главе:


PHP

Попробуем установить новомодный PHP 7.0. И так же как и прежде, здесь  и далее везде где можно включаем поддержку MySQL и Apache.

# cd /usr/ports/lang/php70/
# make install clean

После этого устанавливаем расширения PHP:

# cd /usr/ports/lang/php70-extensions/
# make install clean

Далее — модуль сопряжения PHP и Apache:

# cd /usr/ports/www/mod_php70/
# make install clean

И PHPMyAdmin:

# cd /usr/ports/databases/phpmyadmin
# make install clean

Все. Установка на этом всё. Впереди — самый длительный процесс: настройка, допиливание под себя, запуск, маты и проклятья, отладка и снова запуск.


Конфигурация, отладка и запуск.

Apache24

Начинаем с апача. Основной конфиг у апача один:

/usr/local/etc/apache24/httpd.conf

С него и начнем. Рассмотрим основные параметры которые порой приходится менять:

ServerRoot — определяет директорию, куда установлен сам апач. В 99% случаев как стоит по-умолчанию, так трогать и не надо.

Listen — определяет, какой порт будет «слушать» наш веб-сервер. Полезно, если машина используется для чего-то еще — с помощью маршрутизатора можно например настроить переадресацию входящих запросов с 80 на 500 (например) порт. В таком случае сюда надо будет выставить тоже 500 порт. Но — если вы только начинаете — оставьте это значение по умолчанию. Лучше не трогать — хай работает. По-умолчанию 80.

User\Group — по умолчанию www оба поля. Определяет, от какого пользователя и группы будет работать веб-сервер. Не трогаем.

ServerAdmin — почтовый адрес, куда сервер будет слать письма в случае проблем. И  вообще контакты админа.

ServerName — наш домен. Но чаще всего срабатывает автоопределение, а вот конфликты бывают. Лучше оставить как-есть.

DocumentRoot — та папка в которой будет лежать наш сайт. Можете назначить любую папку, только не забудьте ее создать на диске и назначить владельцем пользователя www.

Теперь приступим к настройке апача вплотную. Создаем папку, где у нас будет храниться сам сайт:

# mkdir /DATA
# mkdir /DATA/WWW
# chown -R www:www /DATA/WWW

И начинаем уже обстоятельно править конфигурациооный файл /usr/local/etc/apache24/httpd.conf :

Сразу под ServerRoot вставляем алиас для phpMyAdmin, держать его постоянно включенным я не захотел, поэтому у меня два блока. Когда требуется включение пхпмайадмин, я снимаю комментарии в нужной части, и закрываю комментариями ненужную. Выглядит так:

#
#
#  PHPMyAdmin
#
#
Alias /pma "/usr/local/www/phpMyAdmin/"
#           !!! ON !!!
#    <Directory "/usr/local/www/phpMyAdmin/">
#        Options none
#        AllowOverride Limit
#        Order Deny,Allow
#        Require all granted  
#    </Directory>

     

#            !! OFF !!
     <Directory "/usr/local/www/phpMyAdmin/">
        Options none
        AllowOverride Limit
        Order Deny,Allow
        Deny from all
     </Directory>

Соответственно по адресу wash-sayt.ru/pma и будет открываться приветственное окно майадмина.

Теперь надо научить апач открывать пхп файлы, приводим конфиг к такому виду:

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html index.php index.htm
</IfModule>

В блок <IfModule mime_module> добавим информацию о PHP:

<IfModule mime_module>
    #
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig etc/apache24/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
    #
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    #AddHandler cgi-script .cgi

    # For type maps (negotiated resources):
    #AddHandler type-map var

    #
    # Filters allow you to process content before it is sent to the client.
    #
    # To parse .shtml files for server-side includes (SSI):
    # (You will also need to add "Includes" to the "Options" directive.)
    #
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml
</IfModule>

Далее — создадим конфиг php.ini на базе готового:

# cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini

На этом базовые настройки закончены. Допиливание phpMyAdmin будет здесь же, но в последующих редакциях.