Jump to content
The Uniform Server Community
couch-potatoe

UniController wierdness...

Recommended Posts

Hi Guys,

 

I've just upgraded to Mona - thanks for all the hard work...

 

Just for kicks I thought I'd try the new (to me) UniController and hit a strange problem - running TEST illustrates...

 

snap-1.jpg

 

This seems really strange since "netstat -a" reveals nothing obvious and the batch files work quite happily!

 

(No, I'm not running Skype!)

 

Bright ideas anyone? :unsure:

 

Ta!

 

Couch Potatoe

Share this post


Link to post
Share on other sites

I have given this some thought, tried to simulate your results even checked the code.

 

All to no avail hence no bright ideas, dim about five watts. :unsure:

 

All the best

Ric :)

Share this post


Link to post
Share on other sites

I know, its really strange - I'm beginning to think it's something odd about the way my laptop is setup, both netstat -a and "Active Ports" show that nothing is using port 80 or port 443 but if I portscan the beast port 80 and 443 are shown as open even though I can't get any response from them even with telnet...

 

This sort of stinks of Trojan/Malware activity but all the scans I've run (NOD32, Malwarebytes, Webroot, etc) come up clean!

 

Now I'm really confused :unsure:

 

Still, at least I can carry on as normal with the batch files...

 

Couch...

Share this post


Link to post
Share on other sites

check if IIS is running... the Home editions don't have it installed, but the other win versions do.

might also be a proxy problem - if you use TOR or Hotspotshield and its not correctly configured for you or a MS proxy setting. they might cause trouble on port 80 as well as any web config supporting apps like eMule or alike (with port 80 configured.)

 

just a hint for others that have trouble. might not be a solution in your case.

 

trojans usually dont hook port 80 as they usually use UDP and a not so obvious port.

Share this post


Link to post
Share on other sites

startmenu->run "cmd /K netstat -a -b" ... lists ports and the programs used. check for :http and :80 connections

Share this post


Link to post
Share on other sites

Hello,

 

I'm having the same problem. Unicontroller 4.1 gives me the port 80 in use message...

 

I changed the httpd.conf to port 81... then unicontroller gave me port 81 in use message!

 

Though Server_Start.bat works and runs Apache on port 80 just fine!

 

Also ran

 

netstat -aon | findstr 0.0:80

 

Which returns nothing... Nobody on port 80. Active Ports shows nothing on ports 80 or 81!

 

So, I'm running the bat file instead.

 

Jay

Share this post


Link to post
Share on other sites

Hi Guys,

 

I've just upgraded to Mona - thanks for all the hard work...

 

Just for kicks I thought I'd try the new (to me) UniController and hit a strange problem - running TEST illustrates...

 

snap-1.jpg

 

This seems really strange since "netstat -a" reveals nothing obvious and the batch files work quite happily!

 

(No, I'm not running Skype!)

 

Bright ideas anyone? :blink:

 

Ta!

 

Couch Potatoe

 

 

I had the same problem it ended up being AVG 8.5 I had to disable Active Surf Shield

 

--

Denis LeBlanc

ActionRacingPhotos.com

Share this post


Link to post
Share on other sites

Hi Denis,

Thanks for the feedback; to a certain extent it vindicates UniController.

I’m not sure if I can code around this issue because UniController checks the socket directly.

My real concern I was going to replace batch file checking with a PHP script, which also checks the ports at the socket level. :blink:

 

All the best

Ric ;)

Share this post


Link to post
Share on other sites

Ric,

 

Not to be a pain, but... Unicontroller has the error. Everything starts up fine with Server_Start.bat.

 

Not running AVG like Couch Potatoe. I have Trend Micro 2009 - I just turned all its features off to double check... still a problem.

 

And as I mentioned earlier netstat -aon doesn't show anything on port 80.

 

Also mentioned earlier I changed the port settings in httpd.conf to 81 and the same error came up.

 

There must be something going on here.

 

Oh and THANKS for Uniform Server, I use it all the time for developing and it's great!

 

Jay

Share this post


Link to post
Share on other sites

Hi all ...

 

Ric,

 

Not to be a pain, but... Unicontroller has the error. Everything starts up fine with Server_Start.bat.

 

Not running AVG like Couch Potatoe. I have Trend Micro 2009 - I just turned all its features off to double check... still a problem.

 

And as I mentioned earlier netstat -aon doesn't show anything on port 80.

 

Also mentioned earlier I changed the port settings in httpd.conf to 81 and the same error came up.

 

There must be something going on here.

 

This is my first Uniform Server experience, it is all going smoothly, but for the lack of Apache. Unfortunately the start_server.bat script ALSO fails on my /XP box:

MySQL port = 3306 - OK to run MySQL server

Starting MySQL server ...

 

 

Apache port = 80 - Failed port already in use!

SSL not enabled skipping port test.

Failed! To run Apache server both ports must be free!

Apache Syntax check - Syntax OK

 

Cron not enabled in config.inc.php

Or disabled by a user parameter

 

When I use netstat ... Also none of the programs are listed as using port:80. Yet the server_status.bat script detects something. I see a lot of people verifying this problem, Do we know if it is the port or the "detection" apparatus?

 

================== UNIFORM SERVER STATUS ==================

 

PHP INI: php.ini file = Development

 

APACHE SERVER:

 

Apache port = 80

Apache SSL port = 443

Apache executable name = Apache.exe

Apache service name = ApacheS1

Apache SSL server = Disabled

Apache run status = Not running

Apache install status = Free to install

 

MySQL SERVER:

: : :

 

PORT STATUS:

 

Apache port = 80 In use by another program.

Apache SSL port = 443 Is free to use

MySQL port = 3306 In use by this server

 

I have AVG running, and I've got Uniserver v5_0_beta_1.exe (self-extracting); Win/XP sp3.

 

I went to the command line, and Apache started OK with manual install. And I was greeted by the Uniform Server home page when I went to firefox:

So Apache is operative ...

bin\Apache.exe -f conf\httpd.conf -d z:\$$$\UniServer\usr\local\apache2

 

Curiously, server status still says "in use by another", even while Apache is running. May be it is missing a PID since I started it manually.

 

PORT STATUS:

 

Apache port = 80 In use by another program.

Apache SSL port = 443 Is free to use

MySQL port = 3306 In use by this server

 

I can confirm Apache is running and that the web server is doling out HTTP:// pages. I confirmed this Task Manager when I kicked-off Apache.

 

Of course you need to manually kill the process too -- CTRL/C or via Task Manager.

 

I think the problem is in detection, Apache certainly has no qualms about port:80. You might want to check the tools XAMPP use for monitoring the servers. I think there's something awry here.

 

Hope this was helpful, I need a 'fix' so things work smoother. Your efforts are appreciated!!

 

Best wishes,

 

Will

Share this post


Link to post
Share on other sites

Hello hello (me again)

 

I was looking at the wiki ...

At this step, a new disk "W:\" will be created. That is the Uniform Server. Navigate to
if the browser does not open up automatically.

 

As odd as this sounds, I have a "
W:
\" drive assigned. I am not sure if that is a factor, or not.

 

As I said this afternoon, Apache loves me when I fire-up from the command line. My W: drive is allocated at boot time (not hardware). Perhaps the W: drive is irrelevant, or ... It could be helpful.

 

While I'm on this topic: ... Is there a simple way to alter the "web" drive letter?

 

Anyway I thought I'd toss the drive letter into the consideration pool, since I've had Apache work and I have AVG -- no Skype. I dunno if the drive letter influences the Port:
80
check.
  • A second thing ...

Why is it only Port:
80
? Actually, I wonder if it is not also the MYSQL port, if you look back at my first post, you can see that after starting Apache on the command line ... The Port Status indicates that Port:
3306
(MySql) is "
in use
" also, despite me NOT starting MySQL, only Apache on the command line.

PORT STATUS:

 

Apache port = 80 In use by another program.

Apache SSL port = 443 Is free to use

MySQL port = 3306 In use by this server

I may add that I did a fresh rebooted before booting up Apache. Ergo, no mySQL would be expected to be operating. Any light seeping through yet? Or am I adding to the confusion?

Share this post


Link to post
Share on other sites

UniServer5.0-Nano Beta1

 

Note: It does not use a Virtual drive see http://sourceforge.net/userapps/mediawiki/...o:_Introduction hence drive W not an issue.

 

From your post along with others port detection remains an issue.

 

Proposed change edit file UniServer\unicon\main\includes\functions.php

 

Locate this function:

 

//== Port In Use Test =========================================================
// Checks a port to see if it is currenly in use.
// Inout: Port number
// Output: true  - in use
//		 false - free to use 
function port_in_use($port){
 $site = '127.0.0.1';   // Server

 @$fp = fsockopen($site,$port,$errno, $errstr, 1); // Open a socket
 if($fp){										  // Connection made
fclose($fp);									// Close connection
  return true;								  // Port already in use
 }
 else{											 // failed to connect
return false;								   // Port free
 }
}
//========================================================= END Port In Use ===

Replace with this:

//== Port In Use Test =========================================================
// Checks a port to see if it is currenly in use.
// Input:  Port number
// Output: true  - in use
//		 false - free to use 
function port_in_use($port){
 $cmd = 'netstat -anp tcp | FIND /I "0.0.0.0:'.$port.' "'; // Command
 exec($cmd,$dummy,$return);		// 0=Detected >=1 Not detected 

 if($return == 0){				 // Check return value
  return true;					 // 0= True Port already in use
 }
 else{							 // Port not found
  return false;					// Port free
}
}
//========================================================= END Port In Use ===

That should resolve the issue, let me know and I will update beta2

 

All the best

Ric :)

Share this post


Link to post
Share on other sites

Hi aplatypus,

Your tests were interesting and informative!

Why is it only Port:80? Actually, I wonder if it is not also the MYSQL port, if you look back at my first post, you can see that after starting Apache on the command line ... The Port Status indicates that Port:3306 (MySql) is "in use" also, despite me NOT starting MySQL, only Apache on the command line.

PORT STATUS:

 

Apache port = 80 In use by another program.

Apache SSL port = 443 Is free to use

MySQL port = 3306 In use by this server

 

I may add that I did a fresh rebooted before booting up Apache. Ergo, no mySQL would be expected to be operating. Any light seeping through yet? Or am I adding to the confusion?

1) When you ran servers for the first time Apache failed and MySQL ran.

Each server’s status is tracked. “MySQL port = 3306 In use by this server” is correct.

 

2) I assume you never stopped the servers. Hence after a reboot, the tracker still contains the running status for MySQL. Again “MySQL port = 3306 In use by this server” is correct.

 

3) Root cause for 2) You started Apache using a command prompt “bin\Apache.exe -f conf\httpd.conf -d z:\$$$\UniServer\usr\local\apache2” Doing this bypasses tracking.

 

4) One function of Tracking is to fail-safe, for example if PC is switched off without stopping the servers. At reboot the unclean shutdown is detected and trackers are reset accordingly. It’s the Apache tracker that performs this unclean check, since this was bypassed explains your observations.

 

5) This “Apache port = 80 In use by another program.” Again this would be the result of bypassing the tracker. However because the proposed mod explained in last post has not been implemented it really is detecting the port is in use by another user.

 

Interestingly both UniController and beta script uses fsockopen to check for an open port. May be this is too restrictive hence the proposed change.

 

Anyway I digress, I said interesting and informative.

 

Interesting: Never considered a user would start servers using a command prompt. Will state this in the docs, servers must be run from either UniTray or batch files.

 

Informative: Well! You never used a one liner like it failed or port in use, stated your observations like I said informative.

 

We are working on Beta2, Apache and phpMyAdmin have been updated above proposed mod included.

 

All the best

Ric :)

Share this post


Link to post
Share on other sites

Hi Ric et al

 

Yes that fix got past the "Port in use" {weirdness} problem. Great!! Thanks for such a quick solution. I don't think I'm out of the woods yet. While Apache started OK, it has also stopped. I don't see any error log either to indicate what's gone awry.

 

This does the trick fine!

UniServer5.0-Nano Beta1

--> snip <---

 

Replace with this:

//== Port In Use Test ==========================================
// Checks a port to see if it is currenly in use.
// Input:  Port number
// Output: true  - in use
//		 false - free to use 
function port_in_use($port){
 $cmd = 'netstat -anp tcp | FIND /I "0.0.0.0:'.$port.' "'; // Command
 exec($cmd,$dummy,$return);		// 0=Detected >=1 Not detected 

 if($return == 0){				 // Check return value
  return true;					 // 0= True Port already in use
 }
 else{							 // Port not found
  return false;					// Port free
}
}
//============================================= END Port In Use ===

That should resolve the issue, let me know and I will update beta2

 

I have made some 'exhausting' (though, not "exhaustive") tests on the other issue that relates to my situation. I mentioned a problem from the wiki on a W:\ drive earlier. Here's the same thing.

 

I used a network drive mapping to make life easier. My "z:\" drive is actually a temp directory (as shown).

 w:\ = c:\work
z:\ = C:\tmp 

 

The difference between "Install and Run All Services" and "Install Run Apache Service" on the right-hand-menu and the "Start UniServer" and "Start Apache Server" is that the former installs them as a Service? The Right-Click menu ("Start UniServer") works. Which just runs them from the command shell.

 

Anyway I ran the "START" program via windows explorer (file explorer) on the real path name: c:\tmp\uniserver ... etc. ... This configures things with the actual path, and started Apache -- and clicked on http://localhost ... GOSH, it worked!

  • Working -- c:\tmp\Uniserver\usr\local\apache2

  • .... c:\tmp\Uniserver\Start

bin\Apache  -k install -n ApacheS1  -f "c:\tmp\UniServer\usr\local\apache2\conf\httpd.conf" -d "c:\tmp\UniServer\www"

 

Then I stopped everything, rebooted, and did the same stuff from the mapped network drive from the DOS command line, as z:\uniserver ... with the same parameters (after all the paths point to the exact same place)

 

  • Fails with error #3 -- z:\Uniserver\usr\local\apache2

bin\Apache -k install -n ApacheS1 -f "c:\tmp\UniServer\usr\local\apache2\conf\httpd.conf" -d "c:\tmp\UniServer\www"

 

I'm considering that the "Install Run Apache Service", adds Apache as a window's service too and that fails when I have run it from the mapped Z: drive.

 

I made some other checks, you really need to run START from the physical drive path to ensure the configuration is correct. I found some other files were non-accessible even when I could get the program started by editing different .ini and .config files.

 

--------------

 

Anyway I managed to capture the output from the "Install Run Apache Service" (right-click menu).

 

I think it would be nice is there some way for the PHP command window to PAUSE or otherwise remain around long enough to read error messages!! :) :) Actually on a serious note, the best thing would be an option on PHP.ini to wait at the end of the exec( ) function And to log the commands exec()-ed along with the results.

 

 

MySQL service not enabled in config.inc.php

Or disabled by a user parameter

 

Apache port = 80 - OK to run Apache service

SSL not enabled skipping port test.

Apache Syntax check - Syntax OK

Installing ApacheS1 Service ...

 

Fri Aug 14 21:32:37 2009] [error] ApacheS1: Service is already installed.

 

Unfortunately, this is so -- Meaning, that Apache service was already installed. When I went to the Windows services control panel, and tried to START manually, it failed with error #3, can't find file (or path?).

 

With some other changes, it fails after writing to the System Application error log abotu file paths "path must exist" and similar complaints.

 

Some MSDSE alphabet soup person can explain WHY windows implements networking as a third-class citizen. I was caught once giving a demo on my laptop -- All my logical drives failed (they didn't vanish, or say not connected) they just failed because I did have an Ethernet cable connected.

 

My model here is that Services don't get the Environment variables and network mapping that I see as a "User". It is all a little insane, because diagnosis is trial and error until one of the error messages says that folder isn't there even when I'm looking right at it! :o :)

 

--------------

 

Finally, for any one who like shorter paths and uses mapped drives. I made a windows short-cut to the UniServer/Start.exe file using the c:/tmp/Uniserver/ path and working folder. When I run that I know that the menu and configuration will use the right path -- Actual path.

 

I'm sure this will save anyone with mapped drives some sanity and time.

 

Cheers from Will (me) and . . .

Share this post


Link to post
Share on other sites

I had the same problem when I used 5.x version and after closed the user.

Apache and Mysql were installed as services and I used the Windows Control panel (Admin services) for stopping servers.

Perhaps 4.x was used after 5.x.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...