Другой путь на диске. Windows
Добавлено: Пн сен 01, 2014 12:04 am
На момент знакомства с МД у меня уже был установленный Апачи сервер и работал сайт для других моих задач. Конечно же не хотелось поднимать параллельно второй сервер, и тем более ставить второй комп. Решил попробовать разместить МД в другую папку, чтобы на одном сервере работали сразу два сайта по разным портам. Все получилось, но после обновления приходится менять пути каждый раз снова. Приведу примеры, где и что я нашел. Может быть чего то я просто не увидел, а что то получится обойти в будущих обновлениях, чтобы не привязываться к пути C:\_majordomo\htdocs, прописанному в php файлах.
Отдельно хочу предложить изменить понимание пути в SERVER_ROOT. Что если определить этот путь как указатель на место (папку), где лежат папки Apache2.2, MySQL, PHP и т.д. Другими словами SERVER_ROOT будет указывать на папку, с папками компонентами сервера. Переопределять этот путь в файле config.php как добавив к пути /server исходя из текужего размещения файлов в дистрибутиве по установке системы МД. Использовать SERVER_ROOT исключительно для доступа к файлам компонентам сервера, например к php.exe, но не для доступа к файлам МД
Для файлов МД есть DOC_ROOT. Сейчас он также определяется в config.php как То есть будет взят путь на диске, где лежит config.php и index.php, а следовательно и остальные файлы МД. И в дальнейшем для доступа к которым использовать только DOC_ROOT.
Сейчас это все так, но в php файлах сайта используются разные варианты, которые работают только при оригинальном размещении сервера и папки с файлами сайта. Если для компонентов сервера всегда отталкиваться от SERVER_ROOT, а для файлов сайта от DOC_ROOT, то получается папку с сайтом можно будет разместить где угодно, и он будет работать на сервере, который может находится в любом месте. Возможно это не имеет особого смысла, если МД был установлен на чистую машину и более ничего на ней размещать не планируется. Но если сервер уже был, то подобный подход к путям сайта очень актуален. В любом случае хуже точно не будет.
По возможности для получения путей к другим файлам, в php файлах нужно отталкиваться не от их размещения на диске, а от констант SERVER_ROOT и DOC_ROOT. Главное чтобы в этом файле был включен config.php
Теперь про изменения:
.\config.php
В этом файле требуется настроить пароль к SQL базе, если конечно он установлен в sql. Лично я люблю все запирать хоть и плохонький, но замочек. Так же тут настраивается порт сервера и сам путь SERVER_ROOT. Этот файл не обновляется и будет достаточно настроить его один раз.
.\cycle.php
Пробуем подменить на путь SERVER_ROOT
.\obj.bat
Нужно получить путь к php.exe Сейчас используется вариант отталкивания от пути самого obj.bat. Варианты: либо правим файл и каждый раз после обновления копируем обратно, либо надо подумать как вытащить значение SERVER_ROOT из config.php средствами bat файла. Так то это не должно быть затратной операцией.
.\megad.php
Будет полностью заменен при обновлении на пустую болванку! Актуально для обладателей такого железа как МегаД. Для остальных вообще не важно что в этом файле. Варианты:
1. Я вполне неплохо сдружился с МегаДевайсом, и мог бы поддерживать обновление этого файла в дистрибутиве МД сам.
2. Просто после обновления копируем этот файл обратно.
3. Отключить обновление этого файла.
.\pChart\pics.php и s.php
Путь к файлам шрифтов. Возможно будет не актуально в связи в появлением pChart2 и jgraph
.\modules\saverestore\saverestore.class.php
т.к. я в самом начале предложил добавить /server к пути в SERVER_ROOT, тут потребуется убрать /server
.\rc\scripts\vlc_play.au3
Я не помню какой был точно путь в дистрибутиве МД. Что то типа этого. По моему мнению apps должны лежать в папке с компонентами сервера. Следовательно, нужно взять путь SERVER_ROOT, добавить у нему apps и vlc
Это пока что все чего нашел. И касается установки под Windows.
Отдельно хочу предложить изменить понимание пути в SERVER_ROOT. Что если определить этот путь как указатель на место (папку), где лежат папки Apache2.2, MySQL, PHP и т.д. Другими словами SERVER_ROOT будет указывать на папку, с папками компонентами сервера. Переопределять этот путь в файле config.php как
Код: Выделить всё
Define('SERVER_ROOT', 'c:/_majordomo/server'); // в конце косой черты быть не должно Для файлов МД есть DOC_ROOT. Сейчас он также определяется в config.php как
Код: Выделить всё
Define('DOC_ROOT', dirname(__FILE__));Сейчас это все так, но в php файлах сайта используются разные варианты, которые работают только при оригинальном размещении сервера и папки с файлами сайта. Если для компонентов сервера всегда отталкиваться от SERVER_ROOT, а для файлов сайта от DOC_ROOT, то получается папку с сайтом можно будет разместить где угодно, и он будет работать на сервере, который может находится в любом месте. Возможно это не имеет особого смысла, если МД был установлен на чистую машину и более ничего на ней размещать не планируется. Но если сервер уже был, то подобный подход к путям сайта очень актуален. В любом случае хуже точно не будет.
По возможности для получения путей к другим файлам, в php файлах нужно отталкиваться не от их размещения на диске, а от констант SERVER_ROOT и DOC_ROOT. Главное чтобы в этом файле был включен config.php
Код: Выделить всё
include_once("./config.php");.\config.php
В этом файле требуется настроить пароль к SQL базе, если конечно он установлен в sql. Лично я люблю все запирать хоть и плохонький, но замочек. Так же тут настраивается порт сервера и сам путь SERVER_ROOT. Этот файл не обновляется и будет достаточно настроить его один раз.
Код: Выделить всё
Define('DB_PASSWORD', ''); // Пароль на sql
Define('BASE_URL', 'http://127.0.0.1:80'); // Your base URL:port (!!!)
Define('SERVER_ROOT', 'c:/_majordomo/server'); // в конце косой черты быть не должно Пробуем подменить на путь SERVER_ROOT
Код: Выделить всё
// $threads->phpPath = '..\server\php\php.exe';
$threads->phpPath = SERVER_ROOT.'\php\php.exe';Нужно получить путь к php.exe Сейчас используется вариант отталкивания от пути самого obj.bat. Варианты: либо правим файл и каждый раз после обновления копируем обратно, либо надо подумать как вытащить значение SERVER_ROOT из config.php средствами bat файла. Так то это не должно быть затратной операцией.
.\megad.php
Будет полностью заменен при обновлении на пустую болванку! Актуально для обладателей такого железа как МегаД. Для остальных вообще не важно что в этом файле. Варианты:
1. Я вполне неплохо сдружился с МегаДевайсом, и мог бы поддерживать обновление этого файла в дистрибутиве МД сам.
2. Просто после обновления копируем этот файл обратно.
3. Отключить обновление этого файла.
.\pChart\pics.php и s.php
Путь к файлам шрифтов. Возможно будет не актуально в связи в появлением pChart2 и jgraph
Код: Выделить всё
C:\_majordomo\htdocs\pChart\Fonts\...т.к. я в самом начале предложил добавить /server к пути в SERVER_ROOT, тут потребуется убрать /server
Код: Выделить всё
// exec(SERVER_ROOT."/server/mysql/bin/mysqldump --user=root --no-create-db --add-drop-table --databases ".DB_NAME.">".$filename);
exec(SERVER_ROOT."/mysql/bin/mysqldump --user=root --no-create-db --add-drop-table --databases ".DB_NAME.">".$filename);Я не помню какой был точно путь в дистрибутиве МД. Что то типа этого. По моему мнению apps должны лежать в папке с компонентами сервера. Следовательно, нужно взять путь SERVER_ROOT, добавить у нему apps и vlc
Код: Выделить всё
ShellExecute ("C:\_majordomo\apps\vlc\vlc.exe",'"' & $CmdLine[1] & '"')