Being in the seventh semester has had its pros and cons. However, the labs in this semester haven’t been a good experience, in terms of all the trouble we had to go through just to get the software work at our home PCs for practice. I have tried hard and come close to what you might say, “a working” situation, where everything seems to work for me. Here are the steps I had to take to arrive at this very metastable state, you could try and follow the steps below to make things work for you; however, I do not guarantee that it will always work.
Also, here is the code for the programs I have written. Download it here. (Note: For database related programs, you will have to properly create databases/tables for it to work)
1. Fedora + Apache (for Perl, CGI, PHP, MySQL)
Get the latest fedora from http://fedoraproject.org and install it using all the packages selected (this is the safest way to do it; but if you know exactly what you are doing, you are free to select the right packages)
Once you are booted into Fedora, login using the root account (always do this – since you are on localhost, security should not be a problem for you.) and run apache and mysql.
- Select “System” from the main menu, then click on “Services” in “Administration”.
- Browse through the list and start (and enable) the “httpd” and “mysqld” services.
- Now run the browser and point it to “http://localhost” to see if the apache service has started successfully. If it has, you will be able to see a Fedora Start Page in your browser.
You are now finished configuring. For working with apache you’ll have to know the following:
- All “*.html, *.php, *. htm, *.shtml, *.xhtml” files go in “/var/www/html” directory.
- All “*.pl, *.cgi” files go in “/var/www/cgi-bin” directory.
- You’ll have to make the *.cgi, *.pl files executable by right-clicking on them and setting the permissions in their properties or by simply using the command in a terminal: “chmod 777 /var/www/cgi-bin/filename.cgi“
- If you find yourself looking at the “500 – Server Error” page, you might want to look into the logs to debug your errors. The logs are found at “/etc/httpd/logs/”
2. Tomcat + Java (for Java Servlet programming)
Get the JDK from the Java website here. And Apache Tomcat from here. Log into an account with administrative privileges and install them. Once you have installed both of them, you will need to set a few environment variables before you can start writing/compiling the code. I’m assuming that you have installed Java at “D:\j2sdk” and Tomcat at “D:\Tomcat”. (Make necessary changes in the below values as per your installation directories)
You can set these variables by, right-clicking on “My Computer”. Then, choose “Properties”, and in the “Advanced” tab, click on “Environment Variables”. If a variable by that name already exists, you can append the above value to it by using the delimiter semi-colon “;”.
Spot check! Write a sample Java code and try compiling it by opening Command Prompt (Start -> Run: “cmd.exe”) and using the following command: > javac filename.java
If you get any error stating that “javac” is a bad command or filename, then there is something wrong with your installation. Recheck the above steps again.
Start the Tomcat server: Start -> All Programs -> Apache Tomcat -> Configure Tomcat. Once the Tomcat tool is running, click “Start”.
Open your browser and point it to: “http://localhost:8080/”. If Tomcat has been properly installed, you will see default Apache Tomcat page. If not, recheck the above steps.
That’s (sadly) not all of the configurations that you have to change in order for things to work. Right now, you will be able to code in Java and also compile it. However, you will not be able to code servlets unless you change the default “web.xml” file or add a custom web.xml file for your servlet. I’m going to tell you how to modify the default web.xml file so that you can get things to work.
Open the web.xml file (Located at: D:\Tomcat\conf\web.xml) in a text editor, and look for the following codes and uncomment them. (Remove the ‘<!–‘ and ‘–>’ around the code)
<servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.InvokerServlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>
<servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>
!!! One piece of warning !!! Uncommenting these lines will prove to be a security threat if you are doing it on a commercial web server. You shouldn’t really worry about it if you are using it at your home computer.
Once you are done with the above steps, you can be glad to know that nothing stands between you and coding the servlets now. (Phew!) Anyhow, you must know these for the things to actually work: (I’m assuming that you will be using the “ROOT” directory for your servlets, if not, make changes in the following paths accordingly)
- All the “*.class” files go into “D:\Tomcat\webapps\ROOT\WEB-INF\classes” directory.
- All “*.html, *.jsp, *.htm, *.shtml, *.xhtml” files go into “D:\Tomcat\webapps\ROOT” directory.
- Use the “javac.exe” application (in “D:\j2sdk\bin”) to compile your code, which will create a classname.class file for you.
- Now copy the .class to the classes directory and you can access the servlet using “http://localhost:8080/servlet/classname
Well, that’s it for now. Its sad that we have to go through all this just to practice five programs for our labs. Anyway, I hope all the settings work for you. If not, let me know; I hope I can help you.
P.S: Configuration for Networks Lab (Fedora + NCTUns) will be out tomorrow. 🙂
12 responses to “Cracking the Lab! – 1”
great job! it’d be of great help man! i wanted to know wat changes i have to do to the web.xml file. well, now i know wat changes i need to do! 😀
No problem! 🙂
Hope it works fine. 😉
Hey thanx man! its workin fine now !
will be waitin for your nctuns
Glad it worked for you. 🙂
I’ll write the NCTUns guide on Monday. No time for it now. 😦
for me, its been OHT – Over Head Transmission 😛
Hehe.. Obviously! I’d be stunned if you understood all of it. 😛
forget all of it! be surprised even if i said i knew the abbreviations pgi, php, sql, blah blah blah… 😛 😀
ah… i made a mistake… its cgi… 😛
Haha.. True.. But don’t fret. Its not your domain of knowledge at all. I’m sure I’d hardly know about all those complex electronics that you do. 🙂
thts humbling… but true nevertheless. obviously because, it is branch secret 😛
actually, nothin of tht sort… it takes the right aptitude to learn new and strange and complex things… 🙂
right aptitude (+ time + patience + interest + a good teacher + practical exposure).. SURE! 😛
Guys, I have put off writing about CN Lab indefinitely. Mainly because even after all the things I could tweak, the whole setup does not work as expected. Secondly, there are so many versions of Fedora and corresponding versions of NCTUns which I haven’t tried nor tested. Thirdly, my Lab exam is tomorrow and its pretty late for me to write about it now. I doubt if it will benefit anyone at all.
But if anyone wants to know about it in the future, I’ll be glad to be of help. 🙂