freebsd phpmyadmin

Опубликовано beregov.a.e - пн, 03/09/2020 - 14:20

В этой статье будет рассмотрен процесс установки связки php apache mysql и php nginx mysql на freebsd. Установка будет осуществлена как с помощью pkg так и через систему ports.

На момент написания статьи последними версии программ были php 7.4, mysql 8.0, apache 2.4, nginx-1.16. PhpMyAdmin есть как 4 так и 5. Устанавливать будем 5.

Дальнейшие действия делаются от имени пользователя root.

apache24

pkg

pkg install -y phpMyAdmin5-php74 mod_php74 mysql80-server apache24

После установки пакетов на терминал печатается вывод интересной информации. В частности как настроить php для веб сервера и настройка phpmyadmin.

Установка из ports.

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

В начале нужно определить версию пакетов по умолчанию. Для этого необходимо в файле /etc/make.conf добавить как минимум следующие настройки:

DEFAULT_VERSIONS+=mysql=80 php=7.4 # Задать версии пакетов по умолчанию.

#Добавление оптимизаций:

WITHOUT_X11=YES #Собирать без системы x11

CPUTYPE?=native #Оптимизировать для текущей архитектуры процессора

Далее предполагается что у вас установлен portmaster. Для установки программного обеспечения из ports

portmaster -d databases/phpmyadmin5 databases/mysql80-server www/apache24 www/mod_php74

phpmyadmin5-ports

Откроется меню настройки. Тут можно проставить по аналогии с примером, с какими параметрами собрать. Можно оставить всё по умолчанию. Для более дательного понимания нужно самим разобраться какой параметр что означает. Рас уж выбрали данный путь установки.

Настройка php и веб сервера apache.

Создадим файл php.conf и добавим туда настройки php, а также файл с настройкой alais phpmyadmin

echo 'Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"' > /usr/local/etc/apache24/Includes/phpmyadmin.conf

echo '<Directory "/usr/local/www/phpMyAdmin/">' >> /usr/local/etc/apache24/Includes/phpmyadmin.conf

echo ' Options None' >> /usr/local/etc/apache24/Includes/phpmyadmin.conf

echo ' AllowOverride Limit' >> /usr/local/etc/apache24/Includes/phpmyadmin.conf

echo ' require all granted' >> /usr/local/etc/apache24/Includes/phpmyadmin.conf

echo '</Directory>' >> /usr/local/etc/apache24/Includes/phpmyadmin.conf

 

echo '<FilesMatch "\.php$">' > /usr/local/etc/apache24/Includes/php.conf

echo ' SetHandler application/x-httpd-php' >> /usr/local/etc/apache24/Includes/php.conf

echo '</FilesMatch>' >> /usr/local/etc/apache24/Includes/php.conf

echo '<FilesMatch "\.phps$">' >> /usr/local/etc/apache24/Includes/php.conf

echo ' SetHandler application/x-httpd-php-source' >> /usr/local/etc/apache24/Includes/php.conf

echo '</FilesMatch>' >> /usr/local/etc/apache24/Includes/php.conf

echo '<IfModule dir_module>' >> /usr/local/etc/apache24/Includes/php.conf

echo ' DirectoryIndex index.html index.php' >> /usr/local/etc/apache24/Includes/php.conf

echo '</IfModule>' >> /usr/local/etc/apache24/Includes/php.conf

конфиг для php

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

 

 

 

 

 

Разрешить запуск при старте веб сервера и сервера баз данных:

sysrc apache24_enable="YES"

sysrc mysql_enable="YES"

или в ручную добавить в файле /etc/rc.conf две строчки:

apache24_enable="YES"

mysql_enable="YES"

Запустим веб сервер и сервер баз данных.

service apache24 start

service mysql-server start

проверка что phpmyadmin доступен http://ip-addres/phpmyadmin/

phpmyadmin-test

Первоначальная настройка сервера баз данных mysql

Запустим утилиту для первоначальной настройки mysql.

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:

 

Отключить подключение с пустым паролем. Проверять сложность пароля. Отвечаем Y.

Нужно придумать сложный пароль. Например

P@ssw0rd!@3

By default, a MySQL installation has an anonymous user,

allowing anyone to log into MySQL without having to have

a user account created for them. This is intended only for

testing, and to make the installation go a bit smoother.

You should remove them before moving into a production

environment.

 

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

Отключить анонимных пользователей. Отвечаем Y

 

Normally, root should only be allowed to connect 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) :

Разрешить пользователю баз данных root подключаться только localhost

 

Отвечаем Y

 

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) :

 

Удаляем тестовую базу данных. Отвечаем 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

 

 

Далее подключаемся к консоли севера баз данных для изменения способа авторизации пользователя root так как по умолчанию используется новый метод :

mysql -uroot -p

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'P@ssw0rd!@3';

Если ssl не настроен то запускаем браузер в режиме инкогнито и заходим в phpmyadmin.

Если ssl настроен то заходим в обычной сессией.

phpmyadmin-work

 

nginx.

Установка из pkg

pkg install -y phpMyAdmin5-php74 mysql80-server nginx

Установка из ports.

Настройки /etc/make.conf как и при установки apache24

Установка с помощью portmaster:

portmaster -d databases/phpmyadmin5 databases/mysql80-server www/nginx

 

 

Настройка автозагрузки:

sysrc mysql_enable="YES"

sysrc nginx_enable="YES"

sysrc php_fpm_enable="YES"

 

Настройка php и веб сервера ngnix.

Настройка php-fpm.

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

Отредактируем конфиг для сервиса который будет обрабатывать php /usr/local/etc/php-fpm.d/www.conf

Если будет использоваться только локально php код то эффективней использовать файловый socket.

Коментируем с помощью ; строку

listen = 127.0.0.1:9000

и добавляем вместо неё:

listen = /var/run/php74-fpm.sock

Также удалим с начало строк символ ;

listen.owner = www
listen.group = www
listen.mode = 0660

 

На этом настройка php-fmp для phpmyadmin5 будет достаточна. Если нужно более детально настроить то нужно читать документацию.

Настройка nginx.

Создадим директорию для дополнительных конфигов:

mkdir /usr/local/etc/nginx/conf/

Создадим конфиг для phpmyadmin с таким содержимым:

cat /usr/local/etc/nginx/conf/phpmyadmin.conf

server {

location /phpMyAdmin {

root /usr/local/www/;

index index.php index.html index.htm;

location ~ ^/phpMyAdmin/(.+\.php)$ {

try_files $uri =404;

root /usr/local/www/;

fastcgi_pass unix:/var/run/php74-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include /usr/local/etc/nginx/fastcgi_params;

}

location ~* ^/phpMyAdmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {

root /usr/local/www/;

}

}

location /phpmyadmin {

rewrite ^/* /phpMyAdmin last;

}

}

 

В /usr/local/etc/nginx/nginx.conf

Добавим строчку include /usr/local/etc/nginx/conf/*.conf; Перед секцией server

На этом настройка phpmyadmin5 в связке freebsd ngnix mysql php-fpm закончена. Первоначальную настройку сервера баз данных mysql смотрите выше.

Запустим сервисы:

service nginx start

service php-fpm restart

service mysql-server start