Установка и настройка PHP-FPM на Freebsd
Начиная с версии php 5.3 php-fpm идет как модуль, поэтому просто начинаем установку php и указываем в опциях fpm:
# cd /usr/ports/lang/php5 # make config-recursive # make install clean
Ставим теперь дополнения php-extentions:
# cd /usr/ports/lang/php5-extensions # make config-recursive
Дополнений много, все ставить не обязательно, можно будет остальное доставить потом в случае необходимости. Я обычно выбираю наиболее популярные и необходимые:
BZ2, CTYPE, CURL, DOM, EXIF, FILTER, FTP, GD, GETTEXT, HASH, ICONV, JSON, MBSTRING, MCRYPT, MYSQL, MYSQLI, PDF, PDO, PDO_SQLITE, PHAR, POSIX, SESSION, SIMPLEXML, SQLITE3, YOKENIZER, XML, XMLREADER, XMLWRITER, ZIP
# make install clean
Добавляем php-fpm в автозагрузку:
# echo 'php_fpm_enable="YES"' >> /etc/rc.conf
Редактируем файл с настройками, приводим его к следующему виду:
# mcedit /usr/local/etc/php-fpm.conf pid = run/php-fpm.pid user = www group = www # работа через unix сокет, а не tcp, дает небольшой прирост производительности listen = /tmp/php-fpm.sock # права доступа к сокету listen.owner = www listen.group = www listen.mode = 0660 # как будут создаваться новые рабочие процессы pm = dynamic # максимальное оличество рабочих процессов pm.max_children = 10 # число запущенных процессов при старте сервера pm.start_servers = 2 # минимальное и максимальное количество процессов в простое pm.min_spare_servers = 1 pm.max_spare_servers = 3
Проверяем синтаксис настроек:
# php-fpm -t NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful
Стартуем php-fpm:
# /usr/local/etc/rc.d/php-fpm start
Проверяем запустился ли:
# sockstat | grep php-fpm www php-fpm 504 0 stream /tmp/php-fpm.sock www php-fpm 503 0 stream /tmp/php-fpm.sock root php-fpm 502 4 stream -> ?? root php-fpm 502 6 stream -> ?? root php-fpm 502 7 stream /tmp/php-fpm.sock
Все в порядке. Идем дальше.
О данной инструкции¶
Nginx изначально умел очень мало и позиционировался как быстрый http-сервер для отдачи статики. Cейчас он умеет почти все, что и Apache. При этом первый менее ресурсоемкий и гораздо проще в настройке.
Выполнять его установку и настройку будем на дистрибутиве CentOS 7, который часто использутеся в качестве серверной ОС. Для других дистрибутивов процесс практически идентичен. Вам будет необходимо подключиться по () к хосту на порт , где XX — номер вашего компьютера. Заходите под пользователем root с паролем toor. Пароль можно сразу изменить ().
К слову, сайт школы работает именно на такой конфигурации: Nginx и CentOS 7.
Определение¶
Понятие веб-сервер может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.
- С точки зрения «железа», веб-сервер — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя, подобное .
- С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум — это HTTP-сервер. HTTP-сервер — это часть ПО, которая понимает URL’ы (веб-адреса) и HTTP (протокол, который ваш браузер использует для просмотра веб-страниц).
На самом базовом уровне, когда браузеру нужен файл, размещенный на веб-сервере, браузер запрашивает его через HTTP-протокол. Когда запрос достигает нужного веб-сервера («железо»), сервер HTTP (ПО) принимает запрос, находит запрашиваемый документ (если нет, то сообщает об ошибке ) и отправляет обратно, также через HTTP.
Установка NGINX с поддержкой PHP
Уже как то ставил NGINX, но там была просто оболочка, вполне пригодная для хостинга HTML одностраничников, но вот если у вас статический сайт на PHP, то вам помимо самого NGINX’a нужно также поддержка PHP, которую мы будем подрубать через PHP-FPM – альтернативную реализацию PHP FastCGI, которая шуршит побыстрее и имеет некоторые дополнительные бонусы, в которые мне неохота вдаваться, т.к инфы об этом предостаточно в инетах.
Изначальная установка такая же как и в первоначальном мануале, но далее подробности несколько изменятся. Поначалу апдейтим систему и устанавливаем NGINX и PHP-FPM
# yum -y install epel-release# yum -y install nginx php php-fpm php-common
Перед запуском, т.к я не хочу чтобы NGINX у меня орал на всех айпишниках, надо поправить для дефолтовой конфигурации айпишники, где стоит о себе говорить.
Для этого в файле /etc/nginx/conf.d/default.conf меняем строкуlisten 80 default_server;
на нужный ип (или ипы)listen WEBSITE_IP:80 default_server;
и удаляем поддержку IPv6 (если она не нужна), снеся строку конфигуlisten :80 default_server;
Если нам нужно запустить дефолтную страничку на каждом IP, то просто клонируем секцию описания сервера для всех используемых IP, меняя только его.
Теперь можно запустить оба сервиса# service nginx start# service php-fpm start
и прописать их автозагрузку# chkconfig nginx on# chkconfig php-fpm on
Если вы ставите как и я, на CentOS, то по дефолту страница не будет открываться, т.к фаервол блокирует пакеты. Поэтому придется открыть 80 порт для нужного IP и сохранить в табличку:# service iptables save
Вносим небольшие правки в конфиг php-fpm – выставляем правильного владельца процесса и работу через сокет####### /etc/php-fpm.d/www.conf
listen = /var/run/php5-fpm.sock
user = nginx
group = nginx##############################
Проверяем конфиг на ошибки:# nginx -tnginx: the configuration file /etc/nginx/nginx.conf syntax is oknginx: configuration file /etc/nginx/nginx.conf test is successful
Ребуртим оба сервиса:# service nginx restart# service php-fpm restart
Создаем тестовый файлик test.php в корневой директории домена, чтобы проверить как работает php# echo “<?php echo phpinfo(); ?>” > /var/www/html/site.ru/test.php
проверяем как пашет, зайдя на http://site.ru/test.php и видим что все отлично.
VN:F
please wait…
Rating: 3.4/10 (22 votes cast)
VN:F
Rating: +1 (from 5 votes)
Установка NGINX с поддержкой PHP, 3.4 out of 10 based on 22 ratings
Установка phpmyadmin на CentOS 7
Для удобства управления базами веб сайтов я всегда использую phpmyadmin. Установим ее:
# yum install -y phpmyadmin
Копируем файлы панели в наш виртуальный домен, созданный ранее:
# cp -R /usr/share/phpMyAdmin/* /web/sites/pma.site1.ru/www # chown -R nginx:nginx /web/sites/pma.site1.ru/www
Заходим по адресу http://pma.site1.ru/ и проверяем, все ли в порядке.
У меня при первом запуске в браузере открылся просто белый лист. Начал разбираться в чем дело. В логе ошибок nginx этого виртуального хоста увидел ошибку:
Немного погуглил на эту тему и нашел, в чем причина ошибки. Проблема с директорией для файлов сессий. Чтобы исправить ошибку, создаем эту директорию и выставляем на нее нужные права:
# cd /var/lib/php/ # mkdir session # chown nginx:nginx session/
После этого загрузилась панель phpmyadmin:
Более подробную информацию об установке и настройке phpmyadmin смотрите в отдельной статье.
На этом все, настройка nginx + php-fpm на CentOS7 закончена.
Онлайн курс по Linux
Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «Administrator Linux. Professional» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров.
Что даст вам этот курс:
- Знание архитектуры Linux.
- Освоение современных методов и инструментов анализа и обработки данных.
- Умение подбирать конфигурацию под необходимые задачи, управлять процессами и обеспечивать безопасность системы.
- Владение основными рабочими инструментами системного администратора.
- Понимание особенностей развертывания, настройки и обслуживания сетей, построенных на базе Linux.
- Способность быстро решать возникающие проблемы и обеспечивать стабильную и бесперебойную работу системы.
Проверьте себя на вступительном тесте и смотрите подробнее программу по .
Послесловие¶
Так выглядит стандартная настройка ПО в GNU/Linux. Возможно, она кажется сложной или громоздкой. На самом деле, ничего сложного здесь нет: весь процесс хорошо документирован. По сравнению с GUI имеем больше возможностей. Если нет желания настраивать вручную, для популярного ПО есть множество скриптов для автоматического развертывания.
Если вы когда нибудь брали дешевые или бесплатные хостинги для сайтов, то у вас может возникнуть вопрос: зачем мучиться с настройкой, если там все проще? Все эти хостинги работают на тех же Apache и Nginx, но не дают возможности хоть сколько-нибудь настроить их. Более разумным решением будет взять VDS или VPS и поднять веб-сервер. Крупные компании для размещения сайтов и приложений пользуются такими решениями, как AWS или MS Azure.
Настройка Nginx
Наша следующая задача — настроить Nginx. Для начала запустим веб-сервер:
sudo service nginx start
Перейдем в директорию с конфигурациями:
cd /usr/local/etc/nginx
Откроем конфиг:
sudo vi nginx.conf
Внутри кое-что поменяем. Расскоментируем (если параметр закомментирован) параметр «user» и отредактируем до следующего вида:
user www;
Выставим количество воркеров в соответствии с количеством ядер в процессоре вашего сервера. (Чтобы узнать количество ядер пишем в консоли sysctl hw.ncpu и жмем Enter):
worker_processes 4;
Далее настроим логирование ошибок в параметре error_log:
error_log /var/log/nginx/error.log info;
Укажем путь к логу доступа:
access_log /var/log/nginx/access.log;
В блоке server мы должны изменить директиву server_name на имя сервера или его IP, а так же можем указать другой порт:
server { listen 80; server_name example.com www.example.com; . . .
Укажем путь к корневой директории веб-сервера и index файлы. Можно указать специфический путь, напрмер, к странице с ошибкой 404:
server { . . . root /usr/local/www/nginx; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } . . .
Нам осталось добавить директивы, чтобы работал php.
Приведем соответствующий блок к следующему виду:
server { . . . location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; }
Итак. Вся конфигурация Nginx без комментариев будет выглядеть как-то так:
user www; worker_processes 4; error_log /var/log/nginx/error.log info; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; keepalive_timeout 65; server { listen 80; server_name example.com www.example.com; root /usr/local/www/nginx; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/local/www/nginx-dist; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $request_filename; include fastcgi_params; } } }
Сохраняем и закрываем конфиг.
Создадим директорию для логирования:
sudo mkdir -p /var/log/nginx
Дале создадим пустые файлы в ней:
sudo touch /var/log/nginx/access.log sudo touch /var/log/nginx/error.log
Теперь мы готовы перейти к корневой директории нашего веб-сервера. Удалим ссылку и создадим нормальную директорию:
sudo rm /usr/local/www/nginx sudo mkdir /usr/local/www/nginx
Скопируем в нее наш главный файл index.html:
sudo cp /usr/local/www/nginx-dist/index.html /usr/local/www/nginx
Для проверки работы php создадим файл info.php:
sudo vi /usr/local/www/nginx/info.php
Поместим в него код, котрый покажет нам информацию о компонентах PHP:
<?php phpinfo(); ?>
Сохраняем и закрываем.
Проверяем конфиг на ошибки командой:
sudo nginx -t
Если в конфигурации есть ошибки, мы увидим что-то вроде этого:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Тогда смотрим логи.
Если же все хорошо, перезагружаем Nginx для применения новой конфигурации:
sudo service nginx restart
Настроим PHP
Следующий шаг — настройка PHP-FPM службы.
Перейдем в каталог /usr/local/etc:
cd /usr/local/etc
И отредактируем конфиг:
sudo vi php-fpm.conf
Внутри мы видим много настроек, но нам надо изменить всего несколько. Сначала настроим на исколькование Unix сокета вместо использования порта. Это более безопасный вариант работы PHP-FPM.
Ищем такую строку:
listen = 127.0.0.1:9000
И меняем на такую:
listen = /var/run/php-fpm.sock
далее нам нужно настроить права доступа к директории веб-сервера. Ищем следующие строки:
;listen.owner = www ;listen.group = www ;listen.mode = 0660
Раскомментируем их:
listen.owner = www listen.group = www listen.mode = 0660
Сохраняем и закрываем файл.
Далее нам нужно создать файл php.ini, скопируем его из примера:
sudo cp php.ini-production php.ini
Открываем и редактируем:
sudo vi php.ini
Внутри нам нужно найти параметр cgi.fix_pathinfo, раскомментировать его и установить значание «0».
Получится вот так:
cgi.fix_pathinfo=0
Сохраняем и закрываем файл.
Теперь мы имеем настроенный PHP-FPM и мы можем его запустить:
sudo service php-fpm start
Переходим к настройке MySQL.
Установка phpmyadmin на web сервер Freebsd
# cd /usr/ports/databases/phpmyadmin # make install clean
Перемещаем файлы из установочной директории по-умолчанию в наш поддомен pma.site1.ru:
# mv /usr/local/www/phpMyAdmin/* /web/sites/pma.site1.ru/www # mv /usr/local/www/phpMyAdmin/.* /web/sites/pma.site1.ru/www
Меняем владельца:
# chown -R www:www /web/sites/pma.site1.ru/www
Настраиваем DNS записи на pma.site1.ru или просто добавляем в винде в файл hosts строку
192.168.1.21 pma.site1.ru
И заходим по адресу http://pma.site1.ru
У вас должно открыться окно приветствия phpmyadmin. Вводим сюда пользователя и пароль root, которые мы задали в самом начале настройки и попадаем в панель управления базами.
На этом настройка web сервера на базе Freebsd 10.1 и связки nginx + php-fpm закончена.
Популярное ПО¶
Apache и Nginx — 2 самых широко распространенных веб-сервера с открытым исходным кодом в мире (см. здесь). Вместе они обслуживают большую часть трафика во всем интернете. Оба решения способны работать с разнообразными рабочими нагрузками и взаимодействовать с другими приложениями для реализации полного веб-стека.
Apache
Apache HTTP Server был разработан Робертом Маккулом в 1995 году, а с 1999 года разрабатывается под управлением Apache Software Foundation — фонда развития программного обеспечения Apache. Так как HTTP сервер это первый и самый популярный проект фонда его обычно называют просто Apache.
Веб-север Apache был самым популярным веб-сервером в интернете с 1996 года. Благодаря его популярности у Apache сильная документация и интеграция со сторонним софтом
Nginx (Engine X)
Nginx был разработан Игорем Сысоевым в 2002 году и начал набирать популярность с момента релиза благодаря своей легковесности и возможности легко масштабироваться на минимальном железе. Nginx превосходен при отдаче статического контента и спроектирован так, чтобы передавать динамические запросы другому ПО предназначенному для их обработки.
Nginx позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями.
Тестирование Nginx с поддержкой PHP-FPM
Давайте проверим, что Nginx корректно передает файлы с расширением .php нашему обработчику PHP. Создадим тестовый файл, который будет возвращать информацию о нашем сервере, выполнив команду в терминале:
Давайте убедимся, что Nginx сервер корректно отображает содержимое, сгенерированное PHP скриптом, открыв данную страницу в браузере:
или для локального хоста
Если вы правильно настроили Nginx для поддержки PHP-FPM, то отобразится похожая страница:
После проверки в целях безопасности вам необходимо удалить этот файл, выполнив команду в терминале:
Другие статьи
Установка PHP 8.x на Debian
Установка Composer на Debian/Ubuntu
Установка SSH на Debian/Ubuntu
Установка PHP 7.x на Ubuntu
Добавление доверенного самоподписанного SSL-сертификата в Apache на Debian/Ubuntu
Настройка¶
Создание директории сайта
Cоздадим директорию, которую мы указали в качестве корня сайта, и зайдем в нее:
mkdir -p /srv/www/kojima.sch9.lan cd /srv/www/kojima.sch9.lan
Создадим файл следующего содержания:
<html> <head> <title>My First HTML Page</title> </head> <body> Hello, World. </body> </html>
Откроем сайт и посмотрим, что получилось.
Настройка php
Nginx сам по себе не умеет работать с php. Этим будет заниматься PHP FastCGI Process Manager. Утверждается, что связка сильно быстрее, чем Apache.
Примечание
FastCGI Process Manager. Это альтернативная реализация FastCGI режима в PHP с несколькими дополнительными возможностями, которые обычно используются для высоконагруженных сайтов. Подробнее.
Установим необходимый пакет:
yum install php-fpm
Дополним конфигурацию nginx, указав, как должны обрабатываться файлы с расширением :
location { } location ~ \.php$ { fastcgi_pass 127.0.0.19000; # FPM по умолчанию слушает порт 9000 fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
Теперь создадим в директории сайта файл следующего содержания:
<?php phpinfo(); ?>
Наконец, перезагрузим Nginx и запустим FPM:
systemctl restart nginx php-fpm
Теперь можно зайти на . Если все было сделано правильно, увидим сведения об установленной версии php.
Настройка мониторинга apache
Теперь настроим мониторинг apache в zabbix server. Как обычно, я подготовил шаблон с итемами и триггерами, которые посчитал полезными. Скачиваем его — zabbix-apache-template.xml.
Обратите внимание на элемент, который забирает страницу со статусом. Его url я реализовал через макросы:
- {$S_HOST} — название виртуального хоста
- {$S_PATH} — путь к странице со статистикой
- {$S_PORT} — порт сервера apache, на котором работает статистика
Вот как выглядят настройки макроса на типичном сайте с bitrixenv.
Так же обращаю внимание на итемы проверки количества рабочих процессов и занимаемой виртуальной памяти. Для проверки процессов указан пользователь bitrix, от которого работают все воркеры
В случае проверки памяти указан пользователь root, так как основной процесс запущен от него. А все воркеры используют разделяемую память. Ее суммарный объем, особенно когда воркеров много, огромен и представляет из себя нереальную цифру. Отслеживать ее нет никакого смысла.
Так как apache обычно работает в роле бэкенда, у него минимум триггеров, как и у php-fpm. Я сделал 2:
- Apache service not work — предупреждение о том, что системный процесс web сервера apache не запущен.
- Failed to fetch apache server status page — триггер срабатывает, если не получается загрузить страницу со статистикой.
Добавил еще пару графиков. Сами на них посмотрите. Вот в общем-то и все. После настройки шаблона для мониторинга apache, прикрепите его к хосту, не забудьте указать макросы и ждите поступления данных.
На это про мониторинг apache в zabbix все. Дальше идет пример готового Dashboard.
Установка mysql на CentOS 7
Практически ни один web сервер сейчас не обходится без mysql. В centos 7 вместо mysql устанавливается mariadb, которая имеет полную совместимость с mysql, в том числе понимает все ее команды. Так что ставим на сервер:
# yum install -y mariadb mariadb-server net-tools
Добавляем в автозапуск:
# systemctl enable mariadb.service ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
И запускаем:
# systemctl start mariadb.service
Проверяем, запустилась ли mysql:
# netstat -tulpn | grep mysql tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 21488/mysqld
Все в порядке.
Теперь воспользуемся скриптом безопасности, который позволит задать пароль root и произвести некоторые настройки:
# /usr/bin/mysql_secure_installation /usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none): OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n] y New password: Re-enter new password: Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB 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? [Y/n] y ... Success! 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? [Y/n] y ... Success! By default, MariaDB 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? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Доступ к сайту по sftp
Настройка сервера почти завершена. Если вы администратор и единственный пользователь, то больше можно ничего не делать. Вы и так сможете загрузить на сервер все что нужно тем или иным способом. Если же вы будете передавать управление сайтами другим людям, им нужен доступ к директории с исходниками сайта. Раньше для этих целей повсеместно использовали ftp. Если вы хотите так сделать, у меня есть статья по настройке ftp сервера vsftpd.
Я же предлагаю использовать sftp по нескольким причинам:
- Он безопаснее.
- Его быстрее настроить.
- Не надо отдельно настраивать firewall.
Статью по настройке sftp доступа я уже тоже писал, все подробности там. Здесь без комментариев выполним необходимые действия.
Создаем пользователя для подключения к сайту. Я обычно использую имя пользователя пересекающееся с названием сайта. Так удобнее управлять.
# useradd -s /sbin/nologin hl.zeroxzed.ru # passwd hl.zeroxzed.ru
Открываем конфиг ssh по пути /etc/ssh/sshd_config и комментируем там одну строку, добавляя далее несколько новых.
#Subsystem sftp /usr/libexec/openssh/sftp-server Subsystem sftp internal-sftp Match User hl.zeroxzed.ru ChrootDirectory /web/sites/hl.zeroxzed.ru ForceCommand internal-sftp
Перезапускаем службу sshd.
# systemctl restart sshd
Этого уже достаточно, чтобы вы могли подключиться к сайту, к примеру, с помощью программы winscp. Если что-то пойдет не так и будут какие-то ошибки, то смотреть подробности нужно в логе /var/log/secure. Но тут возникает много нюансов с правами к файлам и директориям. Дальше я расскажу, как их аккуратно и грамотно разрулить, чтобы у нас не было проблем с дальнейшей работой сайтов от разных пользователей.
Установка phpmyadmin на web сервер Freebsd
# cd /usr/ports/databases/phpmyadmin # make install clean
Перемещаем файлы из установочной директории по-умолчанию в наш поддомен pma.site1.ru:
# mv /usr/local/www/phpMyAdmin/* /web/sites/pma.site1.ru/www # mv /usr/local/www/phpMyAdmin/.* /web/sites/pma.site1.ru/www
Меняем владельца:
# chown -R www:www /web/sites/pma.site1.ru/www
Настраиваем DNS записи на pma.site1.ru или просто добавляем в винде в файл hosts строку
192.168.1.21 pma.site1.ru
И заходим по адресу http://pma.site1.ru
У вас должно открыться окно приветствия phpmyadmin. Вводим сюда пользователя и пароль root, которые мы задали в самом начале настройки и попадаем в панель управления базами.
На этом настройка web сервера на базе Freebsd 10.1 и связки nginx + php-fpm закончена.
Статью взял тут.
Установка и настройка mysql на Freebsd
Устанавливаем mysql:
# cd /usr/ports/databases/mysql55-server # make config-recursive # make install clean
Добавляем Mysql в автозагрузку:
echo 'mysql_enable="YES"' >> /etc/rc.conf
Создаем для него конфигурационный файл:
# touch /etc/my.cnf
Конфигурацию каждый под свои потребности может сделать, описаний настроек в интернете много. Я предлагаю свой универсальный вариант:
port = 3306 socket = /tmp/mysql.sock port = 3306 bind-address = 127.0.0.1 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 8 log-bin=mysql-bin log=/var/log/mysql.log binlog_format=mixed server-id = 1 quick max_allowed_packet = 16M no-auto-rehash key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M interactive-timeout
В моем варианте сервер жестко привязан к локальному интерфейсу и удаленно с ним работать нельзя. Если вам нужны удаленные подключения, то в параметре bind-address добавьте внешний адрес сервера.
Создадим файл логов:
touch /var/log/mysql.log chown mysql:mysql /var/log/mysql.log
Запускаем Mysql:
# /usr/local/etc/rc.d/mysql-server start
Проверяем, все ли в порядке:
# sockstat | grep mysql mysql mysqld 46460 13 tcp4 127.0.0.1:3306 *:* mysql mysqld 46460 15 stream /tmp/mysql.sock
Демон запущен и слушает локальный интерфейс.
Теперь запустим скрипт для настройки безопасности:
# /usr/local/bin/mysql_secure_installation
Задаем пароль для root и далее на все вопросы отвечаем утвердительно.
На этом установка и настройка mysql закончена. Идем дальше.