FFMPEG-PHP INSTALL Of function ‘avcodec_init’ make: * [ffmpeg-php.lo] Error 1 SOLVED

Merhaba Arkadaşlar,

Birkaç gün önce forum üzerinden iletilen ffmpeg-php ile ilgili bir hatayla epeyce araştırma yapınca bir kez daha fark ettim artık internet gerçekten bilgi çöplüğü haline gelmiş.. Her neyse.. Dün akşam saatlerinden günün ilk saatlerine kadar uğraştıktan sonra problemi çözmenin verdiği rahatlık ve huzur içerisinde uyku moduna geçmeden önce sizlerle de paylaşmak istedim.

Ayrıca bu arada FFMPEG yetkilileriyle de paylaştım buradan bakabilirsiniz.

FFMPEG kurulumuna değinmeyeceğim çünkü bununla ilgili bir çok blogda makale var zaten.

Bu makaleyi okuyor olduğunuza göre büyük bir ihtimalle ilgili hatadan dolayı buraya gelmiş olmalısınız ama yine de kısaca ffmpeg-php kurulumundan söz edelim:

ffmpeg-php kurulumu / ffmpeg-php install

  • mkdir /srv/build
  • cd /srv/build
    
  • wget http://downloads.sourceforge.net/project/ffmpeg-php/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
    (şu an güncel olan sürüm yukarıdaki adreste mevcut, kontrol etmek için buraya / current version bakabilirsiniz.)
    
  • tar -xjf ffmpeg-php-0.6.0.tbz2
    
  • cd ffmpeg-php-0.6.0/
    
  • phpize
    
  • ./configure
  • make
  • install

Linux CentOS 6.x (x86_64işletim sisteminde SSH üzerinde # make komutundan sonra aşağıdaki hatayla karşılaşabilirsiniz;

FFMPEG-PHP HATA / ERROR:
make: * [ffmpeg-php.lo] Error 1

/usr/include/php/TSRM/tsrm_virtual_cwd.h:212: error: expected specifier-qualifier-list before ‘time_t
/usr/include/php/TSRM/tsrm_virtual_cwd.h:240: error: expected declaration specifiers or ‘…’ before ‘time_t
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c: In function ‘zm_startup_ffmpeg’:
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:94: warning: implicit declaration of function ‘avcodec_init’
make* [ffmpeg-php.lo] Error 1

FFMPEG-PHP Hata Detay / Error detail:

/bin/sh /srv/build/ffmpeg-php-0.6.0/libtool –mode=compile cc -I. -I/srv/build/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/srv/build/ffmpeg-php-0.6.0/include -I/srv/build/ffmpeg-php-0.6.0/main -I/srv/build/ffmpeg-php-0.6.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/libavcodec/ -I/usr/include/libavformat/ -I/usr/include/libavutil/ -I/usr/include/libswscale/ -I/usr/include/libavfilter/ -I/usr/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c -o ffmpeg-php.lo
libtool: compile: cc -I. -I/srv/build/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/srv/build/ffmpeg-php-0.6.0/include -I/srv/build/ffmpeg-php-0.6.0/main -I/srv/build/ffmpeg-php-0.6.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/libavcodec/ -I/usr/include/libavformat/ -I/usr/include/libavutil/ -I/usr/include/libswscale/ -I/usr/include/libavfilter/ -I/usr/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c -fPIC -DPIC -o .libs/ffmpeg-php.o
In file included from /usr/include/sys/stat.h:107,

from /usr/include/php/main/php_streams.h:28,
from /usr/include/php/main/php.h:405,
from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/bits/stat.h:91: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:92: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:93: error: field ‘st_ctim’ has incomplete type
/usr/include/bits/stat.h:152: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:153: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:154: error: field ‘st_ctim’ has incomplete type
In file included from /usr/include/php/main/php_streams.h:28,

from /usr/include/php/main/php.h:405,
from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/sys/stat.h:367: error: array type has incomplete element type
/usr/include/sys/stat.h:374: error: array type has incomplete element type
In file included from /usr/include/php/main/php.h:411,

from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/php/TSRM/tsrm_virtual_cwd.h:212: error: expected specifier-qualifier-list before ‘time_t’
/usr/include/php/TSRM/tsrm_virtual_cwd.h:240: error: expected declaration specifiers or ‘…’ before ‘time_t’
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c: In function ‘zm_startup_ffmpeg’:
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:94: warning: implicit declaration of function ‘avcodec_init’
make: * [ffmpeg-php.lo] Error 1

SEBEP / CAUSE

Derleme hataları / Compilation errors / This is a BUG!

CÖZÜM / SOLUTION 

  • git clone https://github.com/tony2001/ffmpeg-php.git
    
  • cd ffmpeg-php
    
  • phpize
    
  • ./configure
    
  • make && make install

    php.ini içerisine extension = ffmpeg.so eklemeyi ve servisleri yeniden başlatmayı unutmayın!

     

  • service httpd restart
  • okay lest go 😉

 

Kaynak/source: https://github.com/tony2001/ffmpeg-php/issues/1

 

 

SSH üzerinden “FFMEG ne durumda?” diye bakmak isterseniz; komut satırına;

# ffmpeg <- yazmanız yeterli olacaktır, bunun üzerine size aşağıdaki gibi bir yanıt verecektir.

ffmpeg version N-65847-g554d819-syslint Copyright (c) 2000-2014 the FFmpeg developers

built on Aug 23 2014 19:36:38 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-4)
configuration: –prefix=/usr/local/cpffmpeg –enable-shared –enable-nonfree –enable-gpl –enable-pthreads –enable-libopencore-amrnb –enable-decoder=liba52 –enable-libopencore-amrwb –enable-libfaac –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –extra-cflags=-I/usr/local/cpffmpeg/include/ –extra-ldflags=-L/usr/local/cpffmpeg/lib –enable-version3 –extra-version=syslint
libavutil 54. 7.100 / 54. 7.100
libavcodec 56. 0.101 / 56. 0.101
libavformat 56. 2.100 / 56. 2.100
libavdevice 56. 0.100 / 56. 0.100
libavfilter 5. 0.103 / 5. 0.103
libswscale 3. 0.100 / 3. 0.100
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 0.100 / 53. 0.100

Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]… {[outfile options] outfile}…

____________________________________________________________________________

My VPS: CentOS 6.5 x86_64
PHP V: PHP 5.3.3
FFMPEG: Installed

Step step install ffmpeg-php:
# phpize

Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626

# ./configure
..
..
# make
/usr/include/php/TSRM/tsrm_virtual_cwd.h:212: error: expected specifier-qualifier-list before ‘time_t’
/usr/include/php/TSRM/tsrm_virtual_cwd.h:240: error: expected declaration specifiers or ‘…’ before ‘time_t’
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c: In function ‘zm_startup_ffmpeg’:
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:94: warning: implicit declaration of function ‘avcodec_init’
make: * [ffmpeg-php.lo] Error 1

make error details:

/bin/sh /srv/build/ffmpeg-php-0.6.0/libtool –mode=compile cc -I. -I/srv/build/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/srv/build/ffmpeg-php-0.6.0/include -I/srv/build/ffmpeg-php-0.6.0/main -I/srv/build/ffmpeg-php-0.6.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/libavcodec/ -I/usr/include/libavformat/ -I/usr/include/libavutil/ -I/usr/include/libswscale/ -I/usr/include/libavfilter/ -I/usr/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c -o ffmpeg-php.lo
libtool: compile: cc -I. -I/srv/build/ffmpeg-php-0.6.0 -DPHP_ATOM_INC -I/srv/build/ffmpeg-php-0.6.0/include -I/srv/build/ffmpeg-php-0.6.0/main -I/srv/build/ffmpeg-php-0.6.0 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/libavcodec/ -I/usr/include/libavformat/ -I/usr/include/libavutil/ -I/usr/include/libswscale/ -I/usr/include/libavfilter/ -I/usr/include/libavdevice/ -DHAVE_CONFIG_H -g -O2 -Wall -fno-strict-aliasing -c /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c -fPIC -DPIC -o .libs/ffmpeg-php.o
In file included from /usr/include/sys/stat.h:107,

from /usr/include/php/main/php_streams.h:28,
from /usr/include/php/main/php.h:405,
from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/bits/stat.h:91: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:92: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:93: error: field ‘st_ctim’ has incomplete type
/usr/include/bits/stat.h:152: error: field ‘st_atim’ has incomplete type
/usr/include/bits/stat.h:153: error: field ‘st_mtim’ has incomplete type
/usr/include/bits/stat.h:154: error: field ‘st_ctim’ has incomplete type
In file included from /usr/include/php/main/php_streams.h:28,

from /usr/include/php/main/php.h:405,
from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/sys/stat.h:367: error: array type has incomplete element type
/usr/include/sys/stat.h:374: error: array type has incomplete element type
In file included from /usr/include/php/main/php.h:411,

from /srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:40:

/usr/include/php/TSRM/tsrm_virtual_cwd.h:212: error: expected specifier-qualifier-list before ‘time_t’
/usr/include/php/TSRM/tsrm_virtual_cwd.h:240: error: expected declaration specifiers or ‘…’ before ‘time_t’
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c: In function ‘zm_startup_ffmpeg’:
/srv/build/ffmpeg-php-0.6.0/ffmpeg-php.c:94: warning: implicit declaration of function ‘avcodec_init’
make: * [ffmpeg-php.lo] Error 1

OpenSSL Heartbleed Bug GÜVENLİK AÇIĞI YENİ FARK EDİLDİ!

En çok bilinen web şifreleme protokollerinden OpenSSL‘de büyük bir açık tespit edildi.

Heartbleed Bug adı verilen güvenlik açığı nedeniyle, kriptolu mesajlar iletilirken, mesajın şifresini çözecek anahtara üçüncü kişiler de erişebiliyor.

GÜVENLİK AÇIĞI YENİ FARK EDİLDİ

Banka hesabı ya da e-mail adreslerine erişim gibi hassas güvenlik önlemleri için kullanılan OpenSSL yazılımı, şifreler bir sunucudan diğerine transfer edilirken mesajların kriptolanmasını sağlıyor. İnternet kullanıcıları şifreli işlemlerini yaparken, Continue reading

FastCGI CentOS 5-6 Timeout 500 Internal & 504 Gateway Error Solved – Cözümü

Merhaba Arkadaşlar,

Bu sayfayı okuyorsanız muhtemelen 500 internal server error ve/ya 504 gateway time-out nginx problemi canınızı epeyce sıkmış demektir. Şimdi bunlara biraz göz atalım:

Solved – NGINX 502 Bad Gateway Error Hatası ve Çözümü

500 Internal Server Error Hatasının Başlıca Sebepleri

Bu hatanın birden fazla sebebi vardır sık karşılaşılanları ise:

  1. .htaccess: sitenizde kurulu olan sistemin .htaccess dosyasını kullanarak çalışması gerekiyorsa, bu dosya sunucunuzda olmayabilir ya da içerisindeki kodlar uygun olmayabilir. Bu durumda (varsa) yönetim paneliniz üzerinden yoksa manuel yeni bir .htaccess  dosyası oluşturmanız gerekir.
  2. CHMOD: sitenize ait dosyaların chmod ayarları kullanılan sisteme ve/veya sunucuza uygun olmayabilir. Genel ayarları: klasör izinleri için 755 dosyalar için 644 olmalıdır. Ftp programı üzerinden giriş yaparak da düzenleyebilirsiniz.
  3. Kodlamasitenizle bağlantılı çalışan herhangi bir sayfada hatalı kodlama varsa örneğin: sonsuz döngü, ve/veya işlem süreci uzun olan kodlamalarda sunucu varsayılan zaman aşım değerinden dolayı 500 Internal Server Error Hatası ile karşılaşırsınız. (en sık görülen nedendir.)
  4. Bot: özel görevler için yapılmış olan bot sistemleri ya da import gibi işlemlerde sunucu varsayılan time-out değeri olan 30-45 saniyelik zaman aşımında karşılaşabilirsiniz. Bunun için kullanılan yazılımı ya da sunucu varsayılan konfigürasyon ayarlarındaki time-out değerini düzenlememiz gerekecek.

Elbette öncelikli çözüm hatayı bulup, gidermektir örn: kodlama ile ilgili sorun yaşamışsanız bunu düzeltmeniz gerekir lakin geçici bir çözüm sunmak veya özel bir çalışma yapmanız gerekiyorsa (xml entegrasyonu gibi) bu varsayılan time-out süresini güncelleyebiirsiniz.

Not: bu varsayılan time-out süresinin aynı zamanda bir güvenlik betiği olduğunu unutmayınız.

Çözüm:

  • /etc/httpd/conf.d klasörü içerisinde bulunan fcgid.conf dosyasını açın ve
  • FcgidIOTimeout 45 değerini istediğiniz ölçüde yükseltin. Örneğin: FcgidIOTimeout 180 olabilir. Kendi sunucumdaki değerleri ise aşağıda paylaşıyorum:
    => /etc/httpd/conf.d/fcgid.conf

<IfModule mod_fcgid.c>

<IfModule !mod_fastcgi.c>
AddHandler fcgid-script fcg fcgi fpl
</IfModule>

FcgidIPCDir /var/run/mod_fcgid/sock
FcgidProcessTableFile /var/run/mod_fcgid/fcgid_shm

 FcgidIdleTimeout 160
  FcgidProcessLifeTime 120
  FcgidMaxProcesses 20
  FcgidMaxProcessesPerClass 8
  FcgidMinProcessesPerClass 0
  FcgidConnectTimeout 240
  FcgidIOTimeout 260
  FcgidInitialEnv RAILS_ENV production
  FcgidIdleScanInterval 10

</IfModule>

Daha sonra ssh bağlantısını ya da sunucu kontrol panelini kullanarak sunucu servislerini yeniden başlatabilirsiniz.

SSH kodu:

  • service httpd restart

 

504 Gateway Time-Out Nginx Hatası

Bu hata ile karşılaşıyorsanız, siteniz üzerinde gerçekleşen bir işlemin zaman aşımına uğraması sonucunda, proxy okuyucu varsayılan time-out değerinden dolayı nginx sonlandırıcı mesajı ile karşılaşırsınız ama arka planda sunucu o işlemi yapmaya devam eder. Şimdi de bu hatanın çözümüne bakalım.

Çözüm:

  • /etc/nginx/conf.d klasörüne giriş yapın,
  • vhost_nginx.conf <= isminde yeni bir dosya oluşturun ve bu dosyanın içerisine
  • proxy_read_timeout 300;     <= yazıp dosyayı kaydedin.
  • Daha sonra ssh bağlantısını ya da sunucu panelini kullanarak nginx servislerini yeniden başlatabilirsiniz.

SSH Kodu:

  • /etc/init.d/nginx restart

Bu makalenin cevap verdiği sorular aşağıdaki gibi olabilir:

  1. 500  internal server error How  do Solved
  2. 500  internal server error Sorunu Nasıl Çözülür ?
  3. 500  internal server error Hatasının Sebebi Nedir ?
  4. 504 gateway time-out nginx Error How do Solved?
  5. 504 gateway time-out nginx Error Sorunu nasıl Çözülür ?
  6. 504 Gateway time-out Hatasının Sebebi ?
  7. 504 Gateway Time-out hatasının çözümü

Herhangi bir sorunda iletişime geçmekten çekinmeyiniz, herkese iyi çalışmalar.