Архив рубрики: Linux

Наработки и статьи по работе с Linux

Пользовательский crontab во FreeBSD

Помимо общесистемного /etc/crontab , существует возможность выполнять периодические задания и для каждого пользователя. Эти задания лежат в /var/cron/tabs,  причем имя файла — это имя пользователя под которым они будут выполняться. Так-же отличается и формат файла, в нем отсутствует столбец имени пользователя.

Пример файла:

SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
MAILTO=""
#
#minute	hour	mday	month	wday	command
#
*/5	*	*	*	*	echo "1" >> /var/log/me.log

Хранение репозитариев 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