How To: Install PHP-Ming

Yesterday, I came across a library called ming for php which can do wonders while converting videos to .swf (flash), images to .swf and much more. The best thing is that ming provides wrappers in C/C++/PHP/Python/Perl/Tcl etc. So, can be used within any one of these languages. But, the damn thing drove me crazy while installing. It was very tough experience installing it as the available howtos didn’t help much. But finally I somehow managed with the installation and it worked 🙂 So, I thought of writing this how to, so that anyone having the same problem can find it helpful.

Here is a complete howto on installing php-ming in Fedora. (I installed it on Fedora 7 and with php5, but howto is supposed to work with other versions as well.) Though there are rpms available for earlier versions of ming, but I wanted the latest, so installed from source.

Resources:
libming : http://www.libming.net/
PHP : http://php.net/

Step 1

First of all make sure that you have php-devel package, otherwise you will not be able to install ming at all. Do the following as root.

[root@bordeaux root]# rpm -q php-devel [Enter]

If the above command says php-devel is not installed, then fetch php-devel for your php version from here and install as given below, else proceed to step 2.

[root@bordeaux root]# rpm -hiv php-devel-5.2.2-3.i386.rpm [Enter]

Step 2

Download latest version of ming from here.

Step 3

Untar the downloaded package.

[saini@bordeaux saini]# tar -xvzf ming-0.4.0.beta5.tar.gz [Enter]

Step 4

Change directory to ‘./ming-0.4.0.beta5’ and issue ./configure and make as given below

1
2
3
4
[saini@bordeaux saini]# cd ming-0.4.0.beta5 [Enter]
[saini@bordeaux ming-0.4.0.beta5]# ./configure --enable-cXX --enable-php [Enter]
[saini@bordeaux ming-0.4.0.beta5]# make [Enter]
[root@bordeaux ming-0.4.0.beta5]# make install [Enter] (as root)

Step 5

Go to ‘./php_ext’ directory and issue ‘make’ and ‘make install’.

1
2
3
[saini@bordeaux ming-0.4.0.beta5]# cd php_ext [Enter]
[saini@bordeaux php_ext]# make [Enter]
[root@bordeaux php_ext]# make install [Enter] (as root)

Step 6

Open make_modules.sh in your favorite editor and uncomment the line ‘make install’ and run make_modules.sh.

[root@bordeaux php_ext]# bash make_modules.sh [Enter] (as root)

Step 7

Go to ‘./tmp/modules/’ directory and copy ming.so to ‘/usr/lib/php/modules/’

1
2
[root@bordeaux php_ext]# cd tmp/modules/ [Enter]
[root@bordeaux modules]# cp ming.so /usr/lib/php/modules/ [Enter] (as root)

If ming.so is not found in ‘php_ext/tmp/modules/, then update your db using ‘updatedb’ and locate ming.so and if found on locate, then copy it to ‘/usr/lib/php/modules/’. If not found at all, try recompiling or issue some random commands related to make.

Step 8

Go to ‘/usr/local/lib/’ and check if libming.so, libming.so.0 etc. are present there. If yes proceed else I don’t know what to do 🙁

Step 9(a)

Go to ‘/usr/lib/php/modules/’ and issue these commands.

1
2
3
4
[root@bordeaux modules]# ln -s /usr/local/lib/libming.so libming.so (as root)
[root@bordeaux modules]# ln -s /usr/local/lib/libming.so.0 libming.so.0 (as root)
[root@bordeaux modules]# ln -s /usr/local/lib/libming.so.0.3.0 libming.so.0.3.0 (as root)
[root@bordeaux modules]# ln -s /usr/local/lib/libming.so.0.4.0 libming.so.0.4.0 (as root)

Step 9(b)

Go to ‘/usr/lib/’ and issue these commands.

1
2
3
4
[root@bordeaux lib]# ln -s /usr/local/lib/libming.so libming.so (as root)
[root@bordeaux lib]# ln -s /usr/local/lib/libming.so.0 libming.so.0 (as root)
[root@bordeaux lib]# ln -s /usr/local/lib/libming.so.0.3.0 libming.so.0.3.0 (as root)
[root@bordeaux lib]# ln -s /usr/local/lib/libming.so.0.4.0 libming.so.0.4.0 (as root)

Step 10

Restart the httpd service by issuing the command below

[root@bordeaux root]# service httpd restart [Enter] (as root)

Step 11

Write a file ‘/var/www/html/info.php’ with following contents

phpinfo();

and point your web browser to http://localhost/info.php . Now search for ‘ming’ and check whether its enabled or not.

PHP Ming in Fedora

If enabled, yes you have successfully installed php-ming 🙂 Hope this helps.

 

How To: Install and Configure Shoutcast Radio

Shoutcast is a mp3 broadcasting/streaming media server software provided by NullSoft. One can setup a server on any system, GNU/Linux / Windows/ MacOS and can stream mp3 over the network, internet/intranet. I setup shoutcast on my system a long back and found it very useful. Here is a step by step how to on how you can setup shoutcast on a GNU/Linux system.

Shoutcast can be installed even if you don’t have root privileges. But in that case you can’t use port less than 1024 for broadcasting. Below, I’ll explain how to install it for a non-root user.

Shoutcast server depends on a tool shoutcast DNAS for audio input in Linux. So, here we go

Step 1

Download the latest version of shoutcast from here. Download the one for Linux (glibc).

Step 2

Let us assume we want to install shoutcast in a directory named ‘shoutcast’ in user’s home directory and we want to broadcast punjabi songs.

1
2
3
[saini@bordeaux shoutcast]# tar -xvzf sc_serv_1.9.8_Linux.tar.gz [Enter]
[saini@bordeaux shoutcast]# mkdir punjabi [Enter]
[saini@bordeaux shoutcast]# mv sc_serv.conf punjabi/sc_serv_punjabi.conf [Enter]

Step 3

Open sc_serv_punjabi.conf in your favorite editor and modify certain parameters as per you requirements. The essentials are below.

1
2
3
4
5
6
7
8
9
10
11
12
13
MaxUser=20
Password=yourPassword
PortBase=8300 #(Confirm that this port and the port PortBase+1 is not being used)
LogFile=none
RealTime=0
ScreenLog=0
ShowLastSongs=10
SrcIP=ANY
DestIP=ANY
Yport=80
NameLookups=0
AdminPassword=yourAdminPassword
TitleFormat=%s [IIIT Radio]

etc. My sc_serv.conf can be accessed here. That was all for installing the shoutcast server.

Now, the installation of DNAS tool is still pending. Here is a step by step procedure to install DNAS tool.

Step 1

Download the latest version of DNAS tool from here.

Step 2

1
2
3
4
[saini@bordeaux shoutcast]# tar -xvzf sc_trans_posix_040.tgz [Enter]
[saini@bordeaux shoutcast]# cd sc_trans_040/ [Enter]
[saini@bordeaux sc_trans_040]# mv sc_trans_linux ../ [Enter]
[saini@bordeaux sc_trans_040]# mv sc_trans.conf ../punjabi/sc_trans_punjabi.conf [Enter]

Step 3

Go to punjabi directory and open sc_trans_punjabi.conf in your favorite editor and make changes according to your needs. Here are some

1
2
3
4
5
6
7
8
9
PlaylistFile=/exactPathTo/punjabi.lst
ServerIP=
ServerPort=
 # 8300 in this case
Password=
 # yourPassword in this case
StreamTitle= %s
StreamURL=
Shuffle=1 # (1 for random songs)

etc. My sc_trans.conf can be accessed here.

Step 4

Generate a list of all the songs (mp3) you have and put it in punjabi.lst in punjabi directory.

[saini@bordeaux punjabi]# find /pathToPunjabiDir/ -type f -name "*.mp3" > punjabi.lst [Enter]

My dummy punjabi.lst can be accessed here.

The configuration part of shoutcast server with audio input is complete. Now we have to run the server so that we can listen to music.

Go to the shoutcast directory and run the sc_serv first and then run the sc_trans_linux. Here is way to do that.

1
2
[saini@bordeaux shoutcast]# ./sc_serv punjabi/sc_serv_punjabi.conf > /dev/null 2> /dev/null &
[saini@bordeaux shoutcast]# ./sc_trans_linux punjabi/sc_trans_punjabi.conf > /dev/null 2> /dev/null &

Now your system is a shoutcast server. Any client can use mplayer, vlc, amarok or any other multimedia player that support streaming media to listen to the music being played on your server.

1
2
[saini@bordeaux saini]# mplayer http://yourIp:port [Enter]
[saini@bordeaux saini]# mplayer http://localhost:8300 [Enter] # (in the above case).

If you want shoutcast to start every time your system boots. Put these lines in /etc/rc.local

1
2
/home/saini/shoutcast/sc_serv /home/saini/shoutcast/punjabi/sc_serv_punjabi.conf > /dev/null 2> /dev/null &
/home/saini/shoutcast/sc_trans_linux /home/saini/shoutcast/punjabi/sc_trans_punjabi.conf > /dev/null 2> /dev/null &

Shoutcast is fun and its more fun when everyone listens to what you are listening to 🙂

 

How To: Install WordPress on LAMP

Recently, I bought this domain name and shifted all my blogs here on saini.co.in . As I chose wordpress as the software to blog. So, just installed it and started using it right away. Installing wordpress is one of the most easiest things that you’ll ever do. Below is a step by step howto on installing wordpress and importing your current wordpress.com blog to your domain.

Step 1:

Download latest version of wordpress from here.

Step 2:

Go to the directory where you want to install it. Here I am taking gofedora.com as reference website where we want to install the wordpress and ~/htdocs/ as the web directory for gofedora.com . Modify above details in accordance with your needs.

If you downloaded .zip format then do this

[saini@bordeaux htdocs]# unzip wordpress-X.X.X.zip [Enter]

If you download .tar.gz format then do this

[saini@bordeaux htdocs]# tar -xvzf wordpress-X.X.X.zip [Enter]

Step 3:

[saini@bordeaux htdocs]# mv wordpress/* . [Enter]

If you visit http://gofedora.com now, you’ll get an error as shown in the image below …

Wordpress Error Without wp-config

Step 4:

Open the file wp-config-sample.php in your favorite text editor and edit the things shown in the image below.

Sample wp-config

Enter your database name, database username, database password and the table prefix for the wordpress database. e.g. one can use linux_ as table prefix. If you have the database on the same system, then there is no need to change the database host otherwise change it accordingly.

Step 5:

[saini@bordeaux htdocs]# mv wp-config-sample.php wp-config.php [Enter]

Step 6:

Go to http://gofedora.com/ and you’ll see a welcome page if you gave correct setting in wp-config.php . The page is like in the image below.

Wordpress Blog Config

Fill the settings properly. Anyway you can change them afterwards. Fill the blog name and email id and click Install WordPress.

Step 7:

You’ll see a web-page like in the image below, if everything goes fine. Copy the password on the page and paste at some temporary place and click login.

Wordpress Copy Password

Step 8:

You’ll be presented with a login page. Enter ‘admin’ as username and the password you copied from the previous page.

Wordpress Admin Login

Step 9:

Congratulations ! You have successfully installed wordpress and created the admin login. Go to Users -> Authors & Users and click Edit in the row with admin as author. Change the password on the next page as below ..

Wordpress Change Password

This is all you have to do to install wordpress. Below is how you import wordpress.com blog to your domain.

Step 1:

Login as admin on you wordpress.com blog and go to Manage -> Export and download the exported blog to your system as show in the image below.

Wordpress Export Blog

Step 2:

Create directory named ‘uploads’ in ~/htdocs/wp-content/ and change permissions to 777 so that wordpress can upload your blog there.

1
2
3
[saini@bordeaux htdocs]# cd wp-content [Enter]
[saini@bordeaux wp-content]# mkdir uploads [Enter]
[saini@bordeaux wp-content]# chmod 777 uploads [Enter]

Step 3:

Go to Manager -> Import section and click on ‘wordpress’ . Upload the .xml file that you download from your wordpress.com blog in step 1 on the page as shown in the image below ..

Wordpress Import Blog

Step 4:

If uploading goes successful, then all your posts will be imported from your wordpress.com blog and will be stored in the database as gofedora.com . Now it will ask you for the author of the new blog posts at gofedora.com as show below …

Choose New Author

Step 5:

Change the permission of uploads back to normal as show below

[saini@bordeaux wp-content]# chmod 744 uploads [Enter]

Everything is done. Now you blog has been shifted to your domain and you can go on with the new blog. But keep in the mind the the images you used in wordpress.com blog posts are not stored in your local database, they are still linked back to your wordpress.com blog images. So, don’t just go and delete your wordpress.com blog. That would be fatal.

The steps for installing wordpress on a windows system are the same, but you have to use some notepads and whatever to edit files 🙂

Enjoy blogging at your domain. Hope the above howto helps.

 

How To: Install Javascript Plugin in Eclipse

Today, I installed Eclipse on my Fedora 7 desktop. Everything is fine, but the default Eclipse does not have a plugin for JavaScript. So , I searched a lot on Google and read a lot of reviews about some JavaScript plugins available for Eclipse. And I finally reached the JSEclipse plugin by Adobe Labs. I had a good experience with it. Its great to work with and if you are looking for a javascript plugin for eclipse, just don’t search any more and install it. JSEclipse can be downloaded from here after registering with Adobe. Following are the simple steps to install the JSEclipse.

Launch Eclipse and do as suggested in images.

Step 1 :

Follow this image :

Help Software Updates Find And Install

Step 2:

Select “Search new features to install” and click next.

Search New Features To Install

Step 3:

Click “New archived site” and select the package or zip file you just downloaded from the above link and click open.

Choose New Archived Site

Step 4: Click OK.

Select Local Zip File And Click Open Then Click OK

Step 5: Check the package if not checked and click next.

Click Finish

Step 6: Check the features you want to install and click next.

Select Features To Install And Click Next

Step 7: Accept Terms and conditions and click next.

Accept Terms And Conditions

Step 8: Click finish and when it ask to restart eclipse just click yes.

Click Finish

Step 9: Voila !! JavaScript plugin is installed now. Have fun with it.

Eclipse With Javascript Plugin

PS: A lot of howtos are pending. Will Try to finish them asap 😀

 

How To: Install Eclipse in Fedora 7

I have decided to stick with Fedora 7 due to the bad experience with Fedora 8 last night and also the difficulties in moving the servers to new os that I am running on Fedora 7. As I wanted to work with Padma in my spare time, so need a good IDE that can handle project in a nice way and can help me to import the cvs from repos online. So, is there any choice I have. There is one and only one – The Eclipse. Some people call it – programming paradise. Some may disagree to that and some other may say that Vim is best to program. I also use Vim quite often and in fact 90% of the time I do so. But using Vim looks confusing when the size of the project is beyond certain extent.

Anyway, here I am going to discuss how to install Eclipse in Fedora 7 because its not there by default. There are two approaches. One is extremely simple and other is extremely difficult.

Approach 1

Use yum do install eclipse. Just issue ‘yum install eclipse-*’ and it’ll be done automatically. But this method takes a very long time as yum will sequentially download the packages and dependencies and its very slow.

Approach 2

If I have a good bandwidth, then I’ll download all the packages and resolve the dependencies myself. But resolving dependencies will be frustrating enough that anyone will switch back to slow yum. But due to certain reasons which I suspect to be memory leaks by Firefox and other apps, my system was damn slow and yum could not do anything even after 10 minutes. It was not even able to download the package list.

So, I decided to download all the packages and install them. I download all the eclipse packages and their dependencies manually and installed it successfully. Here is the list of packages and dependencies so that you need not do rpm -ivh a 100 times 🙂 All these dependencies are available on rpmfind.net and packages can be fetched from any fedora mirror. These are tested on Fedora 7.

Packages

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
eclipse-cdt-3.1.2-8.fc7.i386.rpm
eclipse-cdt-sdk-3.1.2-8.fc7.i386.rpm
eclipse-checkstyle-4.0.1-6.fc7.i386.rpm
eclipse-ecj-3.2.2-15.fc7.i386.rpm
eclipse-jdt-3.2.2-15.fc7.i386.rpm
eclipse-jdt-sdk-3.2.2-15.fc7.i386.rpm
eclipse-pde-3.2.2-15.fc7.i386.rpm
eclipse-pde-runtime-3.2.2-15.fc7.i386.rpm
eclipse-pde-sdk-3.2.2-15.fc7.i386.rpm
eclipse-platform-3.2.2-15.fc7.i386.rpm
eclipse-platform-sdk-3.2.2-15.fc7.i386.rpm
eclipse-rcp-3.2.2-15.fc7.i386.rpm
eclipse-rcp-sdk-3.2.2-15.fc7.i386.rpm
eclipse-sdk-3.2.2-15.fc7.i386.rpm
eclipse-subclipse-1.2.4-2.fc7.i386.rpm
eclipse-subclipse-book-1.2.4-2.fc7.i386.rpm

Dependencies

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
ant-1.6.5-4jpp.2.fc7.i386.rpm
ant-antlr-1.6.5-4jpp.2.fc7.i386.rpm
ant-apache-bcel-1.6.5-4jpp.2.fc7.i386.rpm
ant-apache-log4j-1.6.5-4jpp.2.fc7.i386.rpm
ant-apache-oro-1.6.5-4jpp.2.fc7.i386.rpm
ant-apache-regexp-1.6.5-4jpp.2.fc7.i386.rpm
ant-apache-resolver-1.6.5-4jpp.2.fc7.i386.rpm
ant-commons-logging-1.6.5-4jpp.2.fc7.i386.rpm
ant-javadoc-1.6.5-4jpp.2.fc7.i386.rpm
ant-javamail-1.6.5-4jpp.2.fc7.i386.rpm
ant-jdepend-1.6.5-4jpp.2.fc7.i386.rpm
ant-jsch-1.6.5-4jpp.2.fc7.i386.rpm
ant-junit-1.6.5-4jpp.2.fc7.i386.rpm
antlr-2.7.7-1jpp.2.i386.rpm
antlr-javadoc-2.7.7-1jpp.2.i386.rpm
ant-nodeps-1.6.5-4jpp.2.fc7.i386.rpm
ant-swing-1.6.5-4jpp.2.fc7.i386.rpm
ant-trax-1.6.5-4jpp.2.fc7.i386.rpm
avalon-logkit-1.2-4jpp.5.fc7.i386.rpm
checkstyle-4.1-4jpp.1.fc7.noarch.rpm
checkstyle-optional-4.1-4jpp.1.fc7.noarch.rpm
ganymed-ssh2-210-5.fc7.i386.rpm
jakarta-commons-beanutils-javadoc-1.7.0-5jpp.1.i386.rpm
jakarta-commons-cli-1.0-6jpp_10.fc6.i386.rpm
jakarta-commons-dbcp-1.2.1-10jpp.1.fc7.i386.rpm
jakarta-commons-lang-2.1-6jpp.1.fc7.i386.rpm
jakarta-commons-pool-1.3-9jpp.2.fc7.1.i386.rpm
java-1.5.0-gcj-javadoc-1.5.0.0-14.fc7.i386.rpm
jdepend-2.6-6jpp.1.i386.rpm
jdom-1.0-4jpp.1.i386.rpm
jsch-0.1.28-1jpp.6.i386.rpm
junit-3.8.2-3jpp.1.fc7.i386.rpm
jzlib-1.0.7-4jpp.1.i386.rpm
libswt3-gtk2-3.2.2-15.fc7.i386.rpm
lucene-1.4.3-1jpp.18.i386.rpm
lucene-devel-1.4.3-1jpp.18.i386.rpm
subversion-1.4.4-1.fc7.i386.rpm
subversion-javahl-1.4.4-1.fc7.i386.rpm
svnkit-1.1.4-2.fc7.i386.rpm
velocity-1.4-6jpp.1.i386.rpm
werken.xpath-0.9.4-0.beta.8jpp.noarch.rpm
xml-commons-apis-javadoc-1.3.03-0jpp.1.fc7.i386.rpm

So, be sure to fetch the dependencies first. Hope that helps.