Доброго всем времени суток, стала интересная задача:
У меня есть порядка 30 сайтов, все на собственном движке, время от времени я что то дописываю и каждый раз приходиться вручную ко всем подключатся и заливать файлы, возможно ли как то автоматизировать этот процесс?
Придумал что то типа, главного сайта у которого есть папка update, в которою заливать файлы, которые нужно обновить. Другие сайты имеют скрипт, который смотрит в эту папку и если находит что она не пуста, копирует ее содержимое себе. Ну что то в этом роде. Может подскажете что?
_____________
*пускает слюну, глядя на код* :)
Zzepish
10.04.2014 - 15:42
Skesh
я бы делал так:
на основном сайте динамический вывод всех файлов в виде: /dir/dir2/filename.php;
ПОтом это парсить, пердавая как аргумент в другой файл (или этот-же) допустим через гет. На файле, которому передат делать file get contents и выводить в html-документ. Ну и создавать дирректории и файлы в них
Zzepish спс, направление получил, с парсингом еще не работал - буду разбираться.
_____________
*пускает слюну, глядя на код* :)
AllesKlar
10.04.2014 - 16:09
Skesh
У меня это реализовано так:
Общий движок, вынесен за пределы www
У каждого клиента ("сайта") в корне лежит конфиг с прописанными предпочтениями и настройками для базы + шаблоны + index.php
клиентский index.php инклюдит свои конфиги, после этого инклюдит index.php движка.
index.php движка смотрит, есть ли у клиента шаблоны, если нет, то использует свой дефолтный шаблон.
Таким образом, у меня существует только один сайт, который в зависимости от переданного ему конфига и базы превращается в "индивидуальны клиентский сайт"
_____________
[продано копирайтерам]
Цитата |
Общий движок, вынесен за пределы www |
это как? находится не на хостинге?
_____________
*пускает слюну, глядя на код* :)
AllesKlar
10.04.2014 - 16:13
Цитата (Skesh @ 10.04.2014 - 16:10) |
Цитата | Общий движок, вынесен за пределы www |
это как? находится не на хостинге? |
На хостинге.
Просто выше htdocs
Если у тебя нет прав смотреть выше этого каталога, то можешь сделать и в нем, и .htaccess запретить в него прямой доступ
--------------------
Да, конечно же, это возмжно только, если единная точка входа.
Иначе инклюдом одного index.
php не отделаешься
Но смысл в том, что если всюду один и тот же код, то смысл его плодить, если можно просто подключать из одного места, доступного всем
_____________
[продано копирайтерам]
waldicom
10.04.2014 - 16:29
А если у клиентов разные версии? Разные фичи?
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
AllesKlar
10.04.2014 - 16:36
waldicomrepository_app_v01
repository_app_v02
repository_app_v..n
config.
php // клиентский конфиг
define('version', номер версии);
index.
php //клиентский индекс
include 'repository_app_v' . version . '/index.php';
а про разные фичи вот тут холиварчик поразводили.
http://phpforum.ru/index.php?showtopic=78814&hl=Данное, кстати, было предложенно мной, после того, как я замучался накатывать обновления 200ста клиентам раз в 2 месяца :)
Теперь, если клиент покупает новую версию, я просто в конфиге меняю одну цифру.
Вот сейчас раскачиваю шефа, чтобы написать этакую CMS управления клиентскими сайтами.
Брыкается пока, т.к. денег на этом мы не заработаем, чисто для внутреннего удобства :)
_____________
[продано копирайтерам]
А если у клиентов разные хостинги?
_____________
*пускает слюну, глядя на код* :)
AllesKlar
10.04.2014 - 16:44
Цитата (Skesh @ 10.04.2014 - 16:41) |
А если у клиентов разные хостинги? |
Тогда, конечно, даная схема работать не будет.
Но ты можешь у себя сделать репозиторий, и оттуда обновлять.
SVN читай.
Цитата |
Придумал что то типа, главного сайта у которого есть папка update, в которою заливать файлы, которые нужно обновить. Другие сайты имеют скрипт, который смотрит в эту папку и если находит что она не пуста, копирует ее содержимое себе. Ну что то в этом роде. Может подскажете что? |
Собственно, то, что ты написал, это оно и есть.
_____________
[продано копирайтерам]
спс за направление. Я так погуглил немного, и все сводится к тому что с хостинга на хостинг передавать опасно, ибо данная опция зависит от самого хостинга, и если включить ее, то есть риск что РНР файлы сопрут...
_____________
*пускает слюну, глядя на код* :)
AllesKlar
10.04.2014 - 16:53
SkeshSVN настраивается
Открытый для всех доступ или по логину с паролем.
Тебе нужно логин/пароль
Но опять же, все упирается в хостинг. если клиент жлоб и купил хостинг за 50руб/мес, где даже SSH нет, то, конечно там только ручками обновлять.
30 сайтов - это не мало. Арендуй сервак, и всем клиентам наобещай плюшек, и постепенно их к себе на хостинг перетаскивай
_____________
[продано копирайтерам]
Цитата |
30 сайтов - это не мало. Арендуй сервак, и всем клиентам наобещай плюшек, и постепенно их к себе на хостинг перетаскивай |
именно об этом и подумал =) но не сервак а хостинг с безграничным количеством бд и сайтов. Никогда не вел сервак, сложно? Много заморачиватся?
_____________
*пускает слюну, глядя на код* :)
vagrand
10.04.2014 - 16:56
Залить код в SVN репозитарий или аналог и настроить на всех чекаутах автоапдейт стандартными средствами утилиты.
_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
Используйте composer ,остальное старый век.
https://getcomposer.org/
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.