Настройка WordPress на FreeBSD 10.0

Чтоб самому не забыть и другим помочь.

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

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>. Она должна выглядеть так:

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

Еще находим такую строчку:

<Directory “/usr/local/www/wordpress/”>

Добавляем или меняем значения на:

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

И в конец конфига добавить такую строчку:

AddType application/x-httpd-php .php

3 ЭТАП

У 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. Поэтому так…)
Устанавливаем права на каталог с БД

# chown -R mysql:mysql /var/db/mysql

Запускаем Мускл:

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

Настраиваем MySQL:

# mysql_secure_installation

Здесь на все вопросы отвечаем «yes», устанавливаем пароль root‘а для MySQL (не путать с системным рутом!)
Создаем базу данных для WordPress:

# mysql -u root -p <root_password>
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.cnf

7 ЭТАП

Хранить архивные копии самой папки wordpress будем там же, где архивы с базой.
Создадим файл backup.sh:

# ee /root/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!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *