Arama
 
 

En Yeni Yazılar...
Linux'ta Mail Çekme Aracı: Fetchmail - (Linux)
2005-11-13 12:59:25
Linux'da bir dosyanın içindeki belli bir kelimeyi değiştirme - (Linux)
2005-11-13 13:09:39
Vpopmail'de kayıtlı kullanıcı listesini almak - (Linux)
2005-11-15 17:28:25
/dev dizini altındaki aygıt dosyalarının yeniden oluşturulması
2005-11-26 12:33:14
Mysql'de 'Client does not support authentication protocol' Hatası
2005-11-30 16:07:57
Qmail ve vpopmail'i başka bir sunucuya taşırken
2005-12-01 16:20:44
Linux'da dosya sonlarındaki ^M işaretlerini temizleme
2005-12-05 15:16:18
Apache'yi mod_ssl destekli kurarken : 'krb5.h: No such file or directory' hatası
2005-12-12 12:29:03
Linux altında SSL Sertifikanızı oluşturun ve kendiniz imzalayın
2005-12-12 14:25:08
PHP5 + Mysql 5 Türkçe Karakter Problemi
2005-12-22 11:15:43
Belirli bir kullanıcının crontab ile görev tanımlamasını engellemek
2005-12-22 14:43:40
Linux'da php yi gd ile derlerken 'jpeglib.h: No such file or directory' ve 'jerror.h: No such file or directory' hatası
2006-01-05 18:47:21
LogWatch'daki 'xinetd[1652]: START: sgi_fam pid=4144 from=' satırları
2006-01-17 14:21:20
URL file-access is disabled in the server configuration (PHP-Linux)
2007-03-20 15:22:29
Vpopmail 'user_does_not_exist,_but_will_deliver_to_ /home/vpopmail/domains/ xxxxxxx.xxx/xxxxxxx // can_not_open_new_email_file_errno=2 _' hatası
2005-01-02 11:42:07
64 Bit Centos 5 Linux Sunucuda Apache Kurulumu Sırasındaki 'libexpat.so: could not read symbols: File in wrong format' hatası
2009-07-17 15:56:23
64 Bit Centos 5 Linux Sunucuda PHPKurulumu Sırasındaki 'configure: error: Cannot find libmysqlclient under /usr.' hatası
2009-07-17 16:40:32
Apache'ye mod_h264_streaming modülü yüklemek
2009-12-03 10:55:53

Yazılar...
Linux'ta Mail Çekme Aracı: Fetchmail - (Linux)
   2005-11-13 12:59:25
Sistem yöneticileri bilirler, en zahmetli işlerden biriside sunucu veya site taşıma sırasındaki maillerin taşınmasıdır. Taşıma sırasında mail kaybı istenmez. Bunu sağlamanın aslında birçok yolu vardır. Bunlardan biriside fetchmail aracını kullanmak. Fetchmail aracı ile farklı bir sunucuda bulunan mailleri local sunucumuza çekebiliriz. Bu sayade taşıma sırasında eski sunucuya gelen mailleride yeni sunucumuza çekmiş oluruz. Bunun bir diğer yoluda SMTP yönlendirme şeklinde yapılabilir. Bununla ilgili bilgiyi daha sonra vereceğim. Fetchmail ile farklı bir sunucudaki mailleri local sistemimize çekmek için sırası ile şu adımları izleriz:

#Aşağıdaki formatta bir dosya hazırlarız:

> poll mail.domain.com with proto pop3
> user "kullanici_adi1@domain.com" there with password "sifre" is "kullanici_adi1@domain.com" here
> user "kullanici_adi2@domain.com" there with password "sifre" is "kullanici_adi2@domain.com" here .... ....

Bu dosyayı 'config.txt' olarak kaydettiğimizi varsayalım. Son oalrak çalıştıracağımız komut aşağıdaki gibidir:

> fetchmail -f config.txt

Bu komut ile config.txt dosyası okunacak ve aşağıdaki işlemler yapılacaktır: mail.domain.com sunucusuna pop3 protokolü ile bağlantı kurulacak ve uzak sunucudaki kullanici_adi1@domain.com kullanicisina ait mailler bulunduğum sunucudaki yine kullanici_adi1@domain.com mail kullanicisina aktarılacaktır.

Yazan : Burak Sönmez
Linuxİpuçları; Yorumlar
Linux'da bir dosyanın içindeki belli bir kelimeyi değiştirme - (Linux)
   2005-11-13 13:09:39
perl -pi -e 's|aranacak_kelime|yeni_kelime|g' dosya_adi

Yazan : Burak Sönmez
Linuxİpuçları; Yorumlar
Vpopmail'de kayıtlı kullanıcı listesini almak - (Linux)
   2005-11-15 17:28:25

Linux üzerinde vpopmail ile yapılandırılmış bir mail sunucuda mevcut kullanıcıların bir listesini almak için vpopmail ile birlikte gelen 'vpopbull' aracını kullanabilirsiniz.


# /home/vpopmail/bin/vpopbull -n

Yazan : Burak Sönmez

Linuxİpuçları; Yorumlar
/dev dizini altındaki aygıt dosyalarının yeniden oluşturulması
   2005-11-26 12:33:14

Linux'da /dev sizini altındaki sistemin kullandığı aygıt dosyaları bulunmaktadır. Oldu ki bu dosyaları yanlışlık sildiniz veya tanımlanmamaış bir aygıt dosyasını oluşturmak istiyorsunuz.


Bu işlem işin /dev/MAKEDEV aracı imdadınıza yetişiyor:


//Standart aygıtları oluşturur.
#>/dev/MAKEDEV generic


Eğer belirli bir aygıt gurubunu oluşturmak istiyorsanız programa oluşturmak istediğiniz aygıt ismini parametre olarak geçirmek yeterli olacaktır.


//Belli bir aygıt grubunu oluşturmak için
#> /dev/MAKEDEV -v sda


 Ayrıntılı bilgi için;
#> man 8 MAKEDEV

Yazan : Burak Sönmez

Linux; Yorumlar
Mysql'de 'Client does not support authentication protocol' Hatası
   2005-11-30 16:07:57
Bu problem mysql sunucuya bağlanmaya çalıştığınız client tarafında genelde ortaya çıkar. Mysql 'in resmi sitesinde de bu konuda çeşitli çözüm yolları bildirilmektedir. Bu yazıda bunların listesini ve uygulanamasını  söylüyoruz:



  • Mysql clientların sürümünü güncellemek

  • Bütün şifreleri Set PASSWORD methodu ile yenilemek

  • Mysql 'i --old-passwords parametresi ile başlatmak ve aşağıdaki yöntem ile problemli kullanıcı şifrelerini bularak 'SET PASSWORD' işleminden geçirmek.


#> SELECT Host, User, Password FROM mysql.user WHERE LENGTH(Password) > 16;
#> SET PASSWORD FOR 'some_user'@'some_host' = OLD_PASSWORD('newpwd');
#> flush privileges;

Yazan : Burak Sönmez
MySqlLinux; Yorumlar
Qmail ve vpopmail'i başka bir sunucuya taşırken
   2005-12-01 16:20:44

Çalışan sistemlerin yetersizliği, talepleri karşılayamayacak bir conf. sahip olması, donanımsal bir problemin meydana gelmesi gibi farklı sebeplerden dolayı zaman zaman sunucu değişikliği gerekebilir.


Bu tarz bir durumla karşı karşıyasınız ve sisteminizde qmail + vpopmail ikilisi yüklü, mail hesaplarını tek tek açmak yerine dizin yapılarını kopyalamak ve gerekli ayarmaları yapmak koşulu ile mail sunucunuzu taşıyabilirsiniz:


Yeni sunucuya uygun qmail +vpopmail kurulumunu yaptıktan sonra, eski sunucuda aşağıdaki adımları uygulayarak bir kaç dosya ve vpopmail/domains dizinini yeni sunucuya aktarmamız gerekiyor.


vpopmail/domains dizinini tar layalım.
#> tar -czf domains.tgz domains/


Daha sonra domains.tgz ve aşağıdaki dosyaları yeni sunucuya aktaralım:



  • /var/qmail/control/virtualdomains

  • /var/qmail/control/rcpthosts

  • /var/qmail/control/morercpthosts

  • /var/qmail/users/assign


Bu dosyaları yeni sunucuya taşıdıktan sonra, dikkat etmeniz gereken en önemli nokta '/var/qmail/users/assign' dosyasında belirtilen vpopmail idsinin /etc/passwd dosyasındaki id ile aynı olmasıdır. Eğer aynı değilse aynı id ile değiştirmeliyiz. Bunu otomatik olarak yapmak için /var/qmail/bin/qmail-newu aracını çalıştırmamız yeterlidir.


Gerçi ben bir keresinde çalıştırdım ancak düzeltmemişti :), o zaman elle düzenlemek zorunda kalmıştım.


Bu conf.  yaptıktan sonra yeni mail sunucu hazır olmuş oluyor. Eğer arada kaçan mailler olmasın istiyorsanız bunun daha farklı yöntemleri var. Örneğin smtproutes gibi. Veya fetchmail kullanarak da daha sonradan mailleri yeni sunucuya çekebilirsiniz.


 Yazan : Burak Sönmez

Linuxİpuçları; Yorumlar
Linux'da dosya sonlarındaki ^M işaretlerini temizleme
   2005-12-05 15:16:18

Windows'tan Linux ortamına aktarılan dosyaların sonlarında ^M şeklinde karakterler görülür. Dosyayı işlemeden önce bunları temizlememiz gerekir. Bunu aşağıdaki komut ile yapabiliriz:


#> perl -pi -e "s:^M::g" dosya_adi


Burada dikkat edilmesi gereken nokta ^M karakterini komut satırına nasıl yazacağımızdır. Bu karakteri sırasıyla aşağıdaki tuş kombinasyonlarını kullanarak ekrana basabilirsiniz:


Ctrl + V
Ctrl + M


 Yazan : Burak Sönmez

Linuxİpuçları; Yorumlar
Apache'yi mod_ssl destekli kurarken : 'krb5.h: No such file or directory' hatası
   2005-12-12 12:29:03

Yeni bir apache kurulumu yapıyorsunuz ve mod_ssl desteği vermek istiyorsunuz. Burada kurulum aşamalarından bahsetmicem çünkü bir çok üstad bunu detaylı bir şekilde yapmış.


mod_ssl destekli Apache 1.3 kurulumu yaparken, apache yi derleme aşamasında aşağıdaki hata mesajını aldınız:


#>  /usr/include/openssl/kssl.h:72:18: krb5.h: No such file or directory


Öncelikle  "krb5-devel" ve "krb5-libs" paketlerinin sisteminizde olduğundan emin olun.


Redhat sistemlerde kerberos include dosyaları /usr/kerberos/include altında bulunur. Aşağıda belirtildiği gibi derleme esnasında ihtiyaç duyulan kütüphane dosyalarını /usr/include dizinine sembolik link ile bağlamamız problemi çözecektir.


#> ln -s /usr/kerberos/include/com_err.h /usr/include/ 
#> ln -s /usr/kerberos/include/profile.h /usr/include/ 
#> ln -s /usr/kerberos/include/krb5.h /usr/include/


 Yazan : Burak Sönmez

Linuxİpuçları; Yorumlar
Linux altında SSL Sertifikanızı oluşturun ve kendiniz imzalayın
   2005-12-12 14:25:08

SSL bildiğiniz üzere web sayfaları üzerinde kullanımı ile güvenli işlemler gerçekleştirir. Örneğin bir e-ticaret sitesinde Kredi kartı bilgilerinin işlam için gönderilmesi SSL üzerinden şifrelenerek yapılır. SSL 'in ne olduğu ile ilgili yazıyı daha sonradan yazıcaz. Bu noktoda sunucu tarafında bir SSL sertifikası üretmeyi ve bu sertifikiayı kendimizin nasıl imzalayabileceğimizden bahsedeceğiz.


Önemli Not : Bir SSL sertifikasının geçerli olması için dünyaca tanınmış bir kurum tarafından imzalanması gerekmektedir. (GlobalSign gibi.)


Sunucu üzerinde sertifikayı oluşturmak için openssl yazılımının kurulu olması gerekmektedir. Aşağıdaki komutu kullanarak SSL sertifikamızı ve anahtarımızı oluşturabiliriz:


#> openssl req –new –nodes -keyout server.key –out server.csr


Bu komutçıktı olarak bulunduğumuz dizine iki adet dosya oluşturur. Bunlardan bir tanesi server.key diğeri server.csr dir.

server.csr dosyası imzalanmamış sunucu sertifikamızdır.
server.key ise sunucunuzun özel anahtarıdır.


CSR uzantılı dosyayı kendimiz imzalayarak kendi sertifikamızı aşağıdaki şekilde oluşturabiliriz:

#> openssl x509 -in server.csr -out server.cert -req -signkey server.key -days 999

Bu komut ile 999 günlük sertifikamızı imzalamış oluyoruz.

Yazan : Burak Sönmez

Linux; Yorumlar
PHP5 + Mysql 5 Türkçe Karakter Problemi
   2005-12-22 11:15:43
PHP5 + MYSQL 5 ikilisinin kurulu olduğu bir sunucuda şu şekilde bir sorun ile karşılaşmıştım. Bu problemi linux listelerindeki arkadaşlara da sordum ve saolsunlar yardımcı oldular. Bende şimdi sizlerle paylaşmak istedim.

Site üzerinden mysql 'den veri çeken php dosyasını çağırdığımda Türkçe karakterler ? şeklinde gözüküyordu. Bunun bir çok nedeni olabilirdi başlangıçta. Mysql 'i latin5 charset ile başlatmak sorunu çözebilirdi ama yetmedi. Daha sonra bu problemin mysql in bir bug 'ı olduğunu ve mysql i çalıştırırken verilen bir parametre ile bunun düzeltilebildiğini öğrendim. Doğruymuş:)

/etc/my.cnf dosyamı şu şekilde düzenledim:

[root@~~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
default-character-set=latin5
#character-sets-dir=/usr/share/mysql/charsets
#default-collation=latin5_turkish_ci
max_connections = 400

[mysql.server]
user=mysql
default-character-set=latin5

[safe_mysqld]
err-log=/var/log/mysqld.log

[mysql]
default-character-set=latin5


ve bu conf. dosyasına ek olarak mysql sürecini başlatan betiğe aşağıdaki parametre yi de ekliyorsunuz.

--skip-character-set-client-handshake

Bu parametre, varsayılan server karakter setini kullanan ve clientlar tarafından gönderilen karakter set bilgisini yok sayar.

Yazan : Burak Sönmez
ProgramlamaMySqlLinux; Yorumlar
Belirli bir kullanıcının crontab ile görev tanımlamasını engellemek
   2005-12-22 14:43:40
Sisteminizde belirli bir kullanıcı grubunun crontab ile görev oluşturmasını engellemek için /etc/cron.deny dosyası oluşturun ve alt alta yasaklamak istediğiniz kullanıcı isimleri yazın:

#> cat /etc/cron.deny
nobody
apache

veya bunun tersi olarak /etc/cron.allow dosyasını oluşturarak sadece cronjob tanımlaması yapabilecek kullanıcıları tanımlayın:

#> cat /etc/cron.allow
root

Yazan : Burak Sönmez
Linuxİpuçları; Yorumlar
Linux'da php yi gd ile derlerken 'jpeglib.h: No such file or directory' ve 'jerror.h: No such file or directory' hatası
   2006-01-05 18:47:21

Linux'da php yi gd ve libjpeg kütüphanleri ile derliyorsunuz. Derleme aşamasında aşağıdakine benze hata mesajları aldınız:


/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:42:21: jpeglib.h: No such file or directory
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:43:20: jerror.h: No such file or directory
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:53: syntax error before "cinfo"
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c: In function `fatal_jpeg_error':
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:58: `cinfo' undeclared (first use in this function)
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:58: (Each undeclared identifier is reported only once
/home/programs/php-4.4.1/ext/gd/libgd/gd_jpeg.c:58: for each function it appears in.)


Bu durumda sorun, c nin kütüphanelerinin dolayısıyla sistemde "jpeg-6b" kütüphanelerinin eksik olmasından kaynaklanmaktadır.


Çözüm olarak "jpeg-6b" paketini sisteme kurmalısınız:


http://www.ijg.org/


 Yazan : Burak Sönmez

Linux; Yorumlar
LogWatch'daki 'xinetd[1652]: START: sgi_fam pid=4144 from=' satırları
   2006-01-17 14:21:20

sgi_fam (File Alteration Monitor and Inode Monitor) dosyalari monitor eden ve degişikleri ilgili programlara haber veren bir deamon. sgi'nin sitesinden [1] daha fazla bilgi alabilirsiniz..


Logwatch'a sgi_fam i ignore etmesini soyleyerek aldiginiz bu mesajlardan kurtulabilirsiniz. /etc/log.d/scripts/services/secure dosyasinda (fedora),


} elsif ( $ThisLine =~ /^xinetd[d+]: USERID: ([^ ]+) (.+)$/ ) {
} elsif ( $ThisLine =~ /^sudo: ([^s]+) : (command not allowed)?....

benzeri satirlari bulun ve su sekilde degistirin,

} elsif ( $ThisLine =~ /^xinetd[d+]: USERID: ([^ ]+) (.+)$/ ) {
} elsif ( $ThisLine =~ /^xinetd[d+]: START: sgi_fam ([^ ]+) (.+)$/ ){
} elsif ( $ThisLine =~ /^sudo: ([^s]+) : (command not allowed)?....

[1] http://oss.sgi.com/projects/fam/


Bu ipucu Linux-sunucu listesinden Mehmet Uluer'in cevabından alınmıştır.


Yazan : Burak Sönmez

Linuxİpuçları; Yorumlar
URL file-access is disabled in the server configuration (PHP-Linux)
   2007-03-20 15:22:29
Bir php sayfanızın içinde başka bir URL'deki dosyayı veya sayfayı include etmek istediniz ve aşağıdaki şekilde hata aldınız:

Örnek:

<?php
    include "http://www.google.com";
?>

Hata Çıktısı :
    URL file-access is disabled in the server configuration

Bu sorun PHP.5 serisi ile gelmiştir, aslında bu bir sorun değil, bir güvenliktir. php.ini dosyasında aşağıdaki bir satır değişikliği ile bu sorunu düzeltebilirsiniz. Eğer bu parametre yoksa kendiniz eklemelisiniz. Default olarak php.ini 'de gelmiyor çünkü.

    allow_url_include = On

Yazan : Burak Sönmez
ProgramlamaLinux; Yorumlar
Vpopmail 'user_does_not_exist,_but_will_deliver_to_ /home/vpopmail/domains/ xxxxxxx.xxx/xxxxxxx // can_not_open_new_email_file_errno=2 _' hatası
   2005-01-02 11:42:07
Bir süredir qmail in loglarında gördüğüm ve nedenini bulamadığım bir sorun vardı. Sorun şuydu; loglara aşağıdaki şekilde kayıtlar düşüyor ve qmail kuyruğunda sürekli bu domaine ait emailler birikiyordu. Sistemde belirtilen kullanıcı yoktu ynai tanımlı değildi. Yada daha önceden tanımlanmış ve silinmişti.

@4000000046349ef029f2b754 delivery 375051: deferral:
user_does_not_exist,_but_will_deliver_to_/home/vpopmail/domains/xxxxxx.com.tr/deneme//
can_not_open_new_email_file_errno=2_file=
/home/vpopmail/domains/xxxxxx.com.tr/deneme/Maildir/tmp/
1177853670.21965.xxxxxx.xxxxxxxx.xxx,S=18630/system_error/

Ve sonuçta uzun bir süre sonra ve nette yaptıgım araştırmalardan sonra, user tanımlıyken bu kullanıcı için "cath all" seçeneğinin işaretlendiğini ve bu yüzden geriye donen bir çok emailin kuyrukta biriktiğini gördüm.

Kısaca çözüm olarak şunu yaptım : silinmiş kullanıcıyı tekrar sistemde tanımladım ve "cacth all" özelliğini iptal ettim.

Kimi yerde bunun bir bug oldugunu, qmailadmin de user ı silerken bu özerlliğini disable etmediğini söylediklerini görmüştüm.

Burak Sönmez
Linuxİpuçları; Yorumlar
64 Bit Centos 5 Linux Sunucuda Apache Kurulumu Sırasındaki 'libexpat.so: could not read symbols: File in wrong format' hatası
   2009-07-17 15:56:23
64bit bir linux işletim sistemi üzerinde Apache kaynak koddan derleme aşamasında "libexpat.so: could not read symbols: File in wrong format" hata mesajını alırsanız aşağıdaki adımları uygulayarak bu sorunu çözebilirsiniz. Bu sorun apache kaynak kodlarında yer alan configure betiğinin 64bit alt yapısında build edilmemesinden kaynaklanıyor diye düşünüyorum.


  1. Apache kaynak dosyalarının bulunduğu dizinde 'srclib/apr-util/configure' dosyasını silin.

  2. Apache kaynak dosyalarının bulunduğu kök dizinde, ./buildconf scriptini çalıştırın.

  3. configure betiğinizin parametrelerine ek olarak aşağıdaki parametreleri ekleyin :
    --enable-lib64 --libdir=/usr/lib64

Linux; Yorumlar
64 Bit Centos 5 Linux Sunucuda PHPKurulumu Sırasındaki 'configure: error: Cannot find libmysqlclient under /usr.' hatası
   2009-07-17 16:40:32
64 Bit Linux sunucu üzerinde kaynak koddan PHP kurulumu sırasında aşağıdaki hatayı alabilirsiniz :

checking for MING support... no
checking for mSQL support... no
checking for MSSQL support via FreeTDS... no
checking for MySQL support... yes
checking for specified location of the MySQL UNIX socket... no
checking for MySQL UNIX socket location... /var/lib/mysql/mysql.sock
configure: error: Cannot find libmysqlclient under /usr.
Note that the MySQL client library is not bundled anymore!


Bu hata mysql lib dosyalarının dogru yerini göstermediğinden kaynaklanmaktadır. Hatayı gidermek için aşağıdaki komutlarla sembolik link olusturabilirsiniz.

ln -s /usr/lib64/libmysqlclient.so /usr/lib/libmysqlclient.so
ln -s /usr/lib64/libmysqlclient.so /usr/local/libmysqlclient.so
Linux; Yorumlar
Apache'ye mod_h264_streaming modülü yüklemek
   2009-12-03 10:55:53
mod_h264_streaming modülü web sunucunuza MP4 streaming yapabilmenizi sağlamaktadır. Modülün sayfasına http://h264.code-shop.com/trac adresinden ulaşabilirsiniz. Burada apache2 ye modül olarak kurulması sırasında karşılaşabileceğiniz sorunun çözümü ile ilgili bilgi vermek istiyorum. Temel apache ye modül olarak kurulumunu buradan öğrenebilirsiniz.

mod_h264_streaming modülü sayfasındaki talimatlara göre kurulum yaptığımda, normal kurulum belirtilenlere göre tamamlanmış gibi duruyordu. Ancak apache loglarına baktığımda ve bir mp4 dosyası talep ettiğimde, streaming özelliğinin olmadığını, apache loglarına "[notice] child pid 22749 exit signal Segmentation fault (11)" şeklinde süreç hatası aldığımı gösteren satırlar düşüyordu.

Bu problemden sonra, mod_h264_streaming modülünü apxs ile manual olarak kurmayı denedim. Siteden indirdiğim soruce dosyalarının açtığım dizindeki "src" dizini altında bulunan dosyalar üzerinden derleme işlemi yaptığımda aşağıdaki hata ile karşılaştım:

root@N~# /usr/local/apache2/bin/apxs -c -i mod_h264_streaming.c moov.c
/usr/local/apache2/build/libtool --silent --mode=compile gcc -prefer-pic  -DAP_HAVE_DESIGNATED_INITIALIZER -
DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread -I/usr/local/apache2/include  -I/usr/local/apache2/inclu
de   -I/usr/local/apache2/include   -c -o mod_h264_streaming.lo mod_h264_streaming.c && touch mod_h264_strea
ming.slo
mod_h264_streaming.c: In function `drive_h264_streaming':
mod_h264_streaming.c:89: error: `X_MOD_STREAMING_KEY' undeclared (first use in this function)
mod_h264_streaming.c:89: error: (Each undeclared identifier is reported only once
mod_h264_streaming.c:89: error: for each function it appears in.)
mod_h264_streaming.c:89: error: `X_MOD_STREAMING_VERSION' undeclared (first use in this function)
mod_h264_streaming.c: In function `h264_streaming_handler':
mod_h264_streaming.c:242: error: `H264_STREAMING_HANDLER' undeclared (first use in this function)
mod_h264_streaming.c: At top level:
mod_h264_streaming.c:271: error: syntax error before '{' token
apxs:Error: Command failed with rc=65536


İnternette biraz gezindikten sonra SVN ile kaynak dosyaları cekip apxs ile derleme yaptım. Derleme işlemi sorunsuz olarak tamamlanmıştı, apache httpd.conf dosyasında gerekli eklemeleri yapıp apache'yi restart ettiğimde aşağıdaki hatayı alıyordum:

mod_h264_streaming.so: undefined symbol: apr_brigade_insert_file

Daha sonra modul dosyasındaki bir satırın değiştirilerek sorunun çözüldüğünü buldum. Kurulum aşamaları aşağıdaki gibiydi:


root@N~# cd ~
root@N~# svn export
http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/apache apache_http_h264_streaming
root@N~# svn export
--force http://h264.code-shop.com/svn/h264/tags/mod_h264_streaming-2.0/mp4split apache_http_h264_streaming
root@N~# cd ~/apache_http_h264_streaming

Bu noktadan sonra mod_h264_streaming.c dosyasının 104. satırındaki aşağıdaki satır yerine;

apr_brigade_insert_file(bb, fp, mdat_offset, mdat_size, r->pool);

bu satırı yazıyoruz :

apr_bucket *e; e = apr_bucket_file_create(fp, mdat_offset, mdat_size,
r->pool, r->connection->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(bb, e);

root@N~# sudo /usr/local/apache2/bin/apxs -c -i mod_h264_streaming.c moov.c
(apxs yazılımı sizde nerde kuruluysa o şekilde tam yol belirtmelisiniz...)

Son aşama olarak httpd.conf dosyasında ilgili yere aşağıdaki satırları ekleyerek modulu aktifleştirebilirsiniz.

LoadModule h264_streaming_module modules/mod_h264_streaming.so
AddHandler h264-streaming.extensions .mp4


Konuyla ilgili olarak kaynak adresler:

http://h264.code-shop.com/trac/discussion/9/31
http://h264.code-shop.com/trac/discussion/9/13


Linux; Yorumlar

Google