Задаём пароль администратора и делаем необходимые настройки безопасности (на более старых версиях 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>:
Так же создадим файл 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.1192.168.1.2192.168.1.3 # Разрешаем только доверенным
</Directory>
Открываем конфигурационный файл /usr/local/www/phpMyAdmin/config.inc.php и прописываем следущее:
Дополнительные возможности 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 и к ранее прописанному добавляем:
И последнее: необходимо защитить этой конфигурационный файл от изменений:
$ chmod 640 config.inc.php
и запретить к нему достуа по web, создав в каталоге /usr/local/www/phpMyAdmin файл.htaccess с таким содержимым:
order deny,allow # разрешение доступа только с указанных IP
deny from all
allow from 192.168.1.2192.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 64031 * @T00 C
/var/log/httpd-error.log 64031 * @T00 C
/var/log/mysql.log 64031 * @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).