Установка Ruby on Rails на Centos 5

И так, для установки Ruby on Rails необходимо добавить rubyworks репозитарий. Создаем файл /etc/yum.repos.d/rubyworks.repo и добавляем в него следующее:

[rubyworks]
name=RubyWorks
baseurl=http://rubyworks.rubyforge.org/redhat/$releasever/RPMS/$basearch
enabled=1
gpgcheck=1
gpgkey=http://rubyworks.rubyforge.org/RubyWorks.GPG.key
priority=1

Далее переходим к установке:

yum install ruby ruby-devel ruby-libs ruby-irb ruby-rdoc ruby-mysql

Устанавливаем Ruby gems:

http://rubyforge.org/frs/download.php/74886/rubygems-1.8.3.tgz
tar xvf rubygems-1.8.3.tgz
cd rubygems-1.8.3.tgz
ruby setup.rb

И устанавливаем Rails:

gem install rails

Количество просмотров :2765

Установка FTP сервера Vsftpd

Vsftpd очень хороший, быстрый и надежный FTP сервер. Устанавливаем сам сервер при помощи yum:

yum install vsftpd

Vsftpd работает из коробки, особо ничего конфигурировать не надо.
Файл конфигурации /etc/vsftpd/vsftpd.conf.
Для запуска сервера FTP выполните команду:

service vsftpd start

Для запуска FTP-сервера, при загрузки системы:

chkconfig vsftpd on

Убедитесь, что брандмауэр не блокирует доступ к порту FTP, выполните:

system-config-securitylevel

Allow (FTP) as «Trusted Services»


Количество просмотров :1538

PhP Функция для подключения всех файлов в директории

Данная функция подключает все файлы находящиеся в указанной директории:

<?php
function include_from($dir, $ext='php'){
$opened_dir = opendir($dir);

while ($element=readdir($opened_dir)){
$fext=substr($element,strlen($ext)*-1);
if(($element!='.') && ($element!='..') && ($fext==$ext)){
include($dir.$element);
}
}
closedir($opened_dir);
}
?>


Количество просмотров :2520

PhP текущий онлайн сайта

И так, если понадобится на сайте показывать текущее количество online пользователей, это можно реализовать так. Создадим таблицу:

CREATE TABLE useronline (
timestamp int(15) DEFAULT ‘0’ NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);

а теперь перейдем к php скрипту:

<?php
// Ваши настройки MySQL сервера
$server = "xxx";
$db_user = "xxx";
$db_pass = "xxx";
$database = "xxx";
//Конектимся к базе
$db = mysql_connect($server, $db_user,$db_pass);
mysql_select_db($database,$db);

$timeoutseconds = 300; //5 minutes

$timestamp = time();
$timeout = $timestamp-$timeoutseconds;

$insert = mysql_query("INSERT INTO useronline VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')",$db);
if(!($insert)) {
print "Useronline Insert Failed > ";
}
$delete = mysql_query("DELETE FROM useronline WHERE timestamp<$timeout",$db);
if(!($delete)) {
print "Useronline Delete Failed > ";
}
$result = mysql_query("SELECT DISTINCT ip FROM useronline WHERE file='$PHP_SELF'",$db);
if(!($result)) {
print "Useronline Select Error > ";
}
$user = mysql_num_rows($result);

mysql_close();

// Вывод результатов
if($user == 1) {
print("$user user online\n");
} else {
print("$user users online\n");
}
?>

Количество просмотров :1873

PhP Использование Cookies в CURL

Нам понадобиться файл cookies.txt с сохраненными куками, далее подаем в функцию url сайта.

function get_from_forum($URL)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEJAR, ‘cookies.txt’);
curl_setopt($ch, CURLOPT_COOKIEFILE, ‘cookies.txt’);

$output = curl_exec($ch);
curl_close($ch);
return $output;
}


Количество просмотров :2144

Mysql Размер базы из консоли

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

mysql -uroot -p -D <имя базы> -e «show table status\G»| egrep «(Index|Data)_length» | awk ‘BEGIN { rsum = 0 } { rsum += $2 } END { print rsum }’

Количество просмотров :4030

Обновления dovecot

Я тут недавно обновлял Dovecot с 1.0.0 до 1.2.10 и начало ругаться на

Error: Error in configuration file /usr/local/etc/dovecot.conf line 210: Unknown setting: mail_extra_groups

решается изменением mail_extra_groups = mail на mail_privileged_group = mail

потом начало ругаться на:

Error: Error in configuration file /usr/local/etc/dovecot.conf line 441: Unknown setting: umask

для этого комментируем #umask=0027


Количество просмотров :1870

MySQL лог SQL запросов

Добавьте следующие строки в MySQL конфиг(my.cnf), для того, что бы начать собирать логи запросов:

slow-query-log
log-output = TABLE
long_query_time = 1
general-log
expire_logs_days = 1

ну и примеры запросов для получения логов:

select * from mysql.general_log order by event_time desc limit 10;
select * from mysql.slow_log order by start_time desc limit 10;

Количество просмотров :4701

Bash Ждать пока не завершится процесс

Бывает, что в bash скрипте необходимо подождать пока не завершиться какой-то процесс. Если вы знаете его pid, то это можно реализовать так:

while ps -p `cat $PID_FILE` > /dev/null; do sleep 1; done

Количество просмотров :2212

Bash скрипт универсальный распаковщик

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

#!/bin/bash
#
#

Z="compress -d"
gz="gunzip"
bz="bunzip2"
zip="unzip -qo"
rar="unrar x -id -y"
tar="tar xf"
7z="p7zip -d"

if [ $# -eq 0 ]; then
    echo "Usage: decompress file or files">&2
    exit 1
fi

for name
do
	if [ ! -f "$name" ] ; then
		echo "$0: file $name not found." >&2
		continue
	fi

	if [ "$(echo $name | egrep '(\.Z$|\.gz$|\.bz2$|\.zip$|\.rar$|\.tar$|\.tgz$|\.7z$)')" = "" ] ; then
		echo "Skipped file ${name}: it's already decompressed." 
      		continue
	fi

	extension=${name##*.}

	case "$extension" in
		Z ) echo "Filetype is Z. Decompressing..."
		    $Z "$name"
		    ;;
		gz ) echo "Filetype is gz. Decompressing..."
		     $gz "$name"
		     ;;
		bz2 ) echo "Filetype is bz2. Decompressing..."
 		     $bz "$name"
		     ;;
		zip ) echo "Filetype is zip. Decompressing..."
		      $zip "$name"
		      ;;
		rar ) echo "Filetype is rar. Decompressing..."
		      $rar "$name"
		      ;;
		tar ) echo "Filetype is tar. Decompressing..."
              	      $tar "$name"
              	      ;;
		tgz ) echo "Filetype is tgz. Decompressing..."
              	      $tar "$name"
                     ;;
               7z ) echo "Filetype is 7z. Decompressing..."
                     $7z "$name"
	esac

done

exit 0



Количество просмотров :2017