Ota Posted June 29, 2008 Report Share Posted June 29, 2008 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. :-)The changesLets 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/logAll logfiles for all core applications are keept here Created /var/mysqlMySQL tabledata Created /var/ssl.crtSSL certificate data Moved /plugins into /home/plugins, i am still unsure if those belong here.[*]Improvement of the start/stop bat filesYeah 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.[*]ConclusionSo 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 downsideThere 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 downloadhttp://ohne-ziel.de/projects/uniform-serve...~350_Apollo.zipThat'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 :-) Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.