Установка и настройка nginx c php5, php-fpm и mysql на fedora

Установка и настройка 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.

Определение¶

Понятие веб-сервер может относиться как к аппаратной начинке, так и к программному обеспечению. Или даже к обеим частям, работающим совместно.

  1. С точки зрения «железа», веб-сервер — это компьютер, который хранит файлы сайта (HTML-документы, CSS-стили, JavaScript-файлы, картинки и другие) и доставляет их на устройство конечного пользователя (веб-браузер и т.д.). Он подключен к сети Интернет и может быть доступен через доменное имя, подобное .
  2. С точки зрения ПО, веб-сервер включает в себя несколько компонентов, которые контролируют доступ веб-пользователей к размещенным на сервере файлам, как минимум — это 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:

  1. Apache service not work — предупреждение о том, что системный процесс web сервера apache не запущен.
  2. 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 по нескольким причинам:

  1. Он безопаснее.
  2. Его быстрее настроить.
  3. Не надо отдельно настраивать 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 закончена. Идем дальше.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Мой редактор ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: