mysql_connect won't when run from web server

koder hmichels01 at earthlink.net
Mon May 25 14:42:41 MST 2009


Have you ruled out difficulties with file locations, permissions and
such ilk?

Do we know what environment these files are being run under?

For a file to be run from a browser under Ubuntu you need permissions
set to user www-data UID:GID 33:33, and located in a directory that
localhost can find according to your directory setting in the apache
config files. Red Hat wants user apache, UID:GID, 48:48.

The browser will use the browser root as defined in the apache config
file. I think you can force it to run in a user directory, but I am
pretty sure that is not how to get it there. 

(Can script activation be accomplished just by pointing a browser at it?
If so would that be a security issue?)

The other matter would be how the browser is modifying the UserID and
Password string it is passing to MySQL. 

Harold


On Mon, 2009-05-25 at 08:15 -0700, Lisa Kachold wrote:
> Just humor us and rename the hostname to something other than mysql?
> Try an IP address?
> 
> On Mon, May 25, 2009 at 12:03 AM, Steven A. DuChene
> <linux-clusters at mindspring.com> wrote:
>         As I said, on the Apache server I can run the php script just
>         fine and
>         it connects to the remote mysql server just fine. Both servers
>         are here
>         on my local internal network and there is no firewall between
>         them.
>         
>         So to be clear on the Apache system I can run the php mysql
>         connect script
>         just fine like so:
>         
>         Apache$ php ./mysql_php_dbconnectscript.php
>         
>         and it works fine. I really believe this eliminates any port
>         or firewall
>         or ping or FQDN or localhost issues between the two boxes.
>         
>         -----Original Message-----
>         >From: Mike Butash <mike at butash.net>
>         >Sent: May 24, 2009 10:03 PM
>         >To: Main PLUG discussion list
>         <plug-discuss at lists.plug.phoenix.az.us>
>         >Cc: "Steven A. DuChene" <linux-clusters at mindspring.com>
>         >Subject: Re: mysql_connect won't when run from web server
>         >
>         >Is your hostname "mysql" valid, just "ping mysql" and see if
>         you get a
>         >response.  Try to connect to "localhost" as well and see if
>         it works.
>         >Most default installs will listen only on 127.0.0.1, not the
>         live IP
>         >most distro's bind to the hostname from the network, like
>         10.x.x.x.
>         >Assure the hostname is valid in your connect string.
>         >
>         >Check that the sql daemon is listening on the right
>         port/address.  Try
>         >'netstat -a | egrep "mysql|3306"' without the single quote,
>         see if the
>         >daemon is listening, and on what address - should look like
>         this:
>         >
>         >mb at thrawn:/media/ext0/opt$ netstat -a | grep mysql
>         >tcp        0      0 *:mysql         *:*         LISTEN
>         >
>         >.. if not, rather like this:
>         >
>         >mb at thrawn:/media/ext0/opt$ netstat -a | grep ssh
>         >tcp        0      0 127.0.0.1:ssh           *:*
>         LISTEN
>         >
>         >.. then you might need to tweak the my.cnf to remove the bind
>         addr from
>         >binding only to localhost.  Comment it out as such, and it
>         should show
>         >as listening on all ports:
>         >
>         >#bind-address = 127.0.0.1
>         >
>         >If you can telnet to port 3306 from both localhost or the
>         real IP
>         >(telnet localhost 3306), check sql logs for auth errors.  I'm
>         most pgsql
>         >than my, but I think this is the tree you'll want to bark up,
>         namely the
>         >binding and socket access.
>         >
>         >Caveat Emptor - This opens general network access to that sql
>         port short
>         >of a firewall, so make sure you secure it adequately.  Best
>         bet is to
>         >set your php connection string to connect to localhost, and
>         keep the sql
>         >daemon only bound to localhost.  So long as you're not
>         needing any
>         >remote connections, that is.
>         >
>         >-mb
>         
>         >
>         >
>         >On Sun, 2009-05-24 at 20:36 -0700, Lisa Kachold wrote:
>         >> Hi Steven,
>         >>
>         >> On Sun, May 24, 2009 at 3:53 PM, Steven A. DuChene
>         >> <linux-clusters at mindspring.com> wrote:
>         >>         Hello all:
>         >>         I have a php to mysql database connection script
>         that I am
>         >>         having a problem with.
>         >>         I have two systems. One is running apache and also
>         happens to
>         >>         be my desktop system.
>         >>         Call this one system Apache. The other system is
>         running mysql
>         >>         and let's call this
>         >>         one Mysql.
>         >>
>         >>         the connection script is very simple:
>         >>
>         >>            <?php
>         >>            $dbhost = "Mysql";
>         >>            $dbuser = "someuser";
>         >>            $dbpass = "NOTREAL";
>         >>
>         >>            $conn = mysql_connect($dbhost, $dbuser, $dbpass)
>         or
>         >>         die("Error connecting to mysql");
>         >>
>         >>            if ($conn) {
>         >>            echo "CONNECT OK";
>         >>            }
>         >>
>         >>            $dbname = "tmp";
>         >>            mysql_select_db($dbname);
>         >>            ?>
>         >>
>         >>
>         >>         If I run this script from the command line on the
>         Apache
>         >>         system like so:
>         >>
>         >>         $ php testmysqlconnect_script.php
>         >>
>         >>         and it works fine. However if I run the script from
>         the web
>         >>         browser open on the
>         >>         Apache desktop and point it at
>         >>
>         http://localhost/~meuser/testmysqlconnect_script.php
>         >>         I get a connection error. Just to confirm I have
>         also used the
>         >>         following mysql
>         >>         command from the command line on the Apache system
>         and it
>         >>         works fine as well:
>         >>
>         >>         mysql --host=Mysql -u someuser -p tmp
>         >>
>         >>         and entered the exact same user name as is in my
>         script and I
>         >>         am able to connect
>         >>         just fine. I have tried looking at the output from
>         php_info()
>         >>         on the Apache web
>         >>         server and it looks normal but I could be missing
>         something.
>         >>
>         >>         Anyone have any ideas of what I might be over
>         looking???
>         >>
>         >> 1) What is apache saying about this?  Tail the logs?
>         >> 1.5) Change to FQDN like mysql.mylocalnetwork rather than
>         IP or CNAME
>         >> and retest script.
>         >> 2) Verify you have php extensions enabled (can you run
>         other .php
>         >> files in apache)?
>         >> 3) What does tcpdump on each server say?  Do you see the
>         connection go
>         >> out?  Do you have a sniffer that you can invoke and filter
>         >> specifically between these two servers? Wireshark?
>         >> 4) Selectively take down firewalling between each server
>         and test to
>         >> verify once you determine it might be switch or router or
>         local
>         >> iptables causing the issues?
>         >> 5) Do you allow scripting from that directory in your
>         Apache
>         >> <directory> tags?
>         >>
>         >>
>         >>         --
>         >>         Steve DuChene
>         >>
>         >> www.obnosis.com (503)754-4452
>         >> "Contradictions do not exist." A. Rand
>         
>         
>         >> ---------------------------------------------------
>         >> PLUG-discuss mailing list -
>         PLUG-discuss at lists.plug.phoenix.az.us
>         >> To subscribe, unsubscribe, or to change your mail settings:
>         >>
>         http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>         >
>         
>         
>         
>         ---------------------------------------------------
>         PLUG-discuss mailing list -
>         PLUG-discuss at lists.plug.phoenix.az.us
>         To subscribe, unsubscribe, or to change your mail settings:
>         http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
>         
> 
> 
> 
> -- 
> www.obnosis.com (503)754-4452
> "Contradictions do not exist." A. Rand
> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.plug.phoenix.az.us
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss



More information about the PLUG-discuss mailing list