ubuntu / debian subversion 1.7 deb

Here is a repository for subversion 1.7 (tested on Kubuntu 11.04):

add this line in your /etc/apt/sources.list file

deb http://opensource.wandisco.com/ubuntu lucid svn17 

And adding the key for it: 

wget http://opensource.wandisco.com/wandisco-debian.gpg \
 -O /tmp/wandisco-debian.gpg &> /dev/null 
apt-key add /tmp/wandisco-debian.gpg 
rm -rf /tmp/wandisco-debian.gpg 
 

Install nginx, php5 with php5-fpm on ubuntu

Here is described how to install nginx with php support on Ubuntu (Kubuntu) 10.10 but it can be used for any other Linux distribution.

If you already have installed Apache web server on your system make sure it is not running:

$ sudo /etc/init.d/apache2 status
Apache2 is running (pid 4757).

$ sudo /etc/init.d/apache2 stop
* Stopping web server apache2                                                                                                                                                                 … waiting

$ sudo /etc/init.d/apache2 status
Apache2 is NOT running.

Next step is to install nginx server:

$ sudo apt-get install nginx

and php fpm:

$ sudo apt-get install php5-fpm

Now you need to create a new virtual host with name example.loc or whatever your domain is

cd  /etc/nginx/sites-available/

sudo cp default example.loc

And now edit this file with editor you like (for example with nano):

sudo nano example.loc

server {

listen   80; ## listen for ipv4
#listen   [::]:80 default ipv6only=on; ## listen for ipv6

server_name  example.loc;

access_log  /var/log/nginx/localhost.access.log;

location / {
root   /var/www;
index  index.php index.html index.htm;
}

#location /doc {
#root   /usr/share;
#autoindex on;
#allow 127.0.0.1;
#deny all;
#}

#location /images {
#root   /usr/share;
#autoindex on;
#}

#error_page  404  /404.html;

# redirect server error pages to the static page /50x.html
#
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   /var/www/nginx-default;
}

# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
#proxy_pass   http://127.0.0.1;
#}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_pass   127.0.0.1:9000;
fastcgi_index  index.php;
fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
location ~ /\.ht {
deny  all;
}
}

cd /etc/nginx/sites-enabled/

sudo ln -s /etc/nginx/sites-available/example.loc example.loc

You can check if links are ok with :

$ ls -la
total 8
drwxr-xr-x 2 root root 4096 2011-02-21 11:09 .
drwxr-xr-x 5 root root 4096 2011-02-21 10:56 ..
lrwxrwxrwx 1 root root   34 2011-02-21 10:56 default -> /etc/nginx/sites-available/default
lrwxrwxrwx 1 root root   38 2011-02-21 11:09 example.loc -> /etc/nginx/sites-available/example.loc

Now add this domain in hosts file:

sudo nano /etc/hosts

Add this line (if this ip address already exists just append ‘example.loc’ at end of the line )

….

127.0.1.1       example.loc

….

You can check if conf syntax is OK with:

$ sudo nginx -t
the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful

Restart nginx and php fpm:

$ sudo /etc/init.d/nginx restart
Restarting nginx: nginx.
$ sudo /etc/init.d/php5-fpm restart
* Stopping PHP5 FPM…                                                                                                                                                                [ OK ]
* Starting PHP5 FPM…                                                                                                                                                                       Feb 21 11:17:02.990639 [WARNING] [pool www] pm.start_servers is not set. It’s been set to 20.
[ OK ]

Now you can test it with loading domain url in browser: http://example.loc
You can switch between Apache and nginx with:

$ sudo /etc/init.d/nginx stop

Stopping nginx: nginx.

$ sudo /etc/init.d/apache2 start
* Starting web server apache2

Rewrite rules used with Zend framework can be used with nginx like this:

.htaccess file:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ – [NC,L]
RewriteRule ^.*$ index.php [NC,L]

For nginx make this changes:

sudo nano /etc/nginx/sites-available/example.loc

….

location / {
if (!-e $request_filename) {
rewrite ^.*$ /index.php last;
}
root   /var/www;
index  index.php index.html index.htm;
}

….

And you can force which server to load on system load with:

sudo sysv-rc-conf

Used resources:

http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-10.10-p2

http://framework.zend.com/issues/browse/ZF-7701

The resource is not on the build path of PHP project

The resource is not on the build path of PHP project

Този проблем с Eclipse и phpeclipse има решенеие при редактирането на .project файла, като неговото съдържание трябва да е:

<?xml version=“1.0″ encoding=“UTF-8″?>
<projectDescription>
<name>project_name</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>net.sourceforge.phpeclipse.parserbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>net.sourceforge.phpeclipse.phpnature</nature>
</natures>
</projectDescription>

Инсталиране на Google Chromium browser в Убунту (Ubuntu)

Днес си инсталирах Gogole Chromium browser на Linux (Kubuntu).

За тези които искат да го пробват ето как:

Редактира се файала с хранилищата (repositories)

/etc/apt/sources.list

добавят се следните 2 реда:

deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/chromium-daily/ppa/ubuntu jaunty main

Под конзола:

sudo apt-get update

Разбира се липсват ключовете:

W: GPG error: http://ppa.launchpad.net jaunty Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5

За това се генерира ключа:

sudo apt-key adv –recv-keys –keyserver keyserver.ubuntu.com 5A9BF3BB4E5E17B5

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

Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –recv-keys –keyserver keyserver.ubuntu.com 5A9BF3BB4E5E17B5
gpg: requesting key 4E5E17B5 from hkp server keyserver.ubuntu.com
gpg: key 4E5E17B5: public key „Launchpad PPA for chromium-daily“ imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

Отново се изпълнява:

sudo apt-get update

Инсталира се стандартно за дебиан базирани дистрибуции:

Името на пакета е chromium-browser, а не chromium, което е някаква игра която си инсталирах като не знаех името на пакета 🙂

sudo apt-get install chromium-browser
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
chromium-browser
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 16.7MB of archives.
After this operation, 39.5MB of additional disk space will be used.
Get:1 http://ppa.launchpad.net jaunty/main chromium-browser 3.0.182.1~svn20090525r16857-0ubuntu1~ucd1~jaunty [16.7MB]
100% [1 chromium-browser 1036035/16.7MB 6%]
Fetched 16.7MB in 13s (1241kB/s)
Selecting previously deselected package chromium-browser.
(Reading database … 198852 files and directories currently installed.)
Unpacking chromium-browser (from …/chromium-browser_3.0.182.1~svn20090525r16857-0ubuntu1~ucd1~jaunty_i386.deb) …
Setting up chromium-browser (3.0.182.1~svn20090525r16857-0ubuntu1~ucd1~jaunty) …

Това е! 🙂

пуска се с:

chromium-browser

новината за нейтив поддръжка прочетох тук

http://www.ghacks.net/2009/05/26/google-browser-chromium-alpha-for-linux/

Създаване на PDF от снимки под Линукс (Кубунту)

Снимах си една книжка и стигнах до проблема да създам PDF файл от тези снимки. Първоначално се насочих към GS (ghost script), но има много по лесен начин за това. Използването на convert. Разбира се тази програма не върви стандартно с дистрибуцията и е необходимо да се инсталира допълнителен пакет.

The program ‘convert’ can be found in the following packages:
* imagemagick
* graphicsmagick-imagemagick-compat
Try: sudo apt-get install <selected package>
bash: convert: command not found

Аз използвах imagemagick.

sudo apt-get install imagemagick

И разбира се начинът, по който се прави конверирането:

convert *.jpg test.pdf

източникът е http://bitprison.net/jpg_to_pdf

Linux (Kubuntu) SMTP през Gmail

Това което ми беше необходимо е да мога да изпращам писма от Linux (Kubuntu) като използвам SMTP на GMail и най-вече да мога да пращам писма от PHP. Настройката се прави през кубунту (Kubuntu). Като начало е нужно да се инсталира postfix

sudo apt-get install postfix

Настройиките по време на инсталацията са без значение, като аз използвам настройките по подразбиране:  Internet и името на локалния хост.
Необходимо е да се променият следните файлове:

/etc/postfix/main.cf
/etc/postfix/generic
/etc/postfix/generic.db
/etc/postfix/passwd
/etc/postfix/passwd.db

sudo /etc/init.d/postfix stop

редактиране на /etc/postfix/main.cf

sudo mousepad /etc/postfix/main.cf:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA’s job.
append_dot_mydomain = no

# Uncomment the next line to generate „delayed mail“ warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost, localhost.localdomain

#mynetworks = 127.0.0.0/8
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/23
#mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = all

##########################################
##### non debconf entries start here #####

##### client TLS parameters #####
smtp_tls_loglevel=1
smtp_tls_security_level=encrypt
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/sasl/passwd
smtp_sasl_security_options = noanonymous

##### map jane@localhost to jane.doe@gmail.com #####
smtp_generic_maps=hash:/etc/postfix/generic

relayhost=[smtp.gmail.com]:587

редактиране на/etc/postfix/generic and /etc/postfix/generic.db
за изпращане на писма не е необходимо, но все пак …

sudo mousepad /etc/postfix/generic

jane@localhost   jane.doe@gmail.com

/etc/postfix/generic.db се получава по следния начин:

cd /etc/postfix
sudo postmap generic

Редактиране на /etc/postfix/sasl/passwd и /etc/postfix/sasl/passwd.db
файлът passwd съдържа Gmail паролата.

sudo mousepad /etc/postfix/sasl/passwd

[smtp.gmail.com]:587    jane.doe@gmail.com:doeadeer

за създаване на  passwd.db, се изпълнияват следните команди:

cd /etc/postfix/sasl
sudo postmap passwd
sudo chown root.root passwd passwd.db
sudo chmod 600 passwd passwd.db

След това се прави Start или reload на Postfix

sudo /etc/init.d/postfix start
sudo  postfix reload

тестване извърших с PHP с най-прост скрипт:

<?php

$message = „Line 1\nLine 2\nLine 3“;

if(mail(‘test@test.com’, ‘My Subject’, $message))
{
print ‘OK’;
}
else
{
print ‘Error’;
}
?>

По вече подробности може да се намерят от страницата:

https://help.ubuntu.com/community/GmailPostfixFetchmail

virtual hosts на apache в Kubuntu

За създаването на нови вируални хостове в кубунту се предполага че има работещо Apache. Има две папки, в които се намират конфигурационните файлове за това (т.е.конфигурационниа файл се намира в едната папка, а в другата се прави само линк към него). Тези две папки са:

/etc/apache2/sites-available/
/etc/apache2/sites-enabled/

В папкта sites-available има подразбиращ се конфигурационен файл default, който може да се копира и да се промени според изискванията за новиа виртуален хост.

Ето един примерен файл създаден в sites-available: test.lan

<VirtualHost *>
ServerName test.lan
ServerAdmin test@gmail.com

DocumentRoot /var/www/test.lan/
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
# This directive allows us to have apache2’s default start page
# in /apache2-default/, but still have / go to the right place
#RedirectMatch ^/$ /apache2-default/
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory „/usr/lib/cgi-bin“>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ „/usr/share/doc/“
<Directory „/usr/share/doc/“>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

След това трябва да се съзададе линк към този файл в папката sites-enabled

$cd /etc/apache2/sites-enabled/

$sudo ln -s /etc/apache2/sites-available/test.lan test.lan

За да бъде открит хоста е необходимо да се добави името на хоста в hosts файла:

/etc/hosts

Необходимо е на реда където се намира:

127.0.0.1 localhost

да се добави името на новия виртуален хост

127.0.0.1 localhost test.lan

Като на края разбира се е необходимо да се рестартира Apache сървъра

sudo /etc/init.d/apache2 reload

или

sudo /etc/init.d/apache2 restart

Специално за Убунту базираните дистрибуции има и по лесен начин за пускане и спиране на виртуалне хост.

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

sudo a2ensite test.lan

спиране на виртуален хост:

sudo a2dissite test.lan

Информация за това може да се намери на много места, ето едно от тях:

http://www.debuntu.org/2006/02/22/7-virtual-hosting-using-apache-2