Jump to content
The Uniform Server Community
Ota

Uniform Server ++

Recommended Posts

Hey there!

 

Since two weeks i was working on a small personal project i named SWAMP, Standalone WAMP. :) To make it short, i tried to achieve exactly the same as the Uniform Server project, a wamp with no installation.

At that time i didn't knew that a project of this kind already existed, and then a few days ago i got pointed to this website and my first reaction was shock and awe :)

 

After looking at uniform i found some points which, in my opinion, need to be changed or could be made better.

I decided it would be stupid to create a competitive project and merged my "knowledge" i gained in the last two weeks into the Uniform project.

And here it is, my modified version i call "Uniform Server++".

 

I don't want to fork the project and i am not sure if i keep this modification alive if the devs tell me there is no chance that this changes get merged into the main project. Its worth a try and at least i now have a development environment i can use for my needs. :-)

  1. The changes
    Lets continue with the list of changes i made, hopefully no one will feel insulted by these changes and comments!
    • Modified the directory structure.
      Trying to realize a linux like structure is positive, but please when you do it keep to it. Place files into directory's where they belong and don't create folders which normally don't exist.
       
      The changes i made to the directory structure in detail, i would recommend to download the zip file and check it out by yourself, for a download link please scroll to the bottom of this post.
       
      Hopefully i didn't forget one change ;)
      • Moved all files from udrive into the most upper level. Why there is this sub directory is beyond me?
      • Created the /srv directory and moved /www into it.
        /srv Should contain data for services (HTTP, FTP, etc.) offered by the system.
      • Moved /home/admin/www into /srv/www/uni-panel.
        The adminpanel hopefully does not and should not contain any files which are needed to run the server, so if the user doesn't want to use the panel he could simple remove it.
      • Moved /home/admin/www/phpMyAdmin and phyMyBackupPro into /srv/www/<dir>
        Why keep those hidden in a sub directory, this complicates the update process for the user?
      • Moved /docs into the new directory /usr/doc.
      • Moved /docs/SRC/ into the new directory /usr/src.
      • Moved /home/admin/programm into the new directory /usr/sbin.
      • Created the /var directory and moved /htpasswd and /tmp into it.
        /var - Contains various system files such as log, mail directories, print spool, etc. which tend to change in numbers and size over time.
      • Restructered the folders in /var/htpasswd/ coresponding to the new /srv tree structure
      • /var/tmp now contains all tmp files for mysql and php
      • Created /var/log
        All logfiles for all core applications are keept here ;)
      • Created /var/mysql
        MySQL tabledata
      • Created /var/ssl.crt
        SSL certificate data
      • Moved /plugins into /home/plugins, i am still unsure if those belong here.

[*]Improvement of the start/stop bat files

Yeah well what to tell, the function stays the same but the bat file is now more informative about what happens error and start up wise. I also cleaned up the code a lot and added more documentation to it and removed the console parameter, what is it for? The file Server_Start.bat got renamed to start-uniserver.bat

 

The stop bat (now stop-uniserver.bat) now has more error handling and checks for the uniserv watcher, if its not running the Close.bat (now server-shutdown.bat) will be called by the bat to ensure a complete shutdown.

 

Simply check it out ;)

One question though, what does the error level of 2 mean in connection with the pskill.exe, i was unable to find that out?

[*]All components got updated to the newest version: Apache 2.2.9, Mysql 5.0.51b, PHP PHP 5.2.6, phpmyadmin ...!

[*]The configuration files got a complete revamp. Almost all where moved moved to /etc/, except the one of phpmyadmin. This means easier upgrading! Simply copy the new version into /usr/local/<app> and you are set.

[*]Enabled a lot of mods for apache and php. SSL anyone?

[*]Cleaned up the apache conf file and splitted it up into small chunks so its easier to maintain.

Added a new regex alias. A tilde at the start of the directory part in the url allows you to change the current document root to the specified directory.

 

Example! Remember the default document root is /srv/www/localhost

<a href=\"http://127.0.0.1/~phpmyadmin\" target=\"_blank\">http://127.0.0.1/~phpmyadmin</a> resolves to /srv/www/phpmyadmin/

<a href=\"http://127.0.0.1/~uni-panel\" target=\"_blank\">http://127.0.0.1/~uni-panel</a> resolves to /srv/www/uni-panel/

 

This alias spares you of creating new virtual host or whatever stuff for new projects!

[*]Configured PHP the right way. Keeping register globals on, are you sane? :)

All additionally needed dlls (eg. libmysql.dll) for php mods are stored in /usr/lib. Extending the %PATH% env. variable in the start up process enables us to do this. The change is temporally as long as the cmd is running.

[*]Like allready noted in the directory structure changes, all data got moved to /data/mysql/

[*]Added a new default user "uniformserver" with the password "universal" which only has shutdown rights. This one is now used for shutting down the mysql deamon.

There are alot of small changes here and there mainly in the config files of apache. But that should give you an brief overview of what i have changed ;)

 

[*]Whats left?

There is still stuff to do, changes i did not finished because i don't know how people will react on my modifications and if it makes sense to invest more energy into this project or if i should keep the changes to me and shut my mouth ;)

  • Fully modify the administration panel to match the new directory structure. I just fixed some smaller bugs, so you can at least open it up.
  • Update all uniform plugins to match the new directory structure.
  • Fix unicontroller.exe, also broken of the new directory structure.
  • Instead of killing apache a WM_CLOSE message should be emitted to start a graceful and clean shutdown.
  • Add corresponding documentation of all components to the package.
  • Add xdebug and susoshin (hardend php) to the php modifaction list.

[*]Conclusion

So some of you will ask why all these changes, Uniform Server is fine as it is?

The main reason is simple, those changes lead to flexibility, maintainability and standard compliance.

 

All needed files like configuration, library's or data files got moved OUT of the application directory's. I already noted that, now you just have to simply replace the application with the new version and you are set. No complicated ties are made here, all the magic happens in the bat files.

 

You gain a proper pre configured server, can easily changes the settings and don't have to fear that you have to redo all over again when a update appears.

 

The pre installed webapplications are not hidden anymore, that always throws me off when using xampp. You are looking for phpmyadmin, oh look there it is, in the /srv/www folder where it belongs!

 

Keeping the directory structure to an original unix architecture makes it easy for experienced users to involve in the whole application. "oh hey i know that, cool its really a copy and start webserver!"

And, you know, keeping to standards is always good :-) Makes people like the project more.

 

I guess i could list even more points, but its late ;)

[*]The downside

There are two big points.

The first, is the size of mod, keeping all core apps without stripping out all unneeded files in the project adds a lot to the file size. Currently the mod has 80 mb in size.

 

The second and even more important point is the big interface break. The whole directory structure got a revamp, almost everything was changed! Old users would need to acclimate to the changes, existing plugins, extensions and sites which depend on the old structure need to be reengineered.

[*]The download

http://ohne-ziel.de/projects/uniform-serve...~350_Apollo.zip

That's it, hopefully someone will react to this and an open discussion will occur. I am curious about all feedback to this!

 

Ou, and sorry for the lengthy post!

 

Regards Ota :-)

Share this post


Link to post
Share on other sites

Nice work, Ota ;)

The /srv directory is a good idea, I like it.

 

It's a good thing that you didn't decide to fork the project, Olajide doesn't like it when people do that :)

I have a question, are you familiar with Linux?

 

I hope you don't mind if some of this reply sound a bit unrefined as I'm very excited about your post and couldn't wait to write a reply :)

 

I see that you have done a lot of changes to the file system structure, here are some things that I would love to discuss:

  • The udrive directory is subst'ed as W:\, that's why it's a subdirectory. Do you think putting the *.bat files in W:\ is a good idea?
  • From what I know, / is the primary hierarchy, /usr the secondary hierarchy and /usr/local the tertiary hierarchy.
    You have placed the doc, src, and sbin directories in the secondary hierarchy. However, the main programs are still in the tertiary hierarchy.
    • Should the doc directory be moved into /usr/share/doc, which is for architecture-independent data?
    • Should the sbin be moved into /sbin and the httpd.exe and mysqld.exe into /usr/sbin instead? (Considering that the files in /sbin are essential to get the server up and running; and the daemons should be in /usr/sbin)
    • Should php.exe and perl.exe be moved into /usr/bin?

    [*]I have always wondered about the htpasswd directory, do you think it's necessary? I think httpd.conf already has protection for the .htaccess and .htpasswd files.

    [*]Should the tmp directory be /tmp (which isn't preserved between restarts) or /var/tmp (which is)?

    [*]Should the mysql directory be /var/lib/mysql instead? (/var/lib is for data that programs modify while they run)

    [*]Should ssl.crt be in /var, as far as I know that file isn't modified frequently, so can it still be considered variable data?

    [*]Finally, the /home directory, what do you think we should use this for? I don't think the plugins belong there, they should either be in /opt (in this case, their config files should probably go into /etc/opt and their variable data into /var/opt) or /usr/local.

You mentioned the PATH environment variables, do you think extending them would work?

At this forum, you can see problems about the server not running because of an incompatible version of libmysql.dll, do you think we should change the order of the PATH environment variables so that it checks /var/lib first?

 

About the file size, the goals of this project is to keep the server no more than 8MB when compressed (although it could be changed in the upcoming version 4.0). Besides, do we require all the MySQL files to run MySQL properly? Don't we already have phpMyAdmin as our MySQL client? How about the Perl libraries? I don't think all of them are needed to run CGI programs properly.

 

Lastly, what do you think about running Apache and MySQL as Windows services and do you have any plans to include a mail transfer agent? How about an FTPd?

Share this post


Link to post
Share on other sites

Well i really cant download it but i read the whole thread about it. Seems like most of the things you would see in 4.0, even though yours might be a lil lengthier i guess. Structure changes yes. Updates, yes.

 

Uniform Server++ .. lol Notepad ++. :)

 

Umm the real thing i was hoping for was a more better coe system. I am looking for a proficient C/C++ developer to develop a one file start and stop system for the entire server which can also be used to start and stop the plugins also. Meaning no need for bats, pskill and the other files. Just 1 file. Save space, and also much more cleaner. If you think you can do that ... that would make the difference... :)

 

EDIT: Hey MrX. Umm also Ric found a solution to the LIBMYSQL.DLL Problem. Its now being called from the config file directly so no more worries about that ;-)

Share this post


Link to post
Share on other sites

Nice work, Ota

The /srv directory is a good idea, I like it.

 

It's a good thing that you didn't decide to fork the project, Olajide doesn't like it when people do that :)

I have a question, are you familiar with Linux?

I am no professional linux user but i have to work with it like most developers ;)

 

Dont forget that the directory structure differs on allmost all distributions, so all of this is just theory and can be discussed to death

 

I hope you don't mind if some of this reply sound a bit unrefined as I'm very excited about your post and couldn't wait to write a reply

 

I see that you have done a lot of changes to the file system structure, here are some things that I would love to discuss:

  • The udrive directory is subst'ed as W:\, that's why it's a subdirectory. Do you think putting the *.bat files in W:\ is a good idea?
  • From what I know, / is the primary hierarchy, /usr the secondary hierarchy and /usr/local the tertiary hierarchy.
    You have placed the doc, src, and sbin directories in the secondary hierarchy. However, the main programs are still in the tertiary hierarchy.
    • Should the doc directory be moved into /usr/share/doc, which is for architecture-independent data?
    • Should the sbin be moved into /sbin and the httpd.exe and mysqld.exe into /usr/sbin instead? (Considering that the files in /sbin are essential to get the server up and running; and the daemons should be in /usr/sbin)
    • Should php.exe and perl.exe be moved into /usr/bin?

    [*]I have always wondered about the htpasswd directory, do you think it's necessary? I think httpd.conf already has protection for the .htaccess and .htpasswd files.

    [*]Should the tmp directory be /tmp (which isn't preserved between restarts) or /var/tmp (which is)?

    [*]Should the mysql directory be /var/lib/mysql instead? (/var/lib is for data that programs modify while they run)

    [*]Should ssl.crt be in /var, as far as I know that file isn't modified frequently, so can it still be considered variable data?

    [*]Finally, the /home directory, what do you think we should use this for? I don't think the plugins belong there, they should either be in /opt (in this case, their config files should probably go into /etc/opt and their variable data into /var/opt) or /usr/local.

You mentioned the PATH environment variables, do you think extending them would work?

At this forum, you can see problems about the server not running because of an incompatible version of libmysql.dll, do you think we should change the order of the PATH environment variables so that it checks /var/lib first?

  • Valid point, but a 100% correct structure never can be and will be reached because of the way windows works. Imho having a subfolder just cascades the whole project on an unnecessary level. Still a valid point though!
  • Yes thats correct. Its the way linux is structured on most distributions.
    /usr/sbin contains files and programms needed for system administration which are not needed for the system startup.
     
    /usr/local basicly has the same structure as /usr, it can allmost be seen as the programms folder of linux
    You know the structure varies from distro to distro, some also install apache and mysql into the /opt directory.
  • About the documentation. /usr/doc normally contains the system documentation so this imho fits perfectly here ;) Or will there be a windows documentation added anytime soon?
    /usr/share/doc would contain the docs for apache, mysql, php and other stuff.
  • Yeah well, i would say the start-* bats should be moved from the root folder into /sbin but that would overcomplicate it. I cant decide if /sbin is really needed just for a few files, still a valid point though.
     
    Moving httpd.exe and mysql.exe into /usr/bin would be great but its impossible ;) That would break the functionality of both applications and take away the simplicity of updating.
  • Same for the php.exe, about perl.exe i have no clue.
  • Its a valid directory. Keeping the password files in a seperate directory away from the overall conf and the serverroot is a good idea. You never know what can happen.
  • Hm yeah /tmp allways gets cleared on a system reboot so we would need to clear that directory when someone is starting the server. I dont know if this is a good idea, when developing i dont want to be any files deleted even if they are tmp files :-) Makes debugging easier.
     
    Thats why i picked /var/tmp. The directory content will be preserved between system reboots still can contain various floating data
  • /var/lib only contains information about the state of an app, the PID files could be moved here but not the application itself.
  • Where else? You need to create it once in a while so its variable but changes rarely.
  • Yeah i also think its not needed but users could save their programms here like editors whatever. But who would do that anyway? To move the plugins in the /opt idea is a great idea though!
  • It is already working! My modified bat contains the necessary changes.
    SET path=%TMPDISK%:\usr\lib\;%PATH%
     
    thats it! Dont forget the change is temporally, when you close the bat the changes to the path env variable are gone.
     
    Modifying the path variable should also fix the incompatibility problem because windows has a order where it looks for dlls and afaik looking in the path folders is happening before checking in c:\ and c:\windows\system32

About the file size, the goals of this project is to keep the server no more than 8MB when compressed (although it could be changed in the upcoming version 4.0). Besides, do we require all the MySQL files to run MySQL properly? Don't we already have phpMyAdmin as our MySQL client? How about the Perl libraries? I don't think all of them are needed to run CGI programs properly.

 

Yeah, i know that one of the main targets is to keep the package small, but tbh i dont think it will work in the long run. Technology moves forward, fast cabel lines are allmost present everywhere. The used packages will get bigger and bigger anyway. So i dont know if its the correct approach and hope the project will not limit itself.

 

Do you mean all the MySQL exe files, etc? To be honest, i don't know if they are all needed but i think not, still it would add unnecessary work to rip all unneeded stuff out, test it and ensure a 100% compatbility on all systems. Why invest energy into this when there is allot of other stuff todo? Alot of people i know, tend to use the mysql binary's for dumbs, importing and other stuff. Its faster and more reliable then phpmyadmin.

 

I dont know alot about perl but sure not all libs are needed and i think most people dont use it anyway, i just keep it them because it was a main point of uniform.

 

Lastly, what do you think about running Apache and MySQL as Windows services and do you have any plans to include a mail transfer agent? How about an FTPd?

 

Well, bascily Apache and MySQL SHOULD be run as service when you plan to use them over a longer time.

Anyway i dislike installing both as services when i just simply will use them only from time to time, adding the unneeded registry dust and stuff. My main focus was to create a development enviroment i can slap on a usb stick and carry arround with me. Still if its a requested feature, i could try it ;)

 

A mail transfer agent is a nice idea! The probleme is i dont have the overview if there even is a standalone client and which one i should use then, so this could take some time.

 

I dont get the FTP idea, for what? Uploading files to your pc from your pc? :-)

 

Bear in mind that anyone who will use uniform as a live server should be shot in the foot and i wouldn't recommend it. Not because its bad or anything, its simple because of security reasons. Normally you would turn of all unneeded modifications etc.

 

 

 

Well i really cant download it but i read the whole thread about it. Seems like most of the things you would see in 4.0, even though yours might be a lil lengthier i guess. Structure changes yes. Updates, yes.

 

Uniform Server++ .. lol Notepad ++. :)

 

Umm the real thing i was hoping for was a more better coe system. I am looking for a proficient C/C++ developer to develop a one file start and stop system for the entire server which can also be used to start and stop the plugins also. Meaning no need for bats, pskill and the other files. Just 1 file. Save space, and also much more cleaner. If you think you can do that ... that would make the difference... ;)

 

EDIT: Hey MrX. Umm also Ric found a solution to the LIBMYSQL.DLL Problem. Its now being called from the config file directly so no more worries about that

 

Why cant you download it? Its working fine for me.

 

A startup programm would be a nice feature still it would take away flexibility. The changes i made never would be possible for me if there would be an exe. Alas i dont have any c or c++ skills. Working with bat gives most people the chance to modify the project to their needs.

 

 

 

Thanks for the feedback i really appreciate it, and sorry for my eng erros i atm dont have time to proof read my stuff!

 

Edit: haha to much emoticons! I should get a happy bonus =p

What a pain in the a** to search and remove them!

Share this post


Link to post
Share on other sites

Btw, i just tested the project at work and got some dll erros, ill look into it as soon as possible and upload the fixed version :)

Share this post


Link to post
Share on other sites

PHP is unable to find the pdo oci dll.

 

Warning: PHP Startup: Unable to load dynamic library '/usr/local/php/ext/php_pdo_oci.dll' - Das angegebene Modul wurde nicht gefunden.

 

Maybe i forgot to add it to the custom lib dir, currently i am unable to verify it.

Share this post


Link to post
Share on other sites

Okay found the problem, but i dont know how to fix it. It seems i allready have somewhere floating another php installation, i guess in the programms folder. This one gets loaded instead of the one which should be used :-)

Share this post


Link to post
Share on other sites

Okay found the problem! Like stated apache loads an already preinstalled PHP Version whose path is present in the %PATH% enviroment variable.

 

Example:

C:\WINDOWS\system32;C:\WINDOWS;D:\Programme\phpDesigner 2008\PHP

 

Note the last part. Adding the desired php installation at the beginnig of the path variables fixes the problem.

 

 

Enclosed is a small bugfixing release of uniform server++.

 

Changelog - Version 0.9.2

  • Fixed Bug: The php folder of the uniform server++ gets added to the path variable to prevent loading an undesired php version.
  • Fixed Bug: Added the "MSVCR71.dll" to the lib repository so pdo_oci loads properly.

Get the new version here (Uniform_Server_0_9_2++~350_Apollo.zip)

 

I can create a small roadmap with changes i want to incoporate into my modified version if any one is interested?

Share this post


Link to post
Share on other sites

So you made your own. I don't think it should called Uniformserver++.

 

I have my own windows-folders style uniformserver. still I respect the owner of uniformserver. because of that reason when I started the firbird support project I made it adopted by the original uniformserver also. Yours is quite complicated and far from simplity.

 

the idea of making uniformserver better is good as long as we respect the original work.

Share this post


Link to post
Share on other sites

I cant download cause of the PC am on :) and as Jacob Lee stated.. some things are left the way they are for some reason, not cause of us being picky, and dont expect a change in Structure overnite... it goes with time. 2 releases ago, we didnt have a ht directory for passwords... Ofcourse every has their style... I'm pretty sure i can name about 10 users who have their own style and have modded Uniform Server to the next level extent because of its flexibility, which is why we all love Uniform Server. ;) Dont wry though, i can assure you that some of ur structures are in the next release :) not everything can make it.

Share this post


Link to post
Share on other sites
Moved /home/admin/www/phpMyAdmin and phyMyBackupPro into /srv/www/

Why keep those hidden in a sub directory, this complicates the update process for the user?

For security reasons, a lot of devs still open the server to the world to allow (clients|customers|co-devs) access during website development. PMA is pre-setup to be open with mysql root/admin access - in my www folder I have another PMA set up with an account with limited access. Could be fixed with .htaccess of course, but to be on the safe side I think this approach is better.

 

I'm not sure I agree completely with jacob lee, but the changes/differences are quite profound, so maybe a good idea to call it something more/else so users don't get the idea that it's a US with extra features - it's changed in more ways than one. Call it "Ota's US++" and I think we'll be on the safe side.

 

But nice job, I like it - except for the size, ofcourse. :)

Share this post


Link to post
Share on other sites

So you made your own. I don't think it should called Uniformserver++.

 

I have my own windows-folders style uniformserver. still I respect the owner of uniformserver. because of that reason when I started the firbird support project I made it adopted by the original uniformserver also. Yours is quite complicated and far from simplity.

 

the idea of making uniformserver better is good as long as we respect the original work.

I didnt make my own! Its just a heavily modified version or even if you want to call it so my custom patched version. I called it "Uniform Server++" to show people its based on Uniform and to give the developers as much credit as possible, i dont want any credit for my changes. And instead of just creating the list and sending it as feedback, i allready modified it so its easier to explain and to show what i mean. In most open source projects you can send in your patches and then will be decided if it gets applied, Code says more then theory. Where did i tell i do not respect the developers? Sorry thats total mumbo jumbo.

 

Please tell my why it is complicated, i would like to hear your feedback even if its negative!

 

 

I cant download cause of the PC am on :) and as Jacob Lee stated.. some things are left the way they are for some reason, not cause of us being picky, and dont expect a change in Structure overnite... it goes with time. 2 releases ago, we didnt have a ht directory for passwords... Ofcourse every has their style... I'm pretty sure i can name about 10 users who have their own style and have modded Uniform Server to the next level extent because of its flexibility, which is why we all love Uniform Server. ;) Dont wry though, i can assure you that some of ur structures are in the next release :) not everything can make it.

Oh okay. Then get another pc and check it out, i think at least the modified bats are worth a look :\

About the structure changes, i understand that but wouldnt it be more constructive to plan ahead, create a structure which is future proved and solid? Better make a big break now, then in small steps so people just have to adopt once.

 

Like i allready wrote, it was worth a try, you can see that version as feedback or patches i would apply to make the software better, its your decision if you use it or not :-)

 

For security reasons, a lot of devs still open the server to the world to allow (clients|customers|co-devs) access during website development. PMA is pre-setup to be open with mysql root/admin access - in my www folder I have another PMA set up with an account with limited access. Could be fixed with .htaccess of course, but to be on the safe side I think this approach is better.

 

I'm not sure I agree completely with jacob lee, but the changes/differences are quite profound, so maybe a good idea to call it something more/else so users don't get the idea that it's a US with extra features - it's changed in more ways than one. Call it "Ota's US++" and I think we'll be on the safe side.

 

But nice job, I like it - except for the size, ofcourse. ;)

An option would be to limit the preinstalled phpmyadmin access to localhost only. Ill write that down and add it to my roadmap of changes when i am at home. :-)

 

Edit: If anyone can edit the topic title then change it to "Uniform Server suggested changes" or something, i dont mind :-)

 

New release will be keept internal just to myself from now on, maybe ill post the final version when i am done with my planned changes.

Share this post


Link to post
Share on other sites

Nah keep posting them, it's still inspiration for the rest of us, and people getting it off this topic should know that it's a dev version.

 

When making something slightly controversial, expect slightly controversial comments. :)

Share this post


Link to post
Share on other sites

Hehe okay, i just thought it would be better to not post the new versions so people dont get confused or think i am trying to redo the project. :)

Wouldn't it be better then to rename the topic?

 

I am fine with controversial or negative comments as long as they are constructive. :)

Share this post


Link to post
Share on other sites

Ota, I think one of the main reasons people were attracted to the Uniform Server is because of its size. So, why do you think keeping the size small is limiting the project? Besides that, I can also remember some parts of Perl (at least PPM which is included with ActivePerl) that required registry entries to function properly.

 

Here's a suggestion, as you said above, your structure changes would make it easier to update the components of the project. So, maybe you could do a small release with only the essentials (I think if you follow the file list of Uniform Server, you'll get a working server), and then you could write some BAT files to fetch the official releases of the components (there are official ZIP builds for all of them except Apache, I think), unzip them and then move all the necessary files to their respective folders. In other words, your server comes with stripped down versions of the components and then you offer BAT files to download and upgrade them into the full version.

 

I know that's probably a lot of work, and I'm not saying that you must do it, it's just something to keep in mind if you get users who want the small size of the Uniform Server with the changes of your Uniform Server++.

 

Here's another suggestion (that's hopefully not so much work to implement), I was thinking about what to do with the /home directory today and thought of those user-specific directories (those prefixed with ~), maybe you could use /home for that :)

 

However, from another perspective, it looks like adding unnecessary complexity into the server, what do you think about this?

 

Another thing, about the PATH environment variable, do you think it is possible to remove the unnecessary entries, and just leave it with WINDOWS, WINDOWS\system32 and the server directories?

 

Lastly, I mentioned installing Apache and MySQL as Windows services because I was wondering if your server structure would cause problems with that. As you said, we should plan ahead. So, maybe when you've found the time, you could check to see how the structure changes you made affect the installation of Apache and MySQL as services, just in case you get that as a feature request. Yet again, I'm not saying that you should make them installable as services immediately, just make sure that when you decide to do that, you don't have to change the server structure again :)

Share this post


Link to post
Share on other sites

First impressions: Well a 79M download is no fun 300M extracted; does not lend itself to multi copies that are easily movable.

 

So what do I get for me money? One hell of a hack of Uniform Server, which I must confess, is dear to my heart (the hacking bit). I have always advocated if you do not like Uniform Server then change it.

 

Functionality some of the links in apanel do not work not a serious issue since it’s alpha. I would have given MySQL a spin however I could not get PHPmyadmin to work.

 

Overall it looks an excellent piece of work, as for a Linux structure I could not find an htdocs folder, ho well that’s nit picking.

 

What is no mean feat is to get Apache 2.2.9 up and running took me several evening to achieve hence great job. Any hack tends to be a personal preference scattering Apache configs is one I dislike two at most is preferable.

 

I have only one concern and that’s size, ok if you need full packages Uniform Server is a reasonable compromise. Then again that’s not perfect because individual requirements differ.

 

You have one big advantage with your architecture it does not have to be backwards compatible with older OS’s or previous versions of Uniform Server.

 

What your design shows is the resilience and adaptability of Uniforms Servers fundamental architecture, it’s this malleability I like; trust it will be persevered in Version 4.

 

The above is not intended to be negative; I welcome new ideas and found this post most refreshing.

 

The one thing missing in the posts! No mention of the end user, I jump in my car and drive from A to B all I want is reliability I am not concerned with how the engine is built. Likewise I install a package like Moodle, this has a steep learning curve my attention is focused on this and not what server its running on. The server is a tool and nothing more.

 

All the best

Ric

Share this post


Link to post
Share on other sites

I was waiting to see what Ric would say ;)

 

We can see a couple of attention differences showing up in this thread, in the assumptions of what the end user would think of the server.

 

Ota is concerned for the more experienced users and says that making the server more standards compliant will make them happier. While Ric says that users just want something that works and don't care about how the server is built.

 

Well, what can I say? No one is "built" to pay attention to the same things :)

But then again, I don't think anyone really cares about that, so... I'll keep my mouth shut now :)

Share this post


Link to post
Share on other sites

Sorry for the above ramble I meant to answer this:

 

Taken from “start-uniserver.bat”:

 

rem what the hell does this mean? i am unable to find it out

IF errorlevel 2 goto :WTF : :)

 

It’s a system error, a message will be sent to the screen hence original:

if errorlevel 2 goto :PAUSE

Gives you a chance to read it.

 

Note: pskill.c source code in folder *\Uniform Server\udrive\docs\SRC

 

Its redundant in your code

usr\sbin\pskill.exe httpd.exe > nul

 

If a system error is detected you will not see it because you have sent it to the black hole (nul)

 

All the best

Ric :)

Share this post


Link to post
Share on other sites

Dont worry am pretty sure you'll fall in love with 4.0 Ota. But the thing again is also that while you are going straight ahead into the Linux Architecture, some Users dont like that. I've had comments, reviews and so on about why we use the Linux format on the Server's Structure and not Windows since its on Windows anyways...

 

Another things also is the fact that while you are thing on an expert level a beginner will still be looking for the location of some things. Do you know how many people still come and ask where the httpd.conf file is? Or where is the php.exe?? lol.

 

There are also some settings we leave on the server. The server is meant to be a development tool out the box. When you wanna go Production, just run the Security Checklist and follow what it says so set your server up more secure. Register Globals is not a bad thing as long as you know what you are doing with it.

 

But just as i said before, we all love Uniform Server cause of its mobility, flexibility, and portability :) Half this you are doing is definitely not possible on XAMPP or any other WAMP Server except the many other Uniform Server Forks...

 

PS: I cant download cause am at a friends for a month ;)

 

EDIT: Another thing Ota, dont look at the numbers of Forum members. Most are here only for support and nothing else :) A lot of people have been bothered by that but i dont know why.. If i was i wont be here also... But thats the use of a forum anyways, for users to get support. They wont know about this until they scheme thru the forum. What you can expect is a reply from those who are usually here... ;-)

 

 

Hey Alleykat ;) Hey Ric ;) MrX ;) Where is Jacob Lee?

Share this post


Link to post
Share on other sites
Ota, I think one of the main reasons people were attracted to the Uniform Server is because of its size. So, why do you think keeping the size small is limiting the project? Besides that, I can also remember some parts of Perl (at least PPM which is included with ActivePerl) that required registry entries to function properly.
First impressions: Well a 79M download is no fun 300M extracted; does not lend itself to multi copies that are easily movable.
I understand the point about the size, and i allready admited in my first post its one of the negative points. Everyone likes small and overviewable software. Still, the versus argument follows: a) disk space is cheap and will become even cheaper and B) how long did you need to download the 70 mb? I guess five minutes at max?

 

Copying the packe around is no fun at all, thats true.

 

Here's a suggestion, as you said above, your structure changes would make it easier to update the components of the project. So, maybe you could do a small release with only the essentials (I think if you follow the file list of Uniform Server, you'll get a working server), and then you could write some BAT files to fetch the official releases of the components (there are official ZIP builds for all of them except Apache, I think), unzip them and then move all the necessary files to their respective folders. In other words, your server comes with stripped down versions of the components and then you offer BAT files to download and upgrade them into the full version.

 

I know that's probably a lot of work, and I'm not saying that you must do it, it's just something to keep in mind if you get users who want the small size of the Uniform Server with the changes of your Uniform Server++.

This is the only way to solve the size problem but thats the point where i think the project will limit itself when it keeps up to it. Alot of development time will be lost that could be invested in more important features. And this is why i think so: You have to invest alot of time into taking the core components apart and see if they still work when file X is not present AND you have to test it on every system and under different situations. Adding a downloader is a nice idea but doenst solve the problem? You stll have to download the 70 mb?

 

Keep the core components as they are, the developers behind those packages know what they are doing and allready tested them. Why do the same work all over again?

 

Imho the uniform package should even contain all possible files to be more system independent. You never know if a user is missing a dll or package and to solve user system enviroment dependant problems is a pain in the ass ;)

 

Here's another suggestion (that's hopefully not so much work to implement), I was thinking about what to do with the /home directory today and thought of those user-specific directories (those prefixed with ~), maybe you could use /home for that :)

 

However, from another perspective, it looks like adding unnecessary complexity into the server, what do you think about this?

I could easily do that but i dont see the point? Why do you want to keep projects out of the www directory?

 

Actually i was planning to remove the /home folder at all. In order that the home directory could be used properly the user would need to create his own home subfolder and modify the apache conf to add the new user directory. Doesn't sound very positive to me :-)

 

Another thing, about the PATH environment variable, do you think it is possible to remove the unnecessary entries, and just leave it with WINDOWS, WINDOWS\system32 and the server directories?
Yes its possible i tested it. And, like i allready stated, alas the changes to the path variable via cmd are temporary. Anyway, i dont think we should do that, imagine an user installs an application which adds itself to the path enviroment to work properly and the user wants to add it to his server enviroment. The app. wont work because it does not find the needed files, since we boggled around in his system configuration ;)

 

Lastly, I mentioned installing Apache and MySQL as Windows services because I was wondering if your server structure would cause problems with that. As you said, we should plan ahead. So, maybe when you've found the time, you could check to see how the structure changes you made affect the installation of Apache and MySQL as services, just in case you get that as a feature request. Yet again, I'm not saying that you should make them installable as services immediately, just make sure that when you decide to do that, you don't have to change the server structure again :)
The changes to the directory structure shouldnt make any problems which couldnt be solved.

 

One hurdle about installing apache and mysql as services is to tell them where they find the needed configurations, but when i stand correct this can be easily solved by adding the needed parameters when installing the service.

 

The biggest hurdle are the config files itself, to be more exact, the path definitions in those. In a way they are all defined as absolute paths but missing the disk declaration. The trick is that windows will use the disk from which the path got requested, thats why there is created a virtual disk by uniform to ensure the paths match.

Currently i have no clue how that can be solved and to be honest i am suprised that the current service plugin works?

 

So what do I get for me money? One hell of a hack of Uniform Server, which I must confess, is dear to my heart (the hacking bit). I have always advocated if you do not like Uniform Server then change it.

 

Functionality some of the links in apanel do not work not a serious issue since it’s alpha. I would have given MySQL a spin however I could not get PHPmyadmin to work.

 

Overall it looks an excellent piece of work, as for a Linux structure I could not find an htdocs folder, ho well that’s nit picking.

Thank you very much for the compliments :-)

 

Hehe, someone didn't read my opening post properly ;) The apanel is broken to some degree based on the path changes, i just fixed some minor stuff so you could atleast open it up.

 

phpmyadmin got moved to the webroot as own project, to access it you have to visit the url http://127.0.0.1/~phpmyadmin/ which will resolve to /srv/www/phpmyadmin/.

 

The /www folder got moved to /srv/www. Please read my opening post why there is this new directory.

 

What is no mean feat is to get Apache 2.2.9 up and running took me several evening to achieve hence great job. Any hack tends to be a personal preference scattering Apache configs is one I dislike two at most is preferable.

 

I have only one concern and that’s size, ok if you need full packages Uniform Server is a reasonable compromise. Then again that’s not perfect because individual requirements differ.

 

You have one big advantage with your architecture it does not have to be backwards compatible with older OS’s or previous versions of Uniform Server.

Again, thanks.

 

Do you keep your code all in one file when developing? I guess not, the same rules apply to the apache config file, it gets big, hard to handle and thats why i splited it up to make it easier to maintain.

 

Yeah i know that and also stated this in the first post as one negative point that backwards compatibility will be broken by those changes. Nothing you can do about that, thats why you have new milestone releases and announce interface changes which will break compatibilty.

 

What your design shows is the resilience and adaptability of Uniforms Servers fundamental architecture, it’s this malleability I like; trust it will be persevered in Version 4.

 

The above is not intended to be negative; I welcome new ideas and found this post most refreshing.

 

The one thing missing in the posts! No mention of the end user, I jump in my car and drive from A to B all I want is reliability I am not concerned with how the engine is built. Likewise I install a package like Moodle, this has a steep learning curve my attention is focused on this and not what server its running on. The server is a tool and nothing more.

 

All the best

Ric

Thanks once more for the heads up! All i can do is to give you my feedback and i am trying this as best as i can do :-)

 

Sorry i dont know moodle. To be honest, my main focus is on developers but the changes i made also make the whole package more user friendly imho. As example all the webprojects are in one place and the configs are in one place. (the positive aspects of the changes are stated in the first post)

 

So called newbies who dont touch the servertechnology wont notice any big difference except the bats give them more feedback on whats happening. :)

 

Sorry for the above ramble I meant to answer this:

 

Taken from “start-uniserver.bat”:

 

rem what the hell does this mean? i am unable to find it out

IF errorlevel 2 goto :WTF : :blink:

 

It’s a system error, a message will be sent to the screen hence original:

if errorlevel 2 goto :PAUSE

Gives you a chance to read it.

 

Note: pskill.c source code in folder *\Uniform Server\udrive\docs\SRC

 

Its redundant in your code

usr\sbin\pskill.exe httpd.exe > nul

 

If a system error is detected you will not see it because you have sent it to the black hole (nul)

 

All the best

Ric :)

Its the error state of the application? Good to know! Displaying the message can be solved easily by routing the output to a file, goto the error state and pipe the output to the screen. Ill change that in the next version.

 

 

 

Dont worry am pretty sure you'll fall in love with 4.0 Ota. But the thing again is also that while you are going straight ahead into the Linux Architecture, some Users dont like that. I've had comments, reviews and so on about why we use the Linux format on the Server's Structure and not Windows since its on Windows anyways...

 

Another things also is the fact that while you are thing on an expert level a beginner will still be looking for the location of some things. Do you know how many people still come and ask where the httpd.conf file is? Or where is the php.exe?? lol.

We will see :) When do plan to release it?

 

I allready thought so, you cant make everyone happy but professionals will appreciate the linux like structure.

 

Hehe while reading your post i got an excellent idea, i will be re adding the udrive folder and remap the virtual drive to that. As a special i will create junctions when you start the server. Junctions are symlinks for windows but limited to folders, which are present since windows 2000 but no one knows that.

 

Those junction folders will point to /etc and the /srv/www directorys and will be created parallel to the udrive folder under the names /configuration and /webroot so really everyone should find those important directorys in a breeze :-D

 

I will be adding this into the next release thats how much i like the idea!

 

There are also some settings we leave on the server. The server is meant to be a development tool out the box. When you wanna go Production, just run the Security Checklist and follow what it says so set your server up more secure. Register Globals is not a bad thing as long as you know what you are doing with it.

 

But just as i said before, we all love Uniform Server cause of its mobility, flexibility, and portability ;) Half this you are doing is definitely not possible on XAMPP or any other WAMP Server except the many other Uniform Server Forks...

Sorry i dont understand the meaning of "leaving some settings on the server".

 

Register globals IS bad even when you know what you are doing, this is one of the reasons the option will be removed in php6 or when i state corret even in 5.3. The option enables are frikkin big security hole, i do not want to explain why, there are alot of pages about this topic :-)

 

Talking about security, saving the current mysql root password in a plain text file aint good. You never know if the user enters his one and only password, someone just need to get ahold of the uniform server directory and all goes downhill from here.

 

And using the server even after the "security checklist" is not recommended by me. Normally you would rip out every unneeded mod and feature of apache/mysql/php, limit write and read access to the directorys and other stuff. Alone the by default enabled mod server info of apache gives an attacker so much information he would cringe in joy.

 

Another reason i would nerver recommend to use uniform or any feature ready wamp/lamp package on a productive server is that when you have a server you should know what you are doing and along with this goes that you know how to install and configure all needed components to run a webserver.

 

 

Omfg, its 3 am, answering all this took me more time then i thought (Thats how much i care about your feedback. :-) ), so please pardon my english errors because i am to tiered to reread everything! And excuse me if some answers seem out of place, just reask them. I really appreciate it.

 

Once more i want to state that all i do is for my privat use and joy, i do not want to create a fork or whatever out of this. New version will only be released in this thread. The changes and modifications are free to use! It would be nice though when you could give me some props :D

 

Oh, by the way, what license does uniform use? I was unable to find proper license information.

Share this post


Link to post
Share on other sites

Ahhh... junctions ;)

You can't use those to replace subst (creating a whole drive instead of a folder), can you?

There is also no DLL you can add which would make it compatible with Windows 9x, right?

 

Hmm... why are you saying that we have to test it on every system and different situations?

You keep talking about wasted development time which could be spent on more important features.

What are those features? Well, this is just a server and not an operating system, why there are so many features to implement is beyond me.

 

An important feature that Olajide wants to implement now is the one-file start/stop system for the core components and plugins. As Olajide has stated earlier, he hasn't been able to find anyone proficient in Windows C++ coding to do that for him. So, as you can see, development time isn't really a problem at the moment, it's the lack of programmers! Anyway, Olajide has taken apart the components many times, I doubt it would take him much time and for the testing of it, we have a beta testing team to help with that (although most of them seem to have disappeared :)).

 

To sum it up, I don't see why you keep bringing up the wasted development time argument. I just can't see how that is "wasted". I also believe that there isn't an infinite amount of tricks you can make an Apache, Perl, PHP and MySQL package do that people would actually want and that is in the ability of the current developers to do.

 

Well, I guess I'll end my rant here, I won't say anything about the size after this. But maybe as an experiment, you could make a stripped down version and see the number of downloads that gets compared to the full version. That's the only way to see which approach is limiting, limiting here as in limiting the amount of users that will download the server. Of course, there are other definitions of "limiting", however doesn't everything have a limit? As far as I know, you're the first one to say that making it small is limiting. I guess we'll have to agree to disagree on this point. There are servers that are big and servers that are small enough to even fit on a floppy disk, which is better? None, both have their own purposes.

 

If I have offended you in anyway, I offer you my apologies. The posting of your modification here has already helped us overcome a limitation, the limitation of choice. Now our users can choose to get the Uniform Server or your Uniform Server++ ;)

 

P.S. The Uniform Server is under a BSD(-like?) license, the LICENSE.txt can be found in the docs folder :)

Share this post


Link to post
Share on other sites

Umm this is becoming an argument thread of sort... anyways, um not everyone will get along and NOPE i can tell you our aim is not to please professionals either. That just comes with it ;) Rockies, end users and co are the main target, professionals like you can change it, mod it, and so on, just as you did yourself ;) Talking about your server, AlleyKat have you done anything to yours lately?

 

MrX, nope, the bat wont be gone, just better. Or maybe gone.. :) Not sure yet... Ota, time will tell as currently right now i'm trying to settle down first and find a place to live cause am kinda homeless taking Calc online (WTF?) lol. But yep, hopefully i can get back to what i was doing on it as soon as i move by the end of July. (no more roommates next year unless they saving me tons of money!)

 

PS: MrX, am not home. ;) :) Sleeping at friends for the nite, catch you after or during Calc tomorrow.

Share this post


Link to post
Share on other sites

Hehe minute you didnt offended me at all. This is open dicussion and it's interesting to see another view point. I understand your arguments.

 

To put it simply, for me the size is negligible, before i start to shrink the whole project i want to add the features on my roadmap. Simple as that.

 

Apparently i cant mention this often enough: I do this for my personal use and sharing the changes is just a nice side effect, so i am not after a higher download numbers or whatever. :-)

I love discussions about application design and if its constructive both sides will profit out of this.

Share this post


Link to post
Share on other sites

Hey, just wanted to post i am not dead and working on the next minor release which will i'll post this evening or at the latest tomorrow. :-)

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...