Установка 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:
$ 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
Перезапустим Apache:
$ apachectl restart
Для проверки нормальных подключения и работы модуля поддержки PHP можно открыть в браузре по ссылке http://xxx.xxx.xxx.xxx/index.php предварительно созданный файл/usr/local/www/apache22/data/index.php следующего содержания:
<?php phpinfo( ); ?>
Установка 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/
Видим внизу надпись:
И начинаем делать то, что написано в "здесь".Создадим необходимые таблицы указанным скриптом и обновим созданные структуры скриптом 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.