Monday 11 March 2013

New XAMPP security concept:fixed

When you download XAMPP 1.8.0. and got the error at
localhost/phpmyadmin


New XAMPP security concept:

Access to the requested object is only available from the local network.

This setting can be configured in the file "httpd-xampp.conf".

If you think this is a server error, please contact the webmaster.

Error 403

localhost


Solution

1) Open httpd-xampp.conf which is at /opt/lampp/etc/extra/
2) Find <Directory "/opt/lampp/phpmyadmin">
3) Now just add Require all granted before </Directory>

    <Directory "/opt/lampp/phpmyadmin">
    AllowOverride AuthConfig Limit
    Order allow,deny
    Allow from all
    Require all granted
   </Directory>


4) Find  <LocationMatch and change
  Deny from all 
to 
Allow from all

<LocationMatch "^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|
server-status|server-info))">
        Order deny,allow
        Allow from all
        Allow from ::1 127.0.0.0/8 \
                fc00::/7 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 \
                fe80::/10 169.254.0.0/16

        ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.
var
</LocationMatch>


5) restart xampp 

Wednesday 6 March 2013

Configure Tomcat 7 to run Python CGI scripts in windows

Pre-installation requirements
1. Java
2. Python

steps
1. Download latest version of Tomcat (Tomcat 7) from
    http://tomcat.apache.org/download-70.cgi
2. After successful installation of tomcat modify the web.xml file in the  <TOMCAT_HOME>\conf\folder ( eg: C:\Program Files\Apache Software Foundation\Tomcat 7.0\conf)
 uncomment the cgi servlet and its mapping

<servlet>
 <servlet-name>cgi</servlet-name>
 <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
 <init-param>
 <param-name>debug</param-name>
 <param-value>0</param-value>
 </init-param>
 <init-param>
 <param-name>cgiPathPrefix</param-name>
 <param-value>WEB-INF/cgi</param-value>
 </init-param>
 <load-on-startup>5</load-on-startup>
</servlet>

<servlet-mapping>
 <servlet-name>cgi</servlet-name>
 <url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>



3. Add an servlet parameter "passShellEnvironment" and set it to “true” (
 "force" the environment variables to be passed)

<init-param>
          <param-name>passShellEnvironment</param-name>
          <param-value>true</param-value>

</init-param> 
4.  Add an servlet parameter "executable"
<init-param>
          <param-name>executable</param-name>
          <param-value>C:\Python27\python.exe</param-value>
 </init-param> 


so the overall cgi servlet in web.xml is given below
<servlet>
        <servlet-name>cgi</servlet-name>
        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</param-value>
        </init-param>
        <init-param>
          <param-name>executable</param-name>
          <param-value>C:\Python27\python.exe</param-value>
        </init-param>
        <init-param>
          <param-name>passShellEnvironment</param-name>
          <param-value>true</param-value>
        </init-param>
         <load-on-startup>5</load-on-startup>
    </servlet> 


5.  Modify <TOMCAT_HOME>\conf\context.xml  to add a property on <Context>:
 <Context privileged="true">
...
</Context>

6. Create a folder say "test" in <TOMCAT_HOME>\webapps directory . It is the root folder for your application
7. create a WEB-INF folder inside the root folder (test) and create a cgi folder inside WEB-INF folder
8. Create a python CGI script and put in in <TOMCAT_HOME>\webapps\test\WEB-INF\cgi\

hello.py

print "Content-type: text/html\n\n";
print "Hello, world!\n"


9. start the tomcat server and browse the url
http://localhost:8080/test/cgi-bin/hello.py
 

 

Wednesday 13 February 2013

Python 2.7: Proxy Authentication error in Urllib2

Issue:

When we try to use Urllib2 in Python 2.7 in an institute which requires proxy authentication, we are getting the below error

Traceback (most recent call last):
  File "C:\Users\cYanide\Documents\Python Challenge\1\1.py", line 7, in <module>
    response = urllib2.urlopen('http://python.org/')
  File "C:\Python27\lib\urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Python27\lib\urllib2.py", line 400, in open
    response = meth(req, response)
  File "C:\Python27\lib\urllib2.py", line 513, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Python27\lib\urllib2.py", line 438, in error
    return self._call_chain(*args)
  File "C:\Python27\lib\urllib2.py", line 372, in _call_chain
    result = func(*args)
  File "C:\Python27\lib\urllib2.py", line 521, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
**urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required**


Solution:

We need to set the environmental variable 
HTTP_PROXY and HTTPS_PROXY.your program will pick up proper authentication method and execute the code.

To set the environmental variable please follow the below steps in windows
start-> right click My Computer -> click properties -> Click Advanced System Setting 
A pop up will open

Click Environment variables.
Environment variables pop up will open. Under User variables in that popup, click New button.
In the  new pop up add New User 
variable name : HTTP_PROXY
variable value: http://username:password@proxyserver:port
repeat the same steps for  HTTPs_PROXY also


Wednesday 6 February 2013

http_proxy password contains @ issue

When you try to set up an "http_proxy" with password which contains @, the set command won't work.

for example, if your proxy password is pass@word and you are trying to set up http_proxy using
set http_proxy="http://username:pass@word@server:port", then proxy won't set
 

To resolve this issue, you have to  percent-encode the special characters ie replace @ with %40
 set http_proxy="http://username:pass%40word@server:port"

Friday 7 September 2012

Import data into MySQL database using mysqlimport

The below example shows how to import data into mysql database using mysqlimport utility. We are importing data from a text file to mysql database.

mysqlimport utility is a stand-alone command line utility program which comes with MySQL.

First you have to connect to mysql server.
1. open command prompt
2. change directory to the path of mysql bin folder (for example C:\xampp\mysql\bin)











Create a database employee and use that database.







create a table employee with 2 fields id and name







create a text file for employee table with fields delimited by tab.This file is used for importing data into employee table.

employee.txt

1    Tom
2    pinky
3    Ram

put the employee.txt file into C:\xampp\mysql\data\employee folder.
In mysqlimport, the name of the data file should match the name of the table.  

close the mysql connection by typing exit






open a new command prompt and change directory to the path of mysql bin folder (for example C:\xampp\mysql\bin)
Type mysqlimport command 









This will import the employee details from the text file into employee table.