Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  frox
  SARG
  samba & ClamAV
  named
  proftpd
  cacti
  SAMBA+AD+NT ACL
  MySQL
  hylafax
  DDNS+DHCP
  cvsupd
  Samba как PDC
  Основы LDAP
  LDAP+SSL
  LDAP auth
  knockd
  rsync
  MRTG
  Rejik
  Jabber - OpenFire
  Samba(PDC) + Ldap
  squid+AD
  ATSlog
  vsftpd
  LDAP: samba, dns, dhcp
  Free-SA
  cups-samba на samba+AD
  irc + services
  Nagios - мониторинг сети
  TeamSpeak
  icecast2
  verlihub (p2p)
  Icecast2 + Darkice
  OOPS
  vsftpd + mysql
  Amanda
  HAVP
  Рыбалка на FreeBSD
  DNS сервер NSD
  DNS сервер Unbound
  mpd5, msmtp, dynamic ip
  ProFTPd + LDAP
  OpenVPN + LDAP
  Samba (PDC+BDC)
  BIND & AD
  POWERDNS
  3proxy
  eGroupWare
  GLPI
  SugarForge CRM
  Bacula
  Mysql - базовое описание
  Asterisk IP PBX
  Samba & CUPS & AD & ACL
  SMSTools 3
  Samba+ NT ACL
  phpmyadmin
  1С:Предприятие 8.1
  PurefFTPd
  qemu network
  AimSniff
  comms/scmxx
  Zoneminder
  Openfire Jabber Server
  Zoneminder 2
  Принт-Сервер Samba+LPD & AD
  Кластер OpenLDAP 2.4
  Lightsquid
  Установка Zabbix-1.6
  Установка net2ftp
  VSFTPD + AD && MySQL
  Network UPS Tools
  mpd5 L2TP client
  Apache 2.2 as a proxy
  ejabberd+mysql+icq
  HotSpot
  Установка и использование Zenoss на FreeBSD 7.2
  mysql-proxy
  DNS zones
  squid+sams+sqstat
  transmission-daemon
  Squid+AD (group access)
  named 9.7.0
  SysAid Server
  MySQL Master+Master
  proftpd file auth&quota
  usb_modeswitch
  NSDadmin
  iperf Тест скорости между хостами
  Простой факс-сервер mgetty+sendfax
  SQUID-MultiCpuSystem
  vsftpd + system users
  Syslog server
  Температура в серверной
  Nagios+Digitemp
  Avast! FreeBSD
  Настройка git+gitosis
  Firefox SyncServer
  Apache, MySQL, phpMyAdmin
  Scan+Print server FreeBSD 9
  proftpd,pgsql,web
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> программы —> Apache, MySQL, phpMyAdmin

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

Автор: Fomalhaut.


Заметка сделана для себя (вечно какая-то важная мелочь забывается :) и молодого коллеги, дабы давать на изучение и приучение к FreeBSD. :)
Описываемое актуально для FreeBSD 9.0, Apache 2.2, MySQL 5.5, PHP 5.4 и phpMyAdmin 3.5.

ОГЛАВЛЕНИЕ

Установка web-сервера Apache
Установка сервера MySQL
Установка сервера PHP
Установка сервера phpMyAdmin
Последние штрихи
МЕЛОЧИ

  • Мелочь №1: Сброс забытого пароля пользователя root для MySQL

    Установка web-сервера Apache

    Здесь всё про: главное - установить поддержку MySQL в конфигурации порта:
    $ cd /usr/ports/www/apache22
    $ make install clean
    

    В файл /etc/rc.conf прописываем для автозапуска:
    apache22_enable="YES"
    

    В конфигурационный файл /usr/local/etc/apache22/httpd.conf прописываем имя сервера и адрес админа:
    ...
    ServerAdmin admin@mydomain.su
    ...
    ServerName mydomain.su:80
    ...
    

    В файл конфигурации загрузчика /boot/loader.conf добавляем строку:
    accf_http_load="YES"
    

    Запускаем наш Apache:
    $ apachectl start
    

    Если ошибок не появилось, значит всё нормально и сервер запустился.

    Установка сервера MySQL

    Устанавливаем MySQL:
    $ cd /usr/ports/databases/mysql55-server/
    $ make install clean
    

    Создаём необходимые системные таблицы и устанавливаем права:
    $ /usr/local/bin/mysql_install_db
    $ chown -R mysql:mysql /var/db/mysql
    

    Создаём файл логов и права на него:
    $ touch /var/log/mysql.log
    $ chown mysql:mysql /var/log/mysql.log
    

    Добавляем в /etc/rc.conf строку автозапуска:
    mysql_enable="YES"
    

    Запускам сервер MySQL:
    $ /usr/local/etc/rc.d/mysql-server start
    

    Задаём пароль администратора и делаем необходимые настройки безопасности (на более старых версиях MySQL для этого приходилось ставить отдельно порт скриптов, например, /usr/ports/databases/mysql51-scripts/):
    $ cd /usr/local/ # (или /usr/local/bin)
    $ mysql_secure_installation
    

    Создаём конфигурационный файл /usr/local/etc/my.cfg с одним параметром (для начала):
    [mysqld]
    log = /var/log/mysql.log
    

    Установка PHP

    Ставил сам PHP, не забывая указать в конфигурации сборки поддержку MySQL и Apache:
    $ cd /usr/ports/lang/php5/
    $ make install clean
    

    В конфигурационный файл Apache /usr/local/etc/apache22/httpd.conf добавляем параметр DirectoryIndex в блок <Directory />, чтобы получилось следующее:
    <Directory />
        DirectoryIndex index.php index.html
        AllowOverride None
        Order deny,allow
        Deny from all
    </Directory>
    

    Теперь надо PHP "активировать" в Apache. Для этого добавим две строчки в /usr/local/etc/apache22/httpd.conf в блоке <IfModule mime_module>:
        AddType application/x-httpd-php .php
        AddType application/x-httpd-php-source .phps
    

    Так же создадим файл cat /usr/local/etc/php.ini на основе /usr/local/etc/php.ini-production, удалив комментарии:
    $ cat php.ini-production | grep -v ";" > php.ini
    

    и добавим в него в блок [Date] параметр временной зоны:
    [Date]
    date.timezone = Europe/Moscow
    


    Начиная в версии 5.4.27 модуль сопряжения PHP с Apache выделен в отдельный порт, поэтмоу надо установить его:
    $ cd /usr/ports/www/mod_php5
    $ make config && make install clean
    

    По окончании установки на экран будет выведена информация по необходимым параметрам, которые необходимо прописать в конфиг Apache. Сделаем, как указано.



    Перезапустим Apache:
    $ apachectl restart
    

    Для проверки нормальных подключения и работы модуля поддержки PHP можно открыть в браузре по ссылке http://xxx.xxx.xxx.xxx/index.php предварительно созданный файл /usr/local/www/apache22/data/index.php следующего содержания:
    <?php
        phpinfo( );
    ?>
    

    Для работы phpMyAdmin ещё понадобятся расширения PHP (php5-extensions), но ставить их отдельно смысла особого нет: она будут установлены, как необходимая зависимость для phpMyAdmin.

    Установка phpMyAdmin

    Устанавливаем порт:
    $ cd /usr/ports/databases/phpmyadmin/
    $ make install clean
    

    В конфигурационный файл Apache /usr/local/etc/apache22/httpd.conf добавляем:
    Alias /phpmyadmin/ "/usr/local/www/phpMyAdmin/"
    <Directory "/usr/local/www/phpMyAdmin/">
    	DirectoryIndex index.php
    	Options none
    	AllowOverride Limit
    	Order Deny,Allow
    	Deny from all
    	Allow from 127.0.0.1 192.168.1.2 192.168.1.3   # Разрешаем только доверенным
    </Directory>
    

    Открываем конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php и прописываем следущее:
    <?php
        $i = 0;
        $i++;
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['compress'] = false;
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = '<пароль_root-а>';
        $cfg['blowfish_secret']='gh7ThGrf6J'; // Любая фраза
    ?>
    

    Заходим на страницу phpMyAdmin по ссылке:
    http://<наш_сервер>/phpmyadmin/
    

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

    И начинаем делать то, что написано в "здесь".
    Создадим необходимые таблицы указанным скриптом create_tables.sql и обновим созданные структуры скриптом upgrade_tables_mysql_4_1_2+.sql (т.к. у нас более новая версия MySQL сервера):
    $ cd /usr/local/www/phpMyAdmin/examples
    $ cat create_tables.sql upgrade_tables_mysql_4_1_2+.sql | mysql -u root -p
    

    Переоткроем страницу phpMyAdmin, чтобы изменения считались (иногда требует перезапуска браузера: может не отображаться, например, пункт меню "Пользователи").
    Следующим шагом необходимо создать специального пользователя с именем "pma" и наделить его соответствующими правами, для чего нажмите "Privileges" ("Привилегии"), на открывшейся странице нажмите ссылку "Add a new User" ("Добавить нового пользователя"), в разделе "Login Information" ("Информация учетной записи") заполните поля следующим образом:
    User name (Имя пользователя): pma
    Host (Хост): localhost
    Password (Пароль): <пароль_для_pma>
    Нажмите кнопку "Go" ("OK").
    

    На открывшейся странице, в разделе "Database-specific privileges" ("Привилегии уровня базы данных") из ниспадающего меню "Add privileges on the following database:" ("Добавить привилегии на следующую базу") выберите "phpmyadmin". Откроется следующая страница, где в разделе "Databasespecific privileges" ("Привилегии уровня базы данных"), в блоке "Data" ("Данные"), поставьте галочки рядом с опциями: SELECT, INSERT, UPDATE, DELETE и нажмите "Go" ("OK").
    Снова открываем конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php и к ранее прописанному добавляем:
        $cfg['Servers'][$i]['controlhost'] = 'localhost';
        $cfg['Servers'][$i]['controluser'] = 'pma';
        $cfg['Servers'][$i]['controlpass'] = '<пароль_для_pma>';
        $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
        $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
        $cfg['Servers'][$i]['relation'] = 'pma_relation';
        $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
        $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
        $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
        $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
        $cfg['Servers'][$i]['history'] = 'pma_history';
        $cfg['Servers'][$i]['tracking'] = 'pma_tracking';
        $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
        $cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
        $cfg['Servers'][$i]['recent'] = 'pma_recent';
        $cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
    

    И последнее: необходимо защитить этой конфигурационный файл от изменений:
    $ chmod 640 config.inc.php
    

    и запретить к нему достуа по web, создав в каталоге /usr/local/www/phpMyAdmin файл .htaccess с таким содержимым:
    order deny,allow         # разрешение доступа только с указанных IP
    deny from all
    allow from 192.168.1.2 192.168.1.3
    
    <Files config.inc.php>   # запрет доступа к config.inc.php
        order deny,allow
        deny from all
    </Files>
    

    Всё, настройка (базовая) закончена: переоткрыв страницу с phpMyAdmin (или перезапустив браузер) получаем полный доступ. Правда, чтобы получить некоторые дополнительные возможности программы придётся ещё немного его настроить.

    Последние штрихи

    Чтобы не засорять систему, для логов Apache и MySQL настроим ежедневную ротацию с глубиной хранения 31 день, добавив в файл /etc/newsyslog.conf три строчки:
    /var/log/httpd-access.log               640  31    *    @T00  C
    /var/log/httpd-error.log                640  31    *    @T00  C
    /var/log/mysql.log                      640  31    *    @T00  C
    

    МЕЛОЧИ

    Мелочь №1: Сброс забытого пароля пользователя root для MySQL
    Остановим MySQL сервер:
    $ /usr/local/etc/rc.d/mysql-server stop
    Stopping mysql.
    Waiting for PIDS: 1022.
    

    Запустим сервер MySQL, но уже в "защищённом режиме":
    $ mysqld_safe --skip-grant-tables --user=root &
    

    Войдём под пользователей root, но без пароля:
    $ mysql -u root
    mysql> use mysql;
    mysql> update user set password=PASSWORD("<новый_пароль>")
           where User='root';
    mysql> flush privileges;
    mysql> quit
    

    Остановим сервер MySQL:
    $ /usr/usr/local/etc/rc.d/mysql-server stop
    mysql not running? (check /var/db/mysql/fbsd9zfs.homed.local.pid).
    

    Запустим сервер MySQL в обычном режиме:
    $ /usr/local/etc/rc.d/mysql-server start
    Starting mysql.
    

    и проверим наш новый пароль:
    $ mysql -u root -p
    Enter password: 
    ...
    mysql> quit
    

    Полезное: ссылка1, ссылка2, ссылка3.



    размещено: 2012-07-29,
    последнее обновление: 2014-04-08,
    автор: Fomalhaut

    оценить статью:

    mfog, 2012-08-09 в 15:59:41

    все здесь классно, но вот только про рассширения ПХП ничего не описано, я сомневаюсь что пхпадмин запустится

    Fomalhaut, 2012-08-13 в 14:15:09

    Они установятся, как зависимость для phpMyAdmin.

    Dr. Pi, 2012-10-07 в 19:26:52

    строка DirectoryIndex index.php index.html
    дожна быть вписана в секцию <IfModule dir_module>, а не в секцию <Directory> :))

    PathFounder, 2013-01-01 в 12:48:27

    Грандмерси за статью - самому написать было лень, а когда консультировал или сам "по-быстрому" ставил - всё время на всяких мелочах ловил грабли :)

    Fomalhaut, 2013-01-01 в 15:02:32

    PathFounder: Поэтому и написал: надоело многократно наступать на одни и те же грабли. :)

    ail-man, 2013-01-15 в 12:49:11

    Спасибо автору, все работает =)

    SkiNNi, 2013-03-05 в 10:33:45

    Корректировки по моей установке, если кто  напорется:
    1. При конфигурировании установки PHP выбрать модуль APACHE он у меня не был выбран.
    2. У меня не заработал скрипт mysql_secure_installation поэтому делать как: Мелочь №1: Сброс забытого пароля пользователя root для MySQL
    3.каталог phpMyAdmin переписать в /usr/local/www/apache22/data т.к. каталог по умолчанию.
    Большое спс автору.

    Fomalhaut, 2013-03-10 в 14:56:08

    SkiNNi: Принято:
    1) исправлено: это мой недосмотр - по умолчанию модуль Apache не указан;
    2) а текущий каталог точно был /usr/local/ ? я вот тоже напарывался, пока поиском расположение не нашёл; или опять что-то в дистрибутиве поменялось (раньше вообще все обслуживающие скрипты были в отдельном порту (mysql55-scripts, примерно, не помню точно);
    3) это уже детали, так или иначе настройка вся в httpd.conf.

    Anatoly, 2013-06-11 в 17:21:44

    конфигурационный файл mysql /usr/local/etc/my.cnf

    Витя, 2013-07-03 в 12:32:32

    Отличный мануал, большое спасибо.
    Только не советую конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php править руками. Куда проще воспользоваться http://ip-servera/phpmyadmin/setup/ там же можно добавить необходимые параметры для доп. функций.

    Artym, 2014-09-09 в 10:26:14

     в связи с тем, что все обновилось, с выхода статьи, пришлось кое-что корректировать.
    с /usr/local/etc/apache22/ на /usr/local/etc/apache24/
    и для phpmyadmin
    cd phpmyadmin
    # mkdir config
    # chmod o+rw config
    # cp config.sample.inc.php config/config.inc.php
    # chmod o+w config/config.inc.php


    Оставьте свой комментарий:
    Ваше имя:   *
    e-mail:  
    жирный
    наклонный
    подчёркнутый
    ссылка
    цвет
    Нынешний год:   *
     


  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    подписка

    Genesyx

    Браузерная РПГ с элементами стратегии

    www.genesyx.ru

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 30 чел.
    За последние 30 мин было: 143 человек
    За сегодня было
    8643 показов,
    2240 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.4804 секунд
    Из них PHP: 95%; SQL: 5%; Число SQL-запросов: 76 шт.
    Исходный размер: 157660; Сжатая: 23871