[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как автоматически сделать обновление файлов на мно
Skesh
Доброго всем времени суток, стала интересная задача:
У меня есть порядка 30 сайтов, все на собственном движке, время от времени я что то дописываю и каждый раз приходиться вручную ко всем подключатся и заливать файлы, возможно ли как то автоматизировать этот процесс?
Придумал что то типа, главного сайта у которого есть папка update, в которою заливать файлы, которые нужно обновить. Другие сайты имеют скрипт, который смотрит в эту папку и если находит что она не пуста, копирует ее содержимое себе. Ну что то в этом роде. Может подскажете что?


_____________
*пускает слюну, глядя на код* :)
Zzepish
Skesh
я бы делал так:
на основном сайте динамический вывод всех файлов в виде: /dir/dir2/filename.php;
ПОтом это парсить, пердавая как аргумент в другой файл (или этот-же) допустим через гет. На файле, которому передат делать file get contents и выводить в html-документ. Ну и создавать дирректории и файлы в них
Skesh
Zzepish спс, направление получил, с парсингом еще не работал - буду разбираться.

_____________
*пускает слюну, глядя на код* :)
AllesKlar
Skesh
У меня это реализовано так:

Общий движок, вынесен за пределы www
У каждого клиента ("сайта") в корне лежит конфиг с прописанными предпочтениями и настройками для базы + шаблоны + index.php

клиентский index.php инклюдит свои конфиги, после этого инклюдит index.php движка.
index.php движка смотрит, есть ли у клиента шаблоны, если нет, то использует свой дефолтный шаблон.

Таким образом, у меня существует только один сайт, который в зависимости от переданного ему конфига и базы превращается в "индивидуальны клиентский сайт"

_____________
[продано копирайтерам]
Skesh
Цитата
Общий движок, вынесен за пределы www
это как? находится не на хостинге?


_____________
*пускает слюну, глядя на код* :)
AllesKlar
Цитата (Skesh @ 10.04.2014 - 16:10)
Цитата
Общий движок, вынесен за пределы www
это как? находится не на хостинге?

На хостинге.

Просто выше htdocs

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


--------------------
Да, конечно же, это возмжно только, если единная точка входа.
Иначе инклюдом одного index.php не отделаешься smile.gif

Но смысл в том, что если всюду один и тот же код, то смысл его плодить, если можно просто подключать из одного места, доступного всем

_____________
[продано копирайтерам]
waldicom
А если у клиентов разные версии? Разные фичи?

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
AllesKlar
waldicom
repository_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 управления клиентскими сайтами.
Брыкается пока, т.к. денег на этом мы не заработаем, чисто для внутреннего удобства :)

_____________
[продано копирайтерам]
Skesh
А если у клиентов разные хостинги?

_____________
*пускает слюну, глядя на код* :)
AllesKlar
Цитата (Skesh @ 10.04.2014 - 16:41)
А если у клиентов разные хостинги?

Тогда, конечно, даная схема работать не будет.

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

Цитата
Придумал что то типа, главного сайта у которого есть папка update, в которою заливать файлы, которые нужно обновить. Другие сайты имеют скрипт, который смотрит в эту папку и если находит что она не пуста, копирует ее содержимое себе. Ну что то в этом роде. Может подскажете что?

Собственно, то, что ты написал, это оно и есть.

_____________
[продано копирайтерам]
Skesh
Цитата
SVN читай
спс за направление. Я так погуглил немного, и все сводится к тому что с хостинга на хостинг передавать опасно, ибо данная опция зависит от самого хостинга, и если включить ее, то есть риск что РНР файлы сопрут...


_____________
*пускает слюну, глядя на код* :)
AllesKlar
Skesh
SVN настраивается
Открытый для всех доступ или по логину с паролем.
Тебе нужно логин/пароль

Но опять же, все упирается в хостинг. если клиент жлоб и купил хостинг за 50руб/мес, где даже SSH нет, то, конечно там только ручками обновлять.

30 сайтов - это не мало. Арендуй сервак, и всем клиентам наобещай плюшек, и постепенно их к себе на хостинг перетаскивай wink.gif

_____________
[продано копирайтерам]
Skesh
Цитата
30 сайтов - это не мало. Арендуй сервак, и всем клиентам наобещай плюшек, и постепенно их к себе на хостинг перетаскивай

именно об этом и подумал =) но не сервак а хостинг с безграничным количеством бд и сайтов. Никогда не вел сервак, сложно? Много заморачиватся?

_____________
*пускает слюну, глядя на код* :)
vagrand
Залить код в 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, фрагменты.
Oyeme
Используйте composer ,остальное старый век.
https://getcomposer.org/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.