Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мануал по установке и настройке сервера.rtf
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
7.62 Mб
Скачать

Лимит рекурсии

Другая полезная особенность это ограничение шагов рекурсии, которая предотвращает бесконечную последовательность рекурсивных вызовов.

xdebug предотвращает бесконечную рекурсию останавливая скрипт на предопределенном шаге. В принципе это есть ограничение размера стека вызовов. Значение по умолчанию данного параметра 100, и эта возможность включена по умолчанию. Вы можете изменить настройку, если ваша программа подразумевает более глубокую рекурсию.

xdebug.max_nesting_level=

Однако xdebug не предотвращает бесконечные циклы for, while и похожие на ни, так как они не увеличивают стек вызовов. В дополнение вы можете использовать счетчик внутри каждого цикла и убивать скрипт всякий раз, когда значение счетчика превысит допустимую цифру. Я советую использовать данный подход на боевых серверах, потому что там не должно быть бесконечных циклов.

Заключение

xdebug это маленький, но очень полезный инструмент для разработчика PHP, он должен быть установлен на каждую установку PHP, используемую для разработки. Не стоит использовать xdebug на боевых серверах, так как это мешает производительности.

Создание виртуальных хостов

Первым делом нам надо создать папки, где мы и будем хранить файлы будущего сайта. Для этого заходим в диск D:/ и создаем в нем папку, назовем ее: work, внутри этой директории создаем еще три папки под названием, например: home, home1, home2, в каждой папке создаем директорию (папку) www. Думаю вы уловили мысль, где будут находиться файлы сайта - это последняя папка www.

Теперь необходимо настроить сервер Apache. Для начала отключаем его. После отключения сервера, проследуем по пути C:\xampp\apache\conf, находим файл под названием httpd.conf - это главный конфигурационный файл веб - сервера Apache, его мы и будем настраивать.

ServerRoot, это поле должно выглядить так: ServerRoot "C:/xampp/apache"

ServerAdmin, это поле должно выглядить так: ServerAdmin admin@localhost

ServerName, это поле должно выглядить так: ServerName localhost:80

DocumentRoot, это поле должно выглядить так: DocumentRoot "D:/work/"

Теперь нам потребуется найти директиву

<Directory />

и изменить ее таким образом:

<Directory />

Options FollowSymLinks Includes Indexes

AllowOverride None

</Directory>

или

<Directory "D:/work/home/www">

Options Indexes FollowSymLinks Includes ExecCGI

AllowOverride All

Order allow,deny

Allow from all

</Directory>

Теперь откроем доступ к каталогу

DocumentRoot

изменив директиву:

<Directory "C:xampphtdocs"> заменяем на <Directory "D:/work/">

После этих не хитрых изменений опускаемся в самый низ файла httpd.conf. Нам необходимо указать нашему серверу адреса локальных хостов, логов сервера. Для этого пишем следующий код:

NameVirtualHost 127.0.0.1:80

<VirtualHost 127.0.0.1:80>

ServerName localhost

DocumentRoot "C:/xampp/htdocs"

</VirtualHost>

#

# home

#

<VirtualHost 127.0.0.1:80>

ServerAdmin admin@localhost

ServerName home

DocumentRoot "D:/work/home/www"

ServerAlias home.ru

ErrorLog D:/work/home/error.log

CustomLog D:/work/home/access.log common

</VirtualHost>

#

# home1

#

<VirtualHost 127.0.0.1:80>

ServerAdmin admin@localhost

ServerName home1

DocumentRoot "D:/work/home1/www"

ServerAlias home1.ru

ErrorLog D:/work/home1/error.log

CustomLog D:/work/home1/access.log common

</VirtualHost>

#

# home2

#

<VirtualHost 127.0.0.1:80>

ServerAdmin admin@localhost

ServerName home2

DocumentRoot "D:/work/home2/www"

ServerAlias home2.ru

ErrorLog D:/work/home2/error.log

CustomLog D:/work/home2/access.log common

</VirtualHost>

Нашему веб - серверу теперь известно, по каким адресам находятся хосты. Для того, чтобы Apache помимо html-файлов обрабатывал и php-файлы, в строку text/html в файле mime.types (C:\xampp\apache\conf\mime.types) следует добавить расширение для файлов, содержащих php-скрипты. Строка должна выглядеть следующим образом: text/html html htm shtml shtm php phtml. На этом конфигурация Apache закончена.

Далее нам потребуется указать операционной системе, что наш сервер будет работать локально и хождений в Интернет с его стороны не будет. Для этого запускаем Блокнот Windows от имени Администратора (сделать это надо обязательно, иначе мы не сможем сохранить изменения) и идем по следующему пути:

C:\Windows\System32\drivers\etc. В директории etc находим файл hosts, открываем его и вносим в конце его изменения (перед вами файл hosts от ОС Windows7):

# Copyright (c) 1993-2009 Microsoft Corp.

#

# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.

#

# This file contains the mappings of IP addresses to host names. Each

# entry should be kept on an individual line. The IP address should

# be placed in the first column followed by the corresponding host name.

# The IP address and the host name should be separated by at least one

# space.

#

# Additionally, comments (such as these) may be inserted on individual

# lines or following the machine name denoted by a '#' symbol.

#

# For example:

#

# 102.54.94.97 rhino.acme.com # source server

# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.

# 127.0.0.1 localhost

# ::1 localhost

127.0.0.1 localhost

127.0.0.1 home.ru

127.0.0.1 home1.ru

127.0.0.1 home2.ru

После внесения изменений в конфигурацию, необходимо перезапустить Apache из панели управления XAMPP (ярлык на рабочем столе или в трее). Если этого не сделать, то изменения не вступят в силу, не забывайте! Теперь настал момент, проверки работоспособности нашего сервера. Для этого заходим в папку www по адресу: D:\work\home\www. Создаем текстовый документ, с помощью Блокнота Windows. Внутри этого документа записываем следующий код:

<php echo "<h1>Проверка работы локального сервера XAMPP</h1>"; ?>

Сохраняете файл с расширением .php. В Блокноте Windows, войдите в меню "ФАЙЛ" - "СОХРАНИТЬ КАК..." - тип файла: "ВСЕ ФАЙЛЫ (*.*)" и сохраняем под названием index, конечный вид файла должен быть index.php

Запускаем браузер, в адресной строке набираем home.ru/

В окне браузера вы увидите надпись Проверка работы локального сервера XAMPP

Если вы увидели эту надпись, то значит все сделали правильно и ваш веб-сервер работает. Для полного счастья нам осталось прикрутить к XAMPP "Заглушку mail". Как мы говорили раньше, XAMPP, очень функциональный продукт. В нем есть свой почтовый сервер, но настраивать его долго. Проще и значительно удобнее замкнуть отправку почты на локальном компьютере. Такая вещь, просто необходима при отладке скриптов, например, формы обратной связи. Что для этого нам потребуется? Просто немного терпения.

Заходим в директорию home по адресу D:\work\home и создаем папку с названием mail. Запускаем Блокнот Windows и записываем в него следующий код:

<?php

define('DIR','D:/work/home/mail/'); //путь к вашей папке mail

$stream = '';

$fp = fopen('php://stdin','r');

while($t=fread($fp,2048))

{

if( $t===chr(0) )

break;

$stream .= $t;

}

fclose($fp);

$fp = fopen(mkname(),'w');

fwrite($fp,iconv("UTF-8","CP1251",$stream));

fclose($fp);

function mkname($i=0)

{

$fn = DIR.date('Y-m-d_H-i-s_').$i.'.eml';

if ( file_exists($fn) )

return mkname(++$i);

else return $fn;

}

?>

После чего сохраняем созданный нами файл под названием sendmail.php и отправляем его в директорию XAMPP по адресу C:\xampp\sendmail. Осталось нам подправить конфигурационный файл интерпретатора скриптов php, он называется php.ini и находится по адресу C:\xampp\php. Находим в этом файле (приблизительно строка 700) модуль mail function, ниже (стр.709) ищем строчку sendmail_path = "C:\xampp\sendmail\sendmail.exe -t" она закомментирована, т.е. вначале строки стоит точка с запятой ";", убираем ее. Изменяем строку и делаем ее такого вида sendmail_path = C:\xampp\php\php.exe c:\xampp\sendmail\sendmail.php, сохраняем изменения, перезагружаем сервер. "Заглушка mail" готова.

Давайте проверим работу нашей "заглушки". Скопируйте в файл, приведенный ниже код. Это код простейшей формы отправки связи. Сохраните его в D:\work\home\www под названием, например, form_mail.php (в кодировке utf-8). Запустите браузер и в адресной строке наберите home.ru/form_mail.php, перед вами появится форма, напишите в ней сообщение для себя и отправьте. После этого вы можете зайти в папку mail (D:\work\home\mail) и прочитать письмо. Открывать эти письма можно любой программой типа "Блокнот", например, распространяемой вместе с Windows программой, WordPad.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

<title>Форма обратной связи</title>

<style type="text/css" media="all">

.table {background-color:#eaebef;border-collapse:collapse;width:450px;border:1px solid silver;font:12px Verdana;}

.header {border-bottom:1px solid silver;text-align:center;color:#27328F;}

i{color:red;}

.left_f {float: left;margin-left: 20px;padding:5px;}

</style>

</head>

<?php function show_form($s="") {if ($s) echo "<b>Ошибка:</b> $s";?>

<body>

<table align="center" class="table">

<tr><td valign="top">

<div class="header"><h3>ФОРМА ОБРАТНОЙ СВЯЗИ</h3></div>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<div class="left_f"><strong>Ваше имя: <i>*</i></strong>

<input type="text" name="name" size="30" /></div>

<div class="left_f"><strong>Ваш email:<i>*</i></strong>

<input type="text" name="email" size="30" /></div>

<div class="left_f"><strong>Ваш сайт:</strong>    

<input type="text" name="domain" size="30" /></div>

<div style="margin-left: 20px;padding-top: 110px;"><strong>Ваше сообщение: <i>*</i></strong></div>

<div style="margin: 5px; text-align: center;"><textarea cols="50" rows="5" name="message"></textarea>

<input type="hidden" name="a" value="1" /></div>

<div align="center"><input type="submit" value="Отправить вопрос" /></div>

<div align="center" style="font:11px Verdana;">Поля, отмеченные звездочкой (<i>*</i>) должны быть заполнены.</div>

</form></td></tr></table>

</body>

</html>

<?php

exit();};

// если не было добавления сообщения, выводим форму

if (!$_POST['a']) show_form();

// проверяем данные формы

if (!$_POST['name']) show_form("Укажите Ваше имя!");

if (!$_POST['email']) show_form("Укажите Ваш email!");

if (!$_POST['message']) show_form("Вы не заполнили текст сообщения!");

// описываем переменные и rfc заголовки письма

// обратный адрес будет указанным адресом отправителя сообщения

$from = $_POST['email'];

$recipients = "mysite@localhost.ru"; // Ваш email

$subject="Тема письма";

$body=$_POST['message'];

$headers = "content-type: text/plain; charset='utf-8'"; // кодировка сообщения

if(strpos($_SERVER['SERVER_SOFTWARE'], '(Win32)')===FALSE)

{

// отправляем письмо

$mail = popen("/usr/sbin/sendmail -i -f$from -- $recipients", 'w');

$text_headers = "from: $fromnsubject: $subject".$headers;

fputs($mail, $text_headers);

fputs($mail, "n");

fputs($mail, $body);

// проверяем на ошибку

$result = pclose($mail) >> 8 & 0xff;

}

else $result=(mail($recipients, $subject, $body, "from: ".$from."rn".$headers) ? FALSE : TRUE);

if ($result) echo "Сообщение не было отправлено!";

else echo "Спасибо, Ваше сообщение отправлено. Перейдите в папку "mail" и прочитайте письмо!"; ?>

Индексный файл

Индексный файл или файл-индекс это тот файл, который открывается по умолчанию при обращении пользователя через веб к каталогу, а не к конкретному файлу. Например, ваш посетитель запросит адрес http://ваш_домен/catalogue/, где catalogue — название каталога. Индексный файл это тот файл, который будет показан пользователю при обращении к каталогу без указании имени конкретного файла в нем.

По умолчанию индексными файлами являются следующие: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm или default.html. Если вы хотите чтобы первым открывался какой-то иной файл, нужно переопределить текущие значения.

Назначение и использование файла .htaccess

Файл .htaccess (первый символ в названии файла — точка) применяется для управления веб-сервером Apache со стороны конечного пользователя хостинга. В этот файл прописываются директивы, которые веб-сервер обрабатывает, выполняя действия в соответствии с установленными настройками.

Файл .htaccess может быть размещен в корневом каталоге веб-сервера (прямо в каталоге www). В этом случае директивы из такого .htaccess действуют по всему веб-серверу. Также .htaccess может находиться и в конкретном подкаталоге сервера. Тогда директивы, которые указаны в этом файле, «перекрывают» действие директив из «основного» файла, который размещен в каталоге www или в любом каталоге более высокого уровня. То есть, действие директив из .htaccess наследуется сверху вниз, но не наоборот. Изменения, внесенные в файл, вступают в силу немедленно. Это связано с тем, что информация из .htaccess перечитывается при каждом обращении к веб-серверу Apache.

В .htaccess может быть помещено большинство из доступных директив для веб-сервера. Следует заметить, что директивы, в описании которых в поле Context отсутствует упоминание .htaccess недоступны для использования в этом файле конфигурации. На примере директивы AddType видим, что поле Context содержит упоминание о .htaccess, соответственно вы можете ее использовать:

Если использовать нужную директиву не получилось, и вы увидели ошибку после добавления директивы в .htaccess, скорее всего, использование команды запрещено в условиях виртуального хостинга. Напишите в техническую поддержку, мы постараемся вам помочь. Просьба подробно описать проблему и указать цели, которых хотите достичь использованием данной директивы.

Пример: как переопределить кодировку html-документов

Мы хотим «объяснить» веб-серверу что все html-документы, которые размещены на сервере, нужно «отдавать» клиенту в кодировке koi8-r, а не в windows-1251, как это сервер делает по умолчанию. Для этого поместим в .htaccess строку: AddType "text/html; charset=koi8-r" .html .htm .shtml

Получив такой .htaccess, веб-сервер Apache станет выдавать клиентскому браузеру заголовок, в котором будет указано, что документ имеет кодировку koi8-r.

Если на вашем ресурсе существуют html-документы в разных кодировках, (ISO-8859-1, Windows-1250, Windows-1252, UTF-8), то вам, возможно, будет необходимо отключить принудительну выдачу заголовка с кодировкой windows-1251. Для этого в .htaccess добавляется строка: AddDefaultCharset Off

При этом соответствующая кодировка должна быть прописана на каждой html-странице в виде тега <http-equiv=»Content-type» content=»text/html; charset=windows-1251″ />

Это примеры простейшего использования возможностей конфигурирования Apache через файл .htaccess.

Пример: как закрыть директорию паролем

Одна из стандартных задач, которая решается путем использования .htaccess, это ограничение доступа к определенному каталогу на сервере. Например, нужно дать доступ к определенному каталогу отдельным посетителям, снабдив их при этом уникальным логином и паролем.

В каталоге, к которому хотим ограничить доступ по паролю, создаем файл .htaccess с такими директивами:

AuthType Basic

AuthName "Some Name"

AuthUserFile /home/uXXXXX/.htpasswd

require valid-user

Путь /home/uXXXXX/.htpasswd обозначает полный путь к файлу паролей на диске нашего сервера. Если, например, вы поместите файл .htpasswd (в нем будут пароли) в домашний каталог, куда вы попадаете зайдя на сервер по FTP, то путь к этому файлу будет иметь вид /home/uXXXXX/.htpasswd, где uXXXXX — наименование вашей виртуальной площадки (например, u12345).

В директиве AuthUserFile указываем абсолютный путь к файлу с логинами/паролями, который мы создадим чуть позже. Если вы создаете файл .htaccess на своем компьютере, а не сразу на сервере при помощи текстового редактора, обратите внимание на то, что .htaccess должен передаваться по FTP строго в текстовом (ASCII) режиме.

Создаем файл паролей. Файл с паролями должен содержать строки вида login:password. Пароль должен быть зашифрован с использованием алгоритма MD5. Один из способов создать такой файл — воспользоваться программой, входящей в поставку Apache — htpasswd (на нашем сервере она находится в каталоге /usr/local/bin/, полный путь — /usr/local/bin/htpasswd).

Рассмотрим как создать файл паролей в unix shell прямо на сервере. Зайдем в shell, и будем выполнять следующие команды:

* htpasswd -mbc .htpasswd user1 sNQ7j9oR2w создаем новый файл .htpasswd, в который добавляем запись для пользователя user1 с паролем, указанным в командной строке. Просьба обязательно заменить sNQ7j9oR2w на любой собственный пароль — здесь этот пароль указан только для примера

* htpasswd .htpasswd user2 добавляем в уже существующий файл .htpasswd пользователя user2, а пароль вводим вручную в ответ на соответствующий запрос программы

Если вы используете Windows и не хотите пользоваться unix shell для генерации паролей, можно загрузить Windows-версию программы htpasswd здесь и создать файл с паролями на своем компьютере, после чего загрузить его на сервер. Если у вас уже установлена Windows-версия Apache, файл htpasswd.exe можно найти в каталоге Program Files\Apache Group\Apache\bin\.

Итак, получите htpasswd.exe и используйте его для генерации паролей таким образом:

* htpasswd.exe -mc .htpasswd user1 создаем новый файл паролей htpasswd.exe, пароль и его подтверждение будут запрошены интерактивно

* htpasswd.exe -m .htpasswd user2 добавляем пользователя user2 в существующий файл паролей htpasswd.exe, запросив пароль интерактивно

После окончания заведения всех логинов файл нужно загрузить на сервер.

Пример: переопределение индексного файла

Ситуация: пользователь обратился к каталогу http://www.ваш_домен.ru/price/. При таком запросе первым откроется и будет показан индексный файл. Если вы хотите переопределить индексный файл и сделать так, чтобы первым открывался не index.htm, а, например, файл myindex.php, то сделать это можно поместив в файл .htaccess в соответствующем каталоге следующую инструкцию: DirectoryIndex myindex.php

Получив .htaccess с таким содержимым, веб-сервер Apache откроет по умолчанию именно файл myindex.php.

Пример: запрет и разрешение выдачи листинга

В ряде случаев требуется выводить список файлов в каталоге (листинг каталога) в случае отсутствия в каталоге файла, который показывается по умолчанию. Для этого необходимо добавить в .htaccess следующую строку:

Options +Indexes

Файл .htaccess необходимо создавать именно в том каталоге, в котором планируется разрешить листинг. Данная директива будет действовать также и на все подкаталоги (это достигается включенной по умолчанию в настройках виртуального хоста директивой AllowOverride All).

По умолчанию включена директива Options -Indexes, и в случае отсутствия индексной страницы вы получите HTTP ошибку 403.

Пример: собственные страницы ошибок

Выводим наш сервер в интернет.

Например нам надо чтобы он ресолвился по имени.

Тогда нужно в локальной сети поднять DNS c указателем на адрес хоста.

Чтобы настроить удаленный доступ к серверу для определенных компьютеров нам нужно на всех компьютерах которые должны получить к нему доступ в файлике hosts добавить строки вида:

192.168.0.115 mycoolsite.ru

где соответственно IP хоста и имя по которому он будет ресолвиться.

А чтобы наш сервер виделся из интернета — нужно пробросить 80 порт на маршрутизаторе, соответствено маршрутизатор должен иметь DNS-имя (можно использовать DynDNS для динамических адресов)

Или пробросить с роутера 80-й порт на компьютер с сервером. На роутере соответственно должен быть видимый из интернета IP адрес.

Если наш сервер по прежнему не виден из интернета то не видится он скорее всего потому что апач не слушает на этом ip адресе сеть. точно не помню есть ли в xampp такая педаль, но надо либо httpd.conf править или прямо в интерфейсе это включается/выключается в админке у Xampp. (что то типа Put online)

в Wamp как раз в меню есть пункт, включающий видимость извне. делает он это скриптом, который берет и измненяет в httpd.conf в параметрах docroot права на папку:

<Directory «c:/wamp22/www/»>

Для видимости:

# onlineoffline tag — don't remove

Order Allow,Deny

Allow from all

Для невидимости такие строки:

Order Deny,Allow

Deny from all

Allow from 127.0.0.1";

Тогда сразу можно заходить на локальный IP адрес компьютера где сайт лежит и откроется страничка.

В завершении хотелось бы напомнить, не забывайте делать резервные копии сайта и базы данных. Тогда вы будите полностью застрахованы от потери информации, избавите себя от лишней работы и нервов.

Несколько wordpress на одном движке

Столкнулся как-то с вопросом создания мультисайтового/мультидоменного движка. По запросу выдано было много, но сводной информации найдено не было. Тем более что установить хотелось все это на движке wordpress и сразу для нескольких сайтов (доменов) в одну базу.

ryanmcdonnell.com/multiple-blogs-one-wordpress-install-zero-code-changes/ заумное описание установки wordpress для нескольких блогов, но в разные базы.

Итак, начнем по порядку, с учетом всего найденного, с возможными изменениями и дополнениями, проблемами, которые могут возникнуть.

1. Домены в одну папку. Раз движок будет один, то вполне логично, что установлен он должен быть в одной папке основного домена. Остальные домены направляем на эту папку. Как известно, менеджеры хостинга при добавлении нового сайта (домена) разрешают указать данные по папке размещения домена как на автомате по умолчанию, так и вручную. Имеем домены сайт1.ru сайт2.ru сайт3.ru Для основного оставим папку как есть (к примеру /www/сайт1.ru), для остальных при их создании впишем папку не по дефолту, а ту которая прописана для первого основного сайта. Тем самым все сайты (домены) будут искать информацию для запуска и подключения в одной папке на хостинге.

2. Одна база. Различия в работе разных сайтов на движке wordpress в общем, определяется только файлом config.php, т.е. данными о подключении к базе, префиксами таблиц, кодовыми словами и прочее, а вся остальная информация (настройки, темплаты, подключенные плагины) уложена в базе таблиц для каждого сайта. О создании нескольких копий сайтов в одной базе хорошо написано у denis.boltikov.ru/2007/07/13/neskolko-kopij-wordpress-na-odnom-dvizhke-i-baze/

В общем виде добавляемый кусок кода в файл config.php выглядит следующим образом

$prefix = $_SERVER["HTTP_HOST"];

$prefix = str_replace("www.", "", $prefix);

$prefix = str_replace("-", "", $prefix);

$prefix = str_replace(".", "", $prefix);

$table_prefix = $prefix."_" ;

Что получаем? Исходя из запрошенного имени сайта, конфиг подключит таблицы базы с префиксом определяемым по $_SERVER['HTTP_HOST']. Для каждого сайта будет свой комплект таблиц.

3. Robots.txt и sitemap.xml Вот тут уже начинаются трудности. В папке, в общем, должно быть по одному такому файлу. Но у нас то несколько сайтов, у которых вполне определимо разные данные в роботсе и сайтмепе. Что будем делать, чтобы при запросе к определенному сайту нашей группы выдавался нужный файл? Пойдем простым путем по аналогии с базами. Сделаем несколько файлов — robots-site1.ru.txt robots-site2.ru.txt robots-site3.ru.txt и sitemap-site1.ru.xml sitemap-site2.ru.xml sitemap-site3.ru.xml А файл .htaccess дополним следующей конструкцией

RewriteCond %{REQUEST_FILENAME} /robots.txt$ [NC]

RewriteRule ^ /robots-%{HTTP_HOST}.txt [L]

RewriteCond %{REQUEST_FILENAME} /sitemap.xml$ [NC]

RewriteRule ^ /sitemap-%{HTTP_HOST}.xml [L]

Соответственно при запросе по уникальному URL сайта будут отдаваться нужные файлы роботса и сайтмепа. Единственное, что в плагине google sitemap нужно будет указать для каждого блога в их админках соответствующие файлы sitemap.

4. Загрузка картинок. Чтобы не пересекать блоги, особенно при загрузке картинок с одинаковым именем самое лучшее это создать отдельные папки для каждого блога в папке /uploads/. Соответственно в настройках «разное» для кажого блога указать конкретную для него папку загрузки.

5. Нерешенные вопросы или вопросы требующие перекодирования плагинов или прочего. Вотермарк, md5, дополнительное кеширование. У меня во всех этих плагинах конкретно указывается файл, который создает плагин и его размещение. Вариант решения не найден. Больше склоняюсь к необходимости изменения кодов плагинов. Вполне вероятно, что и некоторые другие плагины могут из-за этого отказаться нормально работать. У себя из 20 установленных пока не нашел, но ведь и плагинов то всего не 20, а намного больше. Вариант второй — просто не ставить проблемные плагины.

А как вы видите решение по вопросам последнего пункта. Да, и если будут вопросы и неясности в реализации, то обязательно спрашивайте, а я постараюсь ответить.

Увеличиваем размер загружаемого файла в WordPress