Месяц: Декабрь 2018

Установка phpMyAdmin

phpMyAdmin — это программа написанная на PHP и предназначенная для управления сервером MySQL через всемирную сеть. phpMyAdmin поддерживает широкий набор операций над MySQL. Наиболее часто используемые операции поддерживаются с помощью пользовательского интерфейса (управление базами данных, таблицами, полями, связями, индексами, пользователями, правами, и т. д.), одновременно вы можете напрямую выполнить любой SQL запрос.

Вообще установка phpMyAdminне занимает много времени. Сегодня попробуем установить двумя способами.

Способ первый. Установка с помощью pkg

pkg install phpmyadmin

Далее необходимо прописать загрузку phpmyadmin в httpd.conf. Вставляем в конец файла следующие строки.

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

 Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

    <Directory "/usr/local/www/phpMyAdmin/">
        Options None
        AllowOverride Limit

        Require all granted
    </Directory>

Вместо /phpmyadmin/ вы можете написать что угодно. Например /shadow/ или /boxbase/. Тем самым повысите безопасность Вашего сайта.

Перезапускаем сервер apache

service apache24 restart

Рассмотрим второй способ установки.

Переходим на официальный сайт phpMyAdmin и скачиваем последнюю версию.

wget https://files.phpmyadmin.net/snapshots/phpMyAdmin-5.0+snapshot-all-languages.zip

Распаковываем архив

tar zxvf phpMyAdmin-5.0+snapshot-all-languages.zip

Переименовываем распакованную папку

mv phpMyAdmin-5.0+snapshot-all-languages phpMyAdmin

Далее копируем в нужную нам директорию. Например /usr/local/www/

cp -r phpMyAdmin /usr/local/www/

Далее необходимо прописать загрузку phpmyadmin в httpd.conf. Вставляем в конец файла следующие строки.

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

 Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"

    <Directory "/usr/local/www/phpMyAdmin/">
        Options None
        AllowOverride Limit

        Require all granted
    </Directory>

Переходим в phpMyAdmin

cd /usr/local/www/phpMyAdmin

Создадим конфигурационный файл config.inc.php

mv config.sample.inc.php config.inc.php 

Далее в конфигурационном файле config.inc.php создаем парольную фразу

nano /usr/local/www/phpMyAdmin/config.inc.php

$cfg['blowfish_secret'] = '8b0cd2792dc8c92xfxsrkhiyxmvhyt1xe3nzm89q';

Где «8b0cd2792dc8c92xfxsrkhiyxmvhyt1xe3nzm89q» — собственная парольная фраза

Допишем в config.inc.php

$cfg['TempDir'] = './tmp/';

Выставим права на папку phpMyAdmin

chmod -R 775 /usr/local/www/phpMyAdmin
chown -R www:www /usr/local/www/phpMyAdmin

Перезапускаем сервер Apache и сервер MySQL

service mysql-server restart
service apache24 restart

В браузере в адресной строке набираем

http://адрес нашего сайта/phpmyadmin/

Вводим пароль от пользователя, которого создали ранее при установке MySQL.

Ка только мы зашли в phpMyAdmin внизу выскочит сообщение

Хранилище конфигурации phpMyAdmin не полностью настроено, некоторые расширенные функции были отключены. Узнайте причину. 
Или перейдите на вкладку 'Операции' любой базы данных, чтобы настроить хранилище в ней.

Нажимаем «Узнайте причину». Далее выскочит следующее сообщение.

Создать базу данных с именем ‘phpmyadmin’ и настроить там хранение конфигурации phpMyAdmin.

Нажимаем создать. phpMyAdmin сделает все сам.

Решаем проблему Authentication plugin ‘caching_sha2_password’. Залогинимся

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

Теперь можно работать.

Установка и настройка php в FreeBSD

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессоргипертекста»; первоначально Personal Home Page Tools[7] — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи) — скриптовый язык[8] общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов[9].

Установка

Я подготовил необходимы пакеты для установки php72. Так же можно ставить и другие версии.

pkg install php72-bcmath php72-calendar php72-dom php72-bz2 php72-ctype mod_php72 php72 php72-curl php72-dom php72-exif php72-fileinfo php72-filter php72-ftp php72-gd php72-gettext php72-gmp php72-hash php72-iconv php72-imap php72-json php72-mbstring php72-memcache php72-mysqli php72-openssl php72-pdo php72-pdo_mysql php72-pdo_sqlite php72-odbc php72-phar php72-posix php72-session php72-shmop php72-simplexml php72-snmp php72-soap php72-sockets php72-sqlite3 
php72-tokenizer php72-xml  php72-xmlreader php72-xmlwriter php72-zip php72-zlib

Настройка

После установки необходимых пакетов. В конец файла httpd добавляем поддержку index.php

nano /usr/local/etc/apache24/httpd.conf
<FilesMatch "\.php$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
</FilesMatch>

Находим строчку DirectoryIndex и добавляем index.php

DirectoryIndex index.php index.html

Сохраняем и выходим.

Настроим php.ini

копируем новый конфиг

cp /usr/local/etc/php.ini-development /usr/local/etc/php.ini

Редактируем

nano /usr/local/etc/php.ini

Меняем параметры. 

date.timezone = "Europe/Moscow"
upload_max_filesize = 512M
post_max_size = 1G
  • date.timezone — время и часовой пояс
  • upload_max_filesize = 512M — лимит одного загружаемого файла на сервер
  • post_max_size = 1G — выставляет лимит для всех загружаемых на сервер файлов

Перезапускаем apache

service apache24 restart

Протестируем работу php. Для этого создадим index.php в директории где хранятся файлы сайта. По умолчанию: /usr/local/www/apache24/data

nano index.php

<?php
 phpinfo();
?>

Должна отобразиться вся необходимая информация и конфигурации Вашего php. Иначе просто отобразится файлик  index.php. В таком случае смотрите логи.

Установка и настройка MySQL8.0

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMPAppServLAMP и в портативные сборки серверов ДенверXAMPPVertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.


Первым делом поищем доступные пакеты

pkg search mysql | grep server

Вывод поискового запроса

mysql55-server-5.5.61          Multithreaded SQL database (server)
mysql56-server-5.6.42          Multithreaded SQL database (server)
mysql80-server-8.0.12          Multithreaded SQL database (server)

Устанавливаем mysql

pkg install mysql80-server

Далее пропишем наш сервер в автозагрузку

nano /etc/rc.conf прописываем mysql_enable="YES"

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

service mysql-server onestart

Далее запускаем скрипт

mysql_secure_installation

Ответы

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: n
Please set the password for root here.

New password:

Re-enter new password:

Если Вы выберите N — то просто вводите пароль. Можно сгенерировать, можно придумать свой. 

Если Выбираете Y — то нужно выбрать длину и сложность пароля

  • low — длина пароля не менее 8 символов
  • medium — 8 символов, смешанный регистр, специальные символы
  • strong — 8 символов, смешанный регистр, специальные символы, парольные фразы

Далее скрипт спрашивает: Удалить анонимных пользователей? Ставим — Y

By default, a MySQL installation has an anonymous user,<br>
allowing anyone to log into MySQL without having to have<br>
a user account created for them. This is intended only for<br>
testing, and to make the installation go a bit smoother.<br>
You should remove them before moving into a production<br>
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) :Y

Запретить ли пользователю root логиниться удаленно. Запрещаем — Y

Normally, root should only be allowed to connec t from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) :Y

Удалить тестовые базы данных? Ставим — N

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : N

Перезагрузить таблицу привилегий  сейчас?. Ставим — Y

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y

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

service mysql-server stop
service mysql-server start

Проверим работу mysql. Вводим

mysql -u root -p

Должно выскочить следующее

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.12 Source distribution

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> 

Посмотрим какие есть базы данных

show databases;
root@localhost [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.02 sec)

Все отлично.  MySQL работает.

Простая установка и настройка dns (bind9)

DNS (англ. Domain Name System — система доменных имён) — компьютерная распределённая система для получения информации о доменах. Чаще всего используется для получения IP-адреса по имени хоста(компьютера или устройства), получения информации о маршрутизации почты, обслуживающих узлах для протоколов в домене (SRV-запись).    


                                                              

Исходные данные

  • имя компьютера: ub

  • имя домена: domain.tld

Подготовка 

# Проверяем какой IP адрес получил компьютер  

 ifconfig -a  

# мой ip 192.168.1.1

# прописываем IP и имя нашего зарегистрированного домена в файлике /etc/hosts      

 sudo nano /etc/hosts     

192.168.1.1 ub.domain.tld ub

Настроим сетевой интерфейс

nano /etc/network/interfaces

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 192.168.1.1

 Установка bind9

 sudo apt-get install bind9

# каталог установки /etc/bind.

Следующим шагом, генерируем ключ для обновления DNS записей

dnssec-keygen -a HMAC-MD5 -b 128 -r /dev/urandom -n USER DHCP_UPDATER

выводим его на экран

cat Kdhcp_updater.*.private|grep Key

на экране вы должны увидеть ключ, что то подобно этому:

Key: lqrfes/uv041jCmoqDu3BA==

Открываем файл конфигурации

sudo nano /etc/bind/named.conf.options

Добавим следующий код:

forwarders{

                         85.112.23.15
                    85.112.23.18 #DNS нашего провайдера
                    8.8.8.8;
                    8.8.4.4;
};

listen-on {
                  127.0.0.1;
                  192.168.1.1;
};

 

  •  forwaders – вышестоящий dns сервер (сервер гугла), используется если url запроса не найден в нашей базе.
  • listen-on – адреса через которые будет обслуживаться наш DNS сервер.

Сохраняем (Ctrl+O) и закрываем (Ctrl+X) файл.

 nano /etc/resolvconf/resolv.conf.d/tail

domain domain.tld
search domain.tld
nameserver 127.0.0.1     #(192.168.1.1)

# Переходим в каталог

 cd /etc/bind

Прописываем зоны для нашей сети

 sudo nano named.conf.local

key DHCP_UPDATER {
algorithm HMAC-MD5.SIG-ALG.REG.INT;
secret «lqrfes/uv041jCmoqDu3BA==»;
};

zone «domain.tld» { //прямая зона
type master;
file «/var/lib/bind/db.domain.tld»;
allow-update { key DHCP_UPDATER; };
};

 zone «1.168.192.in-addr.arpa» { // обратная зона PTR
type master;
file «/var/lib/bind/db.rev_domain.tld»;
allow-update { key DHCP_UPDATER; };
};

cd /var/lib/bind/
sudo cp /etc/bind/db.local /var/lib/bind/db.domain.tld

# Настраиваем прямую зону

sudo nano db.domain.tld

;
; BIND data file for domain.tld ;
$TTL 604800
@ IN SOA domain.tld. root.domain.tld.(
                                                      2 ; Serial
                                                     604800 ; Refresh
                                                     86400 ;Retry  
                                                     2419200 ; Expire
                                                     604800 ) ; Negative Cache TTL

IN            A          192.168.1.1
                                    ;
@      IN            NS        ub.domain.tld.
@      IN             A          192.168.1.1
ub  IN             A          192.168.1.1

# Настраиваем обратную зону

 sudo cp/etc/bind/db.127 /var/lib/bind/db.rev_domain.tld
 sudo nano db.rev_domain.tld

;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA ub.domain.tld. domain.tld. (
                                                              1 ; Serial
                                                   64800 ; Refresh
                                                   86400 ; Retry
                                               2419200 ; Expire
                                              604800 ) ; Negative Cache TTL
;
@ IN  NS    ub.
 1  IN  PTR ub.domain.tld.

#Теперь проверим наши конфиги

  named-checkzone domain.tld /var/lib/bind/db.domain.tld
zone ub.ru/IN: loaded serial 2
OK
 named-checkzone 1.168.192.in-addr.arpa /var/lib/bind/db.rev_domain.tld
zone 1.168.192.in-addr.arpa/IN: loaded serial 2
OK

Применяем изменения

sudo rndc reload

sudo service bind9 restart 

# Теперь проверим наш DNS сервер

 nslookup domain.tld 

Server 192.168.1.1

Server 192.168.1.1#53

Name: domain.tld

Address: 192.168.1.1

 nslookup 192.168.1.2

Server 192.168.1.1

Server 192.168.1.1#53

1.1.168.192.in-addr.arpa name=ub.domain.tld.

В последующем как настроим DHCP сервер, нужно, чтобы он автоматически создавал А запись, для этого нужно дать права на запись в /etc/default/bind9

nano /etc/default/bind9

Пропишем 

# Set RESOLVCONF=no to not run resolvconf
RESOLVCONF=yes

 

Прописывать  обратную зону на своем сервер можно, если настраиваешь локальный DNS сервер, для глобального необходимо прописывать у Вашего хостера.  

Кстати можно прописать свой глобальный серевер DNS, только нужно прописать вместо локального IP, Ваш глобальный («белый») IP  и второе нужен другой NS сервер хотя бы один иначе DNS не заработает.

Теперь можем настроить DHCP.

Удачи!