Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wptelegram domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wp-pagenavi domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114

Notice: Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка перевода для домена kirki была запущена слишком рано. Обычно это индикатор того, что какой-то код в плагине или теме запускается слишком рано. Переводы должны загружаться при выполнении действия init или позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 6.7.0.) in /home/u632055791/domains/itg.az/public_html/wp-includes/functions.php on line 6114
FreeBSD: Apache+MySQL+PHP (LAMP) + phpMyAdmin

FreeBSD: Apache+MySQL+PHP (LAMP) + phpMyAdmin

В данном примере будет проводиться установка «классической» сборкиApache + mpm_prefork + mod_php.

Что такое MPM — можно почитать тут>>>.

Статья была обновлена 02.08.2012 (год после первой публикации:-)) — добавлено несколько полезных замечаний и уточнений.

Обновмляем коллекцию портов.

При первом обновлении необходимо выполнить следующие команды:

# portsnap fetch && portsnap extract

При последующих обновлениях:

# portsnap fetch update

Пример:

# cd /usr/ports/
# portsnap fetch && portsnap extract

Более подробно тут.

Перейдем непосредственно к установке LAMP.

Для начала — веб-сервер Apache:

# cd /usr/ports/www/apache22
# make install clean

В файле /usr/local/etc/apache22/httpd.conf находим строку:

#ServerName www.example.com:80

Раскомментируем, и заменим на имя хоста, например:

ServerName setevoy.kiev.ua:80

В строке:

ServerAdmin you@example.com

укажем свой почтовый ящик.

После установки запустим его:

# apachectl start

Проверим:

# /usr/local/etc/rc.d/apache22 onestatus
apache22 is running as pid 929.

Apache завелся — все нормально. Добавим его в автозапуск при старте сервера — в /etc/rc.confдобавим строку:

# apache22_enable=»YES»

Переходим к MySQL:

# cd /usr/ports/databases/mysql55-server
# make install clean

Запускаем сервер:

# /usr/local/etc/rc.d/mysql-server onestart

Проверяем:

# /usr/local/etc/rc.d/mysql-server onestatus
mysql is running as pid 1006.

Если ошибок не выдал — значит все нормально, добавляем его в автозапуск при старте сервера — в/etc/rc.conf добавим строку:

mysql_enable=»YES»

Устанавливаем пароль для пользователя root сервера MySQL:

# /usr/local/bin/mysqladmin -u root password ‘new-password’

где new-password — пароль.

Сразу же проверим, что все правильно указали:

# mysql -u root -p
Enter password:

mysql>

Все ОК.

В каталоге /usr/local/bin  запускаем:

# mysql_secure_installation

Сначала — вводим пароль root:

Enter current password for root (enter for none):

Нам предложат не менять его:

You already have a root password set, so you can safely answer ‘n’.
Change the root password? [Y/n]

жмем n.

Далее — удаляем пользователя anonymous:

Remove anonymous users? [Y/n] Y

Запретить удаленное подключение пользователю root? У меня доступ из-вне вообще будет запрещен:

Disallow root login remotely? [Y/n] Y

Удалить базу test и доступ к ней?

Remove test database and access to it? [Y/n] Y

Обновить таблицу привилегий? Да.

Reload privilege tables now? [Y/n] Y

Thanks for using MySQL!

При желании — можете сразу настроить логгирование. Для этого создадим собственный файл конфигурации, взяв уже готовый:

# cp /var/db/mysql/my-medium.cnf /etc/my.cnf

И в нём, в блоке [mysqld] добавим строку:

log = /var/log/mysql.log

Обратите внимание, что в каталоге /var/db/mysql/ лежат несколько готовых файлов для серверов с разным уровнем предполагаемой нагрузки:

-rw-r—r— 1 root wheel 4675 Apr 8 11:03 my-huge.cnf
-rw-r—r— 1 root wheel 4649 Apr 8 11:03 my-large.cnf
-rw-r—r— 1 root wheel 4660 Apr 8 11:03 my-medium.cnf
-rw-r—r— 1 root wheel 2824 Apr 8 11:03 my-small.cnf

Создадим сам лог-файл:

# touch /var/log/mysql.log

Установим пользователя:

chown mysql:mysql /var/log/mysql.log

Перезапустим MySQL:

# /usr/local/etc/rc.d/mysql-server restart
Stopping mysql.
Waiting for PIDS: 39932.
Starting mysql.

И посмотрим лог:

# cat /var/log/mysql.log
/usr/local/libexec/mysqld, Version: 5.5.25-log (Source distribution). started with:
Tcp port: 0  Unix socket: (null)
Time                 Id Command    Argument

На этом настройка MySQL завершена.

Далее устанавливаем РНР.

ВАЖНО: обратите внимание на версию — на момент написания статьи актуальной была 5.2, поэтому порт — php52!:

# cd /usr/ports/lang/php52
# make install clean

ВАЖНО: установка пакетом, через

# pkg_add -r php52

в этом варианте не подойдет, т.к. РНР установится без модуля для Apache.

Во время установки отметьте для установки модуль Apache:

│ │ [*] APACHE     Build Apache module                             │ │

Устанавливаем расширения РНР :

# cd /usr/ports/lang/php52-extensions/
# make install clean

В окне первом конфигурирования не забываем установить:

|  │    [*] MYSQL       MySQL database support                      │ │
│ │    [*] MYSQLI      MySQLi database support                     │ │

Редактируем файл конфигурации Apache:

# ee /usr/local/etc/apache22/httpd.conf

находим строки с надписями AddType и дописываем туда:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Далее находим:

<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

И меняем их на:

<IfModule dir_module>
DirectoryIndex index.html index.shtml index.htm index.php
</IfModule>

Для проверки — создадим файл index.php:

# ee /usr/local/www/apache22/data/index.php

В него вставим строки:

<?php
phpinfo( );
?>

Удалим index.html:

# rm /usr/local/www/apache22/data/index.html

И пробуем через браузер открыть страничку, например:

http://77.120.106.40

В результате — должна открыться страница с описанием конфигурации Apache и PHP. Если вместо этого предлагает сохранить файл, или открывается страница с кодом — что-то сделано не так, проверяйте.

Перезапускаем Apache:

# apachectl restart

В целях безопасности — не рекомендуется оставлять файл index.php в таком виде в открытом доступе.

Если все прошло нормально — можно почти расслабиться. Остался последний пункт.

Установка phpMyAdmin:

# cd /usr/ports/databases/phpmyadmin
# make install clean

После установки он выдаст нам сообщение примерно такого плана:

phpMyAdmin-3.4.3.2 has been installed into:

/usr/local/www/phpMyAdmin

Please edit config.inc.php to suit your needs.

To make phpMyAdmin available through your web site, I suggest
that you add something like the following to httpd.conf:

Alias /phpmyadmin/ «/usr/local/www/phpMyAdmin/»

<Directory «/usr/local/www/phpMyAdmin/»>
Options none
AllowOverride Limit

Order Deny,Allow
Deny from all
Allow from 127.0.0.1 .example.com
</Directory>

Опять открываем httpd.conf для редактирования:

# ee /usr/local/etc/apache22/httpd.conf

и добавляем туда alias и настройки для доступа к phpMyAdmin из браузера.

Alias /phpmyadmin/ «/usr/local/www/phpMyAdmin/»

<Directory «/usr/local/www/phpMyAdmin/»>
Options none
AllowOverride Limit
Order Allow,Deny
Allow from all
</Directory>

В указанном выше примере — доступ к phpMyAdmin разрешен с любого адреса. Что бы разрешить доступ только с определнных IP — указываем так:

<Directory «/usr/local/www/phpMyAdmin/»>
Options none
AllowOverride Limit
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.0.2 [перечисляем IP через пробел]
</Directory>

Ещё раз перезагрузим Apache:

# apachectl restart

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

Перейдем в каталог с установленным phpMyAdmin:

# cd /usr/local/www/phpMyAdmin/

Создадим каталог config:

# mkdir config

Дадим права всем на запись в каталог:

# chmod 777 config

Скопируем в него файл конфигурации

# cp config.inc.php config

Установим права на запись всем на этот файл:

# chmod 777 config/config.inc.php

Переходим на страницу http://ваш_домен/phpmyadmin/setup/ и проводим установку. Тут для каждого поля есть подсказки — так что проблем не возникло.

Вкратце — нажимаем кнопку «Новый сервер«,  во вкладке Идентификация выбираем тип авторизации (у меня cookie), внизу нажимаем «Сохранить«, и возвращаемся на предыдщую страницу, где внизу ещё раз нажимаем «Сохранить» — теперь конфигурация сохранена в файл /config/config.inc.php.

Перемещаем файл конфигурации назад, в каталог phpMyAdmin:

# mv config/config.inc.php .

Меняем права доступа:

# chmod 640 config.inc.php

Если после изменения прав доступа в phpMyAdmin появляется ошибка:

Existing configuration file (./config.inc.php) is not readable.

то проверяем владельцев файла config.inc.php в каталоге /usr/local/www/phpMyAdmin:

# ls -la | grep config.inc.php
-rw-r——   1 root  wheel     759 Aug  2 21:16 config.inc.php
-rw-r——   1 root  www       374 Aug  2 21:15 config.inc.php.sample

Меняем группу:

# chgrp www config.inc.php

и перезагружаем страницу с phpMyAdmin.

Удаляем каталог:

# rm -rf config

Переходим на страницу http://ваш_домен/phpmyadmin/, вводим логин-пароль — профит!

Содержимое файла конфигурации у меня получилось таким:

<?php
/*
* Generated configuration file
* Generated by: phpMyAdmin 3.4.3.2 setup script
* Date: Tue, 16 Aug 2011 19:28:05 +0000
*/
/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg[‘Servers’][$i][‘verbose’] = »;
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
$cfg[‘Servers’][$i][‘port’] = »;
$cfg[‘Servers’][$i][‘socket’] = »;
$cfg[‘Servers’][$i][‘connect_type’] = ‘tcp’;
$cfg[‘Servers’][$i][‘extension’] = ‘mysqli’;
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ‘passwd‘;

/* End of servers configuration */

$cfg[‘blowfish_secret’] = ‘циферки_буковки‘;
$cfg[‘DefaultLang’] = ‘en’;
$cfg[‘ServerDefault’] = 1;
$cfg[‘UploadDir’] = »;
$cfg[‘SaveDir’] = »;
?>

Собственно, на этом — все. Можно перезапустить сервер, что бы проверить все ли нормально поднимется при перезагрузке:

# reboot

или

# shutdown -r now

P.S. Многие ругают phpMyAdmin за его «дырявость», поэтому как альтернативу можно попробовать такую утилиту как MySQL GUI Tools.