Чтоб самому не забыть и другим помочь.
При написании инструкции использовались следующие ресурсы:
http://genideb.livejournal.com/21260.html
https://forums.freebsd.org/viewtopic.php?&t=41502
http://www.bsdportal.ru/kb.php?a=3
http://webnotepad.ru/cms/ustanovka-tem-i-plaginov-wordpress-bez-ftp.html
http://mediaunix.com/prostoe-rezervnoe-kopirovanie-fajlov-freebsd/
Большое вам спасибо!
Итак, начнем.
Сам процесс настройки портала на WordPress делится на следующие этапы:
0. Обновление портов;
1. Установка Apache2x, PHP5+расширения, MySQL55;
2. Настройка Apache;
3. Настройка MySQL и создание базы WordPress;
4. Распаковка архива с WordPress на жеский диск;
5. Конфигурирование WordPress;
6. Настройка бэкапов.
7. …
8. PROFIT!!!
0 ЭТАП
Я юзаю portsnap — просто и сердито. Если запускаем в первый раз, то вводим в консоли:
#portsnap fetch# portsnap extract
Если же когда-то уже обновлялись можно ввести
# portsnap fetch# portsnap update
1 ЭТАП
Устанавливаем Apache22:
# cd /usr/ports/www/apache22 & make install cleanв файл /etc/rc.conf добавляем строчку
apache22_enable=»YES»в файл /etc/hosts добавляем строку
127.0.0.1 www.bsdhome.ru
Устанавливаем PHP5:
# cd /usr/ports/lang/php55# make config
Выделяем пункт «Build Apache module«, остальные в общем случае оставляем как есть
# make install cleanУстанавливаем расширения:
ВНИМАНИЕ!!! В последних версиях php 5.5.13 и обновлениях FreeBSD 10 этого пункта нет!!! надо сделать следующее:
# cd /usr/ports/www/mod_php55# make install clean
Это я узнал, когда восстанавливал сайт после кончины жесткого диска.
# cd /usr/ports/lang/php55-extensions# make config
Выделяем пункты «MySQL database support», «PHP Data Objects Interface» и «PDO MySQL driver», остальные не трогаем
# make install clean
Устанавливаем MySQL55:
# cd /usr/ports/databases/mysql55-server/# make install clean
# cd /usr/ports/databases/mysql55-client/
# make install clean
2 ЭТАП
Редактируем файл httpd.conf:
# ee /usr/local/etc/apache22/httpd.confПроверяем, включен ли PHP:
LoadModule php5_module libexec/apache22/libphp5.so
В ServerAdmin вписываем свой email
В ServerName вписываем адрес своего блога. В моем случае bsdhome.mooo.com
В DocumentRoot пишем путь до папки WordPress. Я буду распаковывать его в /usr/local/www/wordpress
Находим строчку <IfModule dir_module>. Она должна выглядеть так:
DirectoryIndex index.php index.html
</IfModule>
Еще находим такую строчку:
<Directory “/usr/local/www/wordpress/”>Добавляем или меняем значения на:
Options Indexes FollowSymLinksAllowOverride All
Order allow,deny
Allow from all
И в конец конфига добавить такую строчку:
AddType application/x-httpd-php .php3 ЭТАП
У MySQL есть набор предопределенных файлов конфигурации для систем с различным объемом ОЗУ. Лежат они в /usr/local/share/mysql/. Расклад по ним такой:
my-small.cnf — for systems with up to 64 Mb of RAM.
my-medium.cnf — for systems with up to 128 Mb of RAM (ideal for web servers).
my-large.cnf — for systems with 512 Mb of RAM (dedicated MySQL servers).
my-huge.cnf — for systems with 1-2 Gb of RAM (datacentres etc.).
Выбираем нужный файл и копируем в рабочую директорию (мне подошел my-medium):
# cp /usr/local/share/mysql/my-medium.cnf /var/db/mysql/my.cnfТеперь поднастроим его под utf8 (наиболее распространенная кодировка в Интернете):
[mysqld]character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Настраиваем автозапуск в /etc/rc.conf
mysql_enable=»YES»Иницализируем БД
# cd /usr/local# ./bin/mysql_install_db —user=mysql —datadir=/var/db/mysql
(У меня простой запуск mysql_install_db прерывался с ошибкой FATAL ERROR: Could not find ./bin/my_print_defaults. Поэтому так…)
Устанавливаем права на каталог с БД
Запускаем Мускл:
# /usr/local/etc/rc.d/mysql-server startНастраиваем MySQL:
# mysql_secure_installationЗдесь на все вопросы отвечаем «yes», устанавливаем пароль root‘а для MySQL (не путать с системным рутом!)
Создаем базу данных для WordPress:
mysql>CREATE DATABASE wpdb;
mysql>GRANT ALL PRIVILEGES ON wpdb.* TO ‘dbuser’@’hostname’ IDENTIFIED BY ‘password’;
mysql> FLUSH PRIVILEGES;
mysql> EXIT
wpdb – имя созданной выше базы, dbuser – имя пользователя, под которым будет подключаться WordPress. В 99% случаев hostname нужно заменить на localhost. password – пароль для доступа к базе wpdb.
4 ЭТАП
Переходим в корневую папку нашего веб-сервера, качаем последний русский билд WordPress’а (в моем случае версия 3.8.1) и распаковываем его:
# cd /usr/local/www# curl -O http://ru.wordpress.org/wordpress-3.8.1-ru_RU.tar.gz
# tar -xvf wordpress-3.8.1-ru_RU.tar.gz
5 ЭТАП
Меняем права на свежеизвлеченную папку wordpress для избежания косяков (например, при обновлении) в будущем:
# chmod -R 0777 /usr/local/www/wordpress
# chown -R www /usr/local/www/wordpress
переходим в распакованную папку:
# cd wordpressСоздадим файл конфигурации из шаблона:
#cp wp-config-sample.php wp-config.phpконфигурируем файл wp-config.php:
#ee wp-config.phpВносим изменения в следующую часть кода:
// ** MySQL settings ** //define(‘DB_NAME’, ‘putyourdbnamehere’); // Имя базы данных
define(‘DB_USER’, ‘usernamehere’); // Имя пользователя MySQL
define(‘DB_PASSWORD’, ‘yourpasswordhere’); // …и пароль
define(‘DB_HOST’, ‘localhost’); // 99% что вам не следует вносить изменения в данную строчку кода
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, »);
и добавляем строчку для загрузки без FTP обновлений и плагинов:
define(‘FS_METHOD’, ‘direct’);Сохраняем файл. Все готово. Теперь на 80-м порту у нас блог.
6 ЭТАП
Настройка бэкапов очень важна (Да уж, я в этом убедился. Но храните бэкапы на отдельном устройстве, чтобы не было мучительно больно….). Никто не знает, когда выключат свет или сгорит материнка — может во время активной записи в базу. И чтобы потом избежать длительного восстановления содержимого нашего сайта, надо быть готовым к любому повороту событий.
Для настройки бэкапа БД используем утилиту mysqlbackup. Она делает бэкап ежедневно согласно crontab (в 3 ночи по умолчанию) Ставим из портов:
# cd /usr/ports/databases/mysqlbackup# make install clean
Добавляем в /etc/periodic.conf:
mysqlbackup_enable=»YES»mysqlbackup_args=»-a -u root -l 5 -z gzip»
С такими настройками будут хранится 5 последних архивных копий всех БД в папке бэкапов /var/backups.
Для того, чтобы MySQL и mysqlbackup не просили root-пароль, создадим файл /root/.my.cnf с таким содержимым:
[mysql]user=root
password=ROOTS_PASSWORD_HERE
[client]
user=root
password=ROOTS_PASSWORD_HERE
Затем выполним
# chmod 600 /root/.my.cnf7 ЭТАП
Хранить архивные копии самой папки wordpress будем там же, где архивы с базой.
Создадим файл backup.sh:
и наполним его следующим содержимым:
#!/bin/sh#data arhiva YYYYMMDD-HH.MM
DATA=`date +%Y.%m.%d-%H.%M`
#mesto dlya arhiva
BACKUPDIR=/var/backup
#4to rezerviruem/copiruem
DIRECTORIES=»/usr/local/www/wordpress»
#put’ k programme TAR
TAR=/usr/bin/tar
#nazvanie arhiva bez daty
LABELARH=wp_backup
#imya faila budet imet’ vid
ARCHIVNAME=$BACKUPDIR/$LABELARH-$DATA.tar
#sozdayom arhiv
cd /
$TAR -cpf $ARCHIVNAME $DIRECTORIES
exit
Оставим 2 пустые строки после exit и сохраним файл. Сделаем его исполняемым:
# chmod +x /root/backup.sh
поставим его на выполнение например в 12:00 каждый день:
# ee /etc/crontabдобавим:
00 12 * * * root /root/backup.sh…
PROFIT!