Хранение репозитариев GIT на сервере

Рано или позно приходишь к мысли, что не плохо бы иметь свой git сервер под проекты, чтоб не таскать взад-перед с компа на комп кучу наработок и скриптов. Ну и чтоб конечные потребители имели в наличии всегда срез последних наработок, а не таскали с сервера на сервер уже не актуальный скрипт.

Процесс установки:

apt-get install git gitweb openssh

, где git собственно сервер  репозиатриев.
gitweb — веб морда для него
openssh — сервер SSH который позволит безопасно работать с git

Далее создадим свой первый репозитарий. Например в папке /home/git/

mkdir first
cd first
git init --bare

В папке будет создана следующая структура:

branches
config
description
HEAD
hooks
info
objects
refs

Содержимое файла description  можно отредактировать чтоб увидеть внятное описание скрипта в вебморде.

Следует помнить, что на сервере git храняться лишь изменения файлов, непосредственно саму структуру файлов репозитария вы сможете увидеть только на «клиентах» сервера.

Теперь настроим собственно «вебморду».

mcedit /etc/gitweb.conf

,и отредактиреум строчки:

$projectroot = "/home/git/"; //где лежат наши репозитарии
$site_name = "Репозитарий скриптов и ПО ГК Рога и Копыта";

Вот и всё. Если теперь зайдете на на http://ваш_сервер/gitweb/, то увидите свой первый репозитарий git.

 

Как видите, вид совсем не презентабельный. Можно чуть «поколдовать» самому со скриптами в /usr/share/gitweb/static или взять еже готовую «тему» например с https://github.com/kogakure/gitweb-theme. Уже лучше.

Как пользоваться git на «клиенте»? Если пользуетесь например NetBeans, то заходим в меню Группа-Git-Клонировать, вводим адрес репозитария и все остальные данные, и следуем мастеру..

Затем создаем проект в папке с репозитарием и пишем код. Когда возникнет нужна сохранить код на git сервере — выделяем правой кнопкой по проекту: Git -> Фиксация. Затем Git -> Удаленный -> Вытолкнуть

Или тоже самое в консоли:

git init
echo "hello!">readme.txt
git add .
git commit -m "Первый коммит"
git remote add origin git@server_name:/home/git/first
git push origin master

Безопасность.

Для того чтобы не дать доступ всем людям к данному репозитарию через giweb, можно поставить блокировку по паролю:

Alias /gitweb /usr/share/gitweb
<Directory /usr/share/gitweb>
  AuthType Basic
  AuthName "Restricted Area 51"
  AuthBasicProvider file
  AuthUserFile /usr/share/gitweb/.htpasswd
  Require valid-user
  Options FollowSymLinks +ExecCGI
  AddHandler cgi-script .cgi
</Directory>

Создать пользователя:

htpasswd -c /usr/share/gitweb/.htpasswd $USER

Совместное использование php 7 и php 5 на одном сервере Ubuntu 16.4

По умолчанию на последних версиях Ubuntu с ситемой ставится php 7. Однако до сих пор множество проектов не работают полноценно на этой версии.

1) Добавим репозитарий и установим php 5.6 и php 7.0 вместе

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0 php5.6 php5.6-mysql php-gettext php5.6-mbstring php-mbstring php7.0-mbstring php-xdebug libapache2-mod-php5.6 libapache2-mod-php7.0

2) Переключимся на php 5.6

  • Apache:
    sudo a2dismod php7.0 ; sudo a2enmod php5.6 ; sudo service apache2 restart
    
  • CLI:
    sudo update-alternatives --set php /usr/bin/php5.6
    

3) Переключимся на php 7.0

  • Apache:
    sudo a2dismod php5.6 ; sudo a2enmod php7.0 ; sudo service apache2 restart
    
  • CLI:
    sudo update-alternatives --set php /usr/bin/php7.0
    

Программное сохранение отчета СКД в файл Excel

Задача: по расписанию формировать файл отчета СКД и отправлять его по электронной почте.

Решение:

1. Формируем файл

таб1=новый ТабличныйДокумент();
	
	СКД=Отчеты.ПрибыльЗаПериод.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	Настройки=СКД.НастройкиПоУмолчанию;
	Дата1=Настройки.ПараметрыДанных.Элементы.Найти("Дата1");
	Дата1.Значение=НачалоМесяца(ТекущаяДата());
	Дата2=Настройки.ПараметрыДанных.Элементы.Найти("Дата2");
	Дата2.Значение=КонецДня(ТекущаяДата());
	ВидЦены=Настройки.ПараметрыДанных.Элементы.Найти("ВидЦены");
	ВидЦены.Значение=Справочники.ВидыЦен.НайтиПоНаименованию("Основная цена закупки");
	Магазин=Настройки.ПараметрыДанных.Элементы.Найти("Магазин");
	Магазин.Значение=Справочники.Магазины.НайтиПоНаименованию("Вологда Торговля");

	 	Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;
		КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;    
		
        //Передаем в макет компоновки схему, настройки и данные расшифровки
        МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Настройки, Расшифровка);    
        ВнешниеПараметры = Новый Структура;    
		
        //Выполним компоновку с помощью процессора компоновки
        ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеПараметры, Расшифровка);    
		
        //Выводим результат в табличный документ
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(таб1);    
        ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);    	 
		
		таб1.Записать("c:\temp\моржа.xls",ТипФайлаТабличногоДокумента.XLS);

2.Отправляем его по почте

	ПараметрыПочты = новый ИнтернетПочтовыйПрофиль;
		ПараметрыПочты.АдресСервераSMTP = пснмп;
		ПараметрыПочты.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
		ПараметрыПочты.ПользовательSMTP = плогин;
		ПараметрыПочты.ПарольSMTP=ппароль;
		
		Письмо=новый ИнтернетПочтовоеСообщение;
		Письмо.Тема="Комплексный отчет по продажам в магазине Вологда Торговля";
		Письмо.ИмяОтправителя="1С отправка отчетов";
		Письмо.Отправитель=побратный;
		Письмо.Получатели.Добавить(пполучатель);	
		Письмо.Получатели.Добавить("blabla@mail.ru");	

		Письмо.Тексты.Добавить("Комплексный отчет по продажам в магазине Вологда Торговля");		
		Письмо.Вложения.Добавить("c:\temp\моржа.xls");
		
		Подключение=новый ИнтернетПочта;
		Попытка
		Подключение.Подключиться(ПараметрыПочты);
		Подключение.Послать(Письмо);        

Винни-Пух и день забот (с)

  1. У родителей приставы сняли с карточки 40 тыс за долги однофамильцы. А Сбербанк с радостным повизгиванием, не проверив, эти деньги им перевел. У пенсионеров! Последние! Живите как хотите, пока там разберуться, пока вернут.. Наверняка еще за это никто и наказание не понесёт.
  2. Почта России. На обслуживание 3-х человек потратили:
    — оформление подписки на журнал — 12 минут
    — забрать посылку наложным с платежом  — 14 минут
    — заплатить бабушке за газ 6 минут,
    Итого:  32 минуты. На элементарные действия! При чем девушка не сидела без дела. Всё чтото писала, печатала, в ПК информацию вводила. Было плохо. Стало еще хуже. Сделайте обратно плохо!

Жизнь замечательных грибов