Virtualmin Pro on Mac OS X Server?

73 posts / 0 new
Last post
#1 Thu, 05/25/2006 - 22:43
JoeSmith

Virtualmin Pro on Mac OS X Server?

Has anyone here installed virtualmin pro on an os x server?

I know that platform is not supported by the developers but I was just wondering if anyone knew if it could work (possibly with a little reconfiguring of course) and/or had done it.

Given that the original virtualmin and webmin/usermin etc. work fine on OS X I was looking at this virtualmin as a possible control panel for an OS X web server.

Any insight/experience into this would be appreciated. Thanks.

Wed, 06/21/2006 - 18:51
AdamStewart

Hey, I'm just wondering the same thing as well.
I'm just wondering if anyone has Tested Virtualmin Pro on OSX Server?

Thanks

Wed, 06/21/2006 - 19:06
Joe
Joe's picture

Hey guys,

It's in the plans, though the popularity (or lack thereof) of Mac OS X on hosting servers puts it below Debian and FreeBSD in order of priority. I reckon it'll be at least another month before we address Mac OS X officially.

--

Check out the forum guidelines!

Sun, 06/24/2007 - 17:28
Joe
Joe's picture

Oh, yeah, if you do want to run Virtualmin Professional on Mac OS X, we'll help. But it's not going to be automatic, by any means, and don't imagine for a second that the automated installation script will do anything good on a Mac.<br><br>Post edited by: Joe, at: 2007/06/24 17:30

--

Check out the forum guidelines!

Mon, 06/25/2007 - 13:09 (Reply to #4)
a.pieters

<b>Joe wrote:</b>
<div class='quote'>Oh, yeah, if you do want to run Virtualmin Professional on Mac OS X, we'll help. But it's not going to be automatic, by any means, and don't imagine for a second that the automated installation script will do anything good on a Mac.&lt;br&gt;&lt;br&gt;Post edited by: Joe, at: 2007/06/24 17:30</div>

Joe,

I installed Webmin,Usermin and Virtualmin on an iBook I am sitting on right now using the instructions from Kevin Capwell (http://www.webmin.com/osx.html) and all this went very smooth. Do you think installing Virtualmin Pro would be going smooth as well or is it somewhat more of a hassle to do?

One more question I have is were exactly the differences are using Virtualmin Pro and or using Webmin/Usermin and the GPL of Virtualmin!?

Thanks alot...
A. Pieters

ps: the video introduction on http://www.virtualmin.com/video-introduction.html - is not working anymore. Thought you might need to know.. ;)

Mon, 06/25/2007 - 13:20 (Reply to #5)
a.pieters

Since I can not edit my own post (get a &quot;Hacking attempt!&quot; warning!?) I had to add a quick reply to my previous question.

I would also like to know, if I am running Virtualmin Pro is it still necessary to install and use Webmin or Usermin?

Thanks for your help...
A. Pieters

Mon, 06/25/2007 - 20:35 (Reply to #6)
Joe
Joe's picture

<div class='quote'>I would also like to know, if I am running Virtualmin Pro is it still necessary to install and use Webmin or Usermin?</div>

On any system that the install.sh does not support, yes. Virtualmin is still just a module of Webmin (though a quite fancy one with more code than any other module, and a bunch of its own daemons and cronjobs and processes), so you do need Webmin installed before installing Virtualmin GPL or Professional--the install.sh takes care of that for you on supported systems (as well as installation of Apache, Postfix, Dovecot, Procmail, MySQL, PostgreSQL, PHP4 and PHP5, Ruby, the necessary libs for Perl and PHP to get things done, etc.). On an unsupported system, you will need to perform these installations yourself, depending on which services you plan to use (some folks never need PostgreSQL, for example).

--

Check out the forum guidelines!

Mon, 06/25/2007 - 20:32 (Reply to #7)
Joe
Joe's picture

Virtualmin Professional is no more difficult to setup than Virtualmin GPL, except in the area of enabling the PHP4+PHP5 support, mod_fcgid, and the per-user or per-domain spam and AV configuration options (which requires procmail, clamav, spamassassin to all be installed a configured correctly). Getting these working is probably an short afternoon, if you're familiar with UNIX software building and installation or have a source of good quality packages for them for Mac OS X.

Which brings me to the differences between GPL and Pro:

Install Scripts is the biggest difference. It allows automatic installation of 70+ applications into your websites (by both administrators and virtual server owners), including some that are monumentally hard to install (like SugarCRM) without Virtualmin's help.

Virtualmin Professional also has a complete API rather than the simplified one of GPL, so if you're developing apps or integrating Virtualmin into a billing or deployment system, you'll want Professional.

The afore-mentioned switchable PHP support is awesome, especially if you use a lot of PHP scripts or develop PHP apps--you can choose to use PHP 4 for most apps (because most run best on PHP4) and develop your own under PHP 5, and the two won't conflict. It's actually harder than it sounds to get this working right, particularly under suexec. (Unfortunately, 50% of the problem is solved by the install process, so you'd only get half of the advantage of Virtualmin, since you'd have to do the installers job manually.)

Pro is somewhat better supported, just because Jamie and I are a limited resource with many many demands on our time, and so we prioritize support queries for customers over GPL users. But only marginally so. And, bug reports for either product are treated with equal urgency, and both are maintained in the same codebase so GPL does not get neglected.

Thanks for the heads up on the missing video. I'll get the new one posted today.

--

Check out the forum guidelines!

Tue, 06/26/2007 - 20:05 (Reply to #8)
TonyShadwick

I have it running kinda/sorta on OSX Server, and could probably get you hooked up, but understand that support around here would be rather sketchy.

Tue, 06/26/2007 - 23:49 (Reply to #9)
Joe
Joe's picture

Tony's right about that one (sketchy support for platforms in use by very few users). We don't know enough about a platform to be really, really, useful until we've built the installer for it and have some users banging on it. FreeBSD has accidentally become reasonably well understood by us because we have a lot of really good FreeBSD users who've taught us what we need to know (and I now have a FreeBSD test install). We'll have to have a few of those same kind of bold pioneers on Mac OS X before we learn enough about it to offer good support. If being a bold pioneer isn't in your preferred job description, you might opt to wait a while! ;-)

--

Check out the forum guidelines!

Fri, 06/29/2007 - 23:45 (Reply to #10)
tspore

What if I provide a server for testing?
MY only thing is I run surgemail for my mail server. But other than that it should work right?
I will be adding another server. Really for me I run high end VPS servers for companies, and I can move my scheduled new oxserver purchase up a month, and get it for your guys to screw around with if you like. (I would like to instal a mail mirror on it though if possible.)

Sun, 07/01/2007 - 00:06 (Reply to #11)
a.pieters

Tony...

that would be very much appreciated! May I ask what do you actually mean by saying &quot;kinda/sorta&quot;? ;)

Like I wrote before i got webmin,usermin and virtualmin (GPL) up and running so far only on OSX workstation on my ibook. Is the installation on OSX Server much more difficult? Can you still make use of Server Admin and Workgroup Manager after the install? Hope you can help me out here...

Regards,
Tony

Sat, 07/21/2007 - 18:45 (Reply to #12)
tony.p

Looks like Dovecot has the same issue in Webmin/Virtualmin. Almost like Apache, service starts but Webmin and Virtualmin still won't show its running?!

[img size=461]http://www.virtualmin.com/components/com_fireboard/uploaded/images/Pictu...

Sun, 07/22/2007 - 14:20 (Reply to #13)
tony.p

Did some more testing with apache but still can not convince VMPro to show it as running. Here is a part of my error log file if that helps anybody?

<div class='quote'>[Sun Jul 22 15:07:54 2007] [notice] suEXEC mechanism enabled (wrapper: /usr/local/apache2/bin/suexec)
[Sun Jul 22 15:07:54 2007] [info] APR LDAP: Built with OpenLDAP LDAP SDK
[Sun Jul 22 15:07:54 2007] [info] LDAP: SSL support available
[Sun Jul 22 15:07:54 2007] [info] mod_fcgid: Process manager 2093 started
[Sun Jul 22 15:07:54 2007] [notice] Digest: generating secret for digest authentication ...
[Sun Jul 22 15:07:54 2007] [notice] Digest: done
[Sun Jul 22 15:07:54 2007] [notice] Apache/2.2.4 (Unix) configured -- resuming normal operations
[Sun Jul 22 15:07:54 2007] [info] Server built: Jul 21 2007 17:04:56
[Sun Jul 22 15:07:54 2007] [debug] prefork.c(991): AcceptMutex: sysvsem (default: sysvsem)
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1625): proxy: grabbed scoreboard slot 0 in child 2096 for worker proxy:reverse
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1724): proxy: initialized single connection worker 0 in child 2096 for (*)
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1625): proxy: grabbed scoreboard slot 0 in child 2095 for worker proxy:reverse
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1644): proxy: worker proxy:reverse already initialized
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1724): proxy: initialized single connection worker 0 in child 2095 for (*)
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1625): proxy: grabbed scoreboard slot 0 in child 2098 for worker proxy:reverse
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1644): proxy: worker proxy:reverse already initialized
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1724): proxy: initialized single connection worker 0 in child 2098 for (*)
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1625): proxy: grabbed scoreboard slot 0 in child 2097 for worker proxy:reverse
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1644): proxy: worker proxy:reverse already initialized
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1724): proxy: initialized single connection worker 0 in child 2097 for (*)
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1625): proxy: grabbed scoreboard slot 0 in child 2099 for worker proxy:reverse
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1644): proxy: worker proxy:reverse already initialized
[Sun Jul 22 15:07:54 2007] [debug] proxy_util.c(1724): proxy: initialized single connection worker 0 in child 2099 for (*)</div>

Pretty weird is also that VMPro shows ProFTPd FTP Server as &quot;running&quot; but Webmins System and Server Status still shows a red X!? That is the same btw. for SSH,Squid (at least for me)!?

Appreciate any help with this,
Tony

Sun, 07/22/2007 - 15:09 (Reply to #14)
tony.p

Geeeeee... I got it... damn!
It was the whole time just because of those process ID files (.pid).
In Apache module config it was on &quot;Work out automatically&quot; and should be &quot;/usr/local/apache2/logs/httpd.pid&quot; (*IF* you compiled Apache2 from source that is). That btw. solved the trouble in Webmin &quot;System and Server Status&quot; as well.

So OSX users better make sure you get the RIGHT location of the PID files. Sometimes it helps if you start the service/process first and THEN use mdfind to locate it in the shell.

Tony

Sun, 07/22/2007 - 22:42 (Reply to #15)
Joe
Joe's picture

Thanks for the update Tony. I was just about to tell you to find the PIDs and get them right in the module (that's always the cause of this trouble).

Webmin has a set of default configuration files, and depending on how you install software those files may be wrong. If you install from OS-provided packages, you'll never run into a problem like this, but on Mac OS X, there may not be suitable packages. (Though looking back over this thread, I probably would have just gone with the 2.0.54 package you mentioned...nothing really great appeared in 2.2 that wasn't in 2.0.54.)

--

Check out the forum guidelines!

Sun, 07/22/2007 - 23:17 (Reply to #16)
tony.p

Hi Joe,

I thought about switching to 2.0.54 cause I read about some security flaw on 2.2.4 already. Not sure if that would affect me but...

While I am here, maybe you could help me with this...

Drives in OSX are all having mount points in a subdir on the boot volume (i.e. /dev/disk3 = /Volumes/home). To switch to another disk in the shell I would do: cd /Volumes/home

Do you think this path (/Volumes/home) would work as &quot;docroot&quot; for suExec? Or should I just define the Apache data directory like this: --datadir=/Volumes/home - and let suExec handle the rest by itself?

<div class='quote'>Define as the DocumentRoot set for Apache. This will be the only hierarchy (aside from UserDirs) that can be used for suEXEC behavior. The default directory is the --datadir value with the suffix &quot;/htdocs&quot;, e.g. if you configure with &quot;--datadir=/home/apache&quot; the directory &quot;/home/apache/htdocs&quot; is used as document root for the suEXEC wrapper.</div>

ps: I think it would help me if I could see how the Apache is compiled that comes with VMPro. That would give me an idea what to include and what not before I compile mine again.

Thanks,
Tony

Mon, 07/23/2007 - 02:35 (Reply to #17)
Joe
Joe's picture

<div class='quote'>I thought about switching to 2.0.54 cause I read about some security flaw on 2.2.4 already. Not sure if that would affect me but...</div>

Maybe a problem, maybe not. Each of the trees (1.3, 2.0, 2.2) is maintained separately, and security fixes go into each. 2.2.x is not inherently more secure than 1.3.x or 2.0.x. Also, OS vendors and packagers may or may not add their own patches to the package they distribute. Most Linux distributions pick a version and stick with it throughout the life cycle of that distribution version (so CentOS 4 is on Apache version 2.0.52 and will never have anything else...but it has had 32 builds of that version of 2.0.52, though only about a dozen of those have been rolled out to the official repository, while the rest lived in testing). That 2.0.52 is just as secure and reliable as the latest 2.2.x version, and has all of the latest security fixes.

But I have no idea what the policies on Mac OS X look like, or who is responsible for keeping them secure and bug free.

--

Check out the forum guidelines!

Sun, 06/07/2009 - 07:14 (Reply to #18)
Joe
Joe's picture

<div class='quote'>Drives in OSX are all having mount points in a subdir on the boot volume (i.e. /dev/disk3 = /Volumes/home). To switch to another disk in the shell I would do: cd /Volumes/home

Do you think this path (/Volumes/home) would work as &quot;docroot&quot; for suExec? Or should I just define the Apache data directory like this: --datadir=/Volumes/home - and let suExec handle the rest by itself?</div>

Sure. It doesn't matter what the path is, as long as it matches where your virtual server homes live. If that's where they go on Mac OS X, then by all means compile Apache with suexec-docroot there.

<div class='quote'>ps: I think it would help me if I could see how the Apache is compiled that comes with VMPro. That would give me an idea what to include and what not before I compile mine again.</div>

Nothing fancy about our builds (we just take the stock build for the OS, change suexec docroot to /home, and rebuild it). For example the configure line on CentOS 5 is:

../configure \
--prefix=%{_sysconfdir}/httpd \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--with-mpm=$mpm \
--with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{suexec_docroot} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \

But you'll note there are loads of variables in there that get pulled from the rpmmacros for the OS in question. I don't even know what all of them are. ;-)

This also doesn't cover modules, as they get pulled in elsewhere in the build process. So honestly, I don't think this is actually going to be very helpful for you. You might start from the DarwinPorts package definition and modify it. As I said, that would be the equivalent of what I always do. (Another option would be to just rebuild suexec...but you still need an apache source tree for that, I think.)

--

Check out the forum guidelines!

Sun, 06/07/2009 - 07:14 (Reply to #19)
Joe
Joe's picture

<div class='quote'>Drives in OSX are all having mount points in a subdir on the boot volume (i.e. /dev/disk3 = /Volumes/home). To switch to another disk in the shell I would do: cd /Volumes/home

Do you think this path (/Volumes/home) would work as &quot;docroot&quot; for suExec? Or should I just define the Apache data directory like this: --datadir=/Volumes/home - and let suExec handle the rest by itself?</div>

Sure. It doesn't matter what the path is, as long as it matches where your virtual server homes live. If that's where they go on Mac OS X, then by all means compile Apache with suexec-docroot there.

<div class='quote'>ps: I think it would help me if I could see how the Apache is compiled that comes with VMPro. That would give me an idea what to include and what not before I compile mine again.</div>

Nothing fancy about our builds (we just take the stock build for the OS, change suexec docroot to /home, and rebuild it). For example the configure line on CentOS 5 is:

../configure \
--prefix=%{_sysconfdir}/httpd \
--exec-prefix=%{_prefix} \
--bindir=%{_bindir} \
--sbindir=%{_sbindir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--sysconfdir=%{_sysconfdir}/httpd/conf \
--includedir=%{_includedir}/httpd \
--libexecdir=%{_libdir}/httpd/modules \
--datadir=%{contentdir} \
--with-installbuilddir=%{_libdir}/httpd/build \
--with-mpm=$mpm \
--with-apr=%{_prefix} --with-apr-util=%{_prefix} \
--enable-suexec --with-suexec \
--with-suexec-caller=%{suexec_caller} \
--with-suexec-docroot=%{suexec_docroot} \
--with-suexec-logfile=%{_localstatedir}/log/httpd/suexec.log \
--with-suexec-bin=%{_sbindir}/suexec \
--with-suexec-uidmin=500 --with-suexec-gidmin=100 \
--enable-pie \
--with-pcre \

But you'll note there are loads of variables in there that get pulled from the rpmmacros for the OS in question. I don't even know what all of them are. ;-)

This also doesn't cover modules, as they get pulled in elsewhere in the build process. So honestly, I don't think this is actually going to be very helpful for you. You might start from the DarwinPorts package definition and modify it. As I said, that would be the equivalent of what I always do. (Another option would be to just rebuild suexec...but you still need an apache source tree for that, I think.)

--

Check out the forum guidelines!

Mon, 07/30/2007 - 07:26 (Reply to #20)
Joe
Joe's picture

The only way to tell Webmin where Perl is located is to update the #! path at the top of all the .cgi and .pl scripts that make up the Webmin code. Since there are a lot of these, a better solution is to just symlink /usr/bin/perl (or wherever Perl is now) to the location of the new Perl install.

--

Check out the forum guidelines!

Mon, 07/30/2007 - 10:17 (Reply to #21)
tony.p

Ok... because I was curious I went thru about a dozen cgi scripts inside the webmin folder I found that all of them use /usr/bin/perl wich does lead to my default and latest install of Perl (5.8.8). However, inside /usr/bin is another Perl version (5.8.6). But system default is def. 5.8.8

So should I just trash 5.8.6 and see what Webmin does? How come the cgi files are all using system default but under Others &gt; Perl Modules it shows 5.8.6?

Thanks
Tony

Mon, 07/30/2007 - 12:00 (Reply to #22)
tony.p

Ok, did some more research on the net about setrgid() and found this doc on apples site:

http://developer.apple.com/documentation/Darwin/Reference/ManPages/man3/...

Under COMPATIBILITY it reads: &quot;The use of these calls is not portable. Their use is discouraged; they will be removed in the future.&quot;

Not sure if this effects me now or not!? Nevertheless, I had another problem I was looking in today regarding and error in FileManager and it turned out that these two issues seem to be very much related.

Using FileManager in &quot;Master Admin&quot; mode does work without problems. In &quot;Server owner&quot; mode however I get a JavaIOExeption Error 500 loading this page: https://localhost:10000/file/list.cgi?dir=/&amp;rand=1185788610624&amp;t...

Now if I try to load this in my browser I get this Error in return:
&quot;Error - Perl execution failed
setrgid() not implemented at ./file-lib.pl line 188.&quot;

So I went to see if the same happens in Usermin 1.280 and voila... Usermin seems to run FileManager for any user just fine. No problem there!?

I am sorry if this thread seems to be such a drag and I am such a big pest but I hope you guys can help me solving this out. ;)

Thanks alot guys,
Tony

Mon, 07/30/2007 - 20:38 (Reply to #23)
Joe
Joe's picture

The fact that it works in Usermin is actually encouraging .. it means that a work-around may be possible.

You could test this by editing the script file/file-lib.pl under the Webmin root directory, and changing line 172 from :

$( = $u[3]; $) = &quot;$u[3] &quot;.join(&quot; &quot;, $u[3], &amp;other_groups($u[0]));

to

($(, $)) = ($u[3], &quot;$u[3] &quot;.join(&quot; &quot;, $u[3], &amp;other_groups($u[0])));

Then re-try using the file manager, and let me know if it works.

--

Check out the forum guidelines!

Mon, 07/30/2007 - 21:56 (Reply to #24)
tony.p

Hi Jamie,

ok, still get a JavaIOExeption but when going manually to:
https://localhost:10000/file/list.cgi?rand=1185825059065&amp;trust=

Now I get an Error in line 188:

Error - Perl execution failed
setrgid() not implemented at ./file-lib.pl line 188.

Line 188 looks alot like 172!?

$( = $u[3]; $) = &quot;$u[3] &quot;.join(&quot; &quot;, $u[3], @other);

Mon, 07/30/2007 - 21:59 (Reply to #25)
tony.p

How about like this? ;)
$(, $) = ($u[3], &quot;$u[3] &quot;.join(&quot; &quot;, $u[3], @other));

Mon, 07/30/2007 - 22:02 (Reply to #26)
tony.p

Bingo, FileManager works! Thanks alot...

Now back to my original problem with the Perl version. I thought this might have something to do with it!? No?

Tue, 07/31/2007 - 07:16 (Reply to #27)
Joe
Joe's picture

The only reason I can think of is if Perl was upgraded after Webmin was installed, and it wasn't restarted.

--

Check out the forum guidelines!

Tue, 07/31/2007 - 09:32 (Reply to #28)
tony.p

Yes Perl was upgraded afterwards, but I restarted Webmin already many times. Oh well, as long as it works now. ;)

Thanks alot for your quick solution to this problem Jamie
Tony

Sun, 08/19/2007 - 13:27 (Reply to #29)
tony.p

Hi guys,

I thought I continue in this thread cause this only effects OSX boxes I think anyway.

When I try to change user passwords in Usermin I get:

<div class='quote'>Error - Perl execution failed

setrgid() not implemented at /usr/local/usermin-1.280/proc/proc-lib.pl line 283.
</div>

Tony

Sun, 08/19/2007 - 18:32 (Reply to #30)
Joe
Joe's picture

That looks like the same problem - and the fix would be the edit that Usermin proc/proc-lib.pl in the same way as I suggested earlier in the thread.

--

Check out the forum guidelines!

Sun, 08/19/2007 - 18:50 (Reply to #31)
tony.p

Ah ok, thanks Jamie!

Sun, 08/19/2007 - 18:51 (Reply to #32)
tony.p

Oh and while I am on it.. I guess when updating webmin/usermin all these changes would have to be done again!? Right?

Mon, 08/20/2007 - 01:55 (Reply to #33)
Joe
Joe's picture

No, all future Webmin and Usermin releases will include these fixes.

--

Check out the forum guidelines!

Mon, 08/20/2007 - 12:55 (Reply to #34)
tony.p

Awesome, sorry I have not asked that before.. that goes for the ones that you just released? Usermin 1.290 and Webmin 1.360? Cause I am still running Webmin 1.351 and Usermin 1.280 I belive.

Tony

Mon, 08/20/2007 - 18:40 (Reply to #35)
Joe
Joe's picture

No, 1.360 and 1.290 don't include this fix - they came out before I fixed this problem.

--

Check out the forum guidelines!

Sun, 06/24/2007 - 17:28
Joe
Joe's picture

There are at least two or three people running Virtualmin Professional on XServe systems, and a dozen or two using Virtualmin GPL on Mac OS X. The automated installer doesn't support it--but the software itself does.

We're releasing a Solaris version of the installer soon, which will likely be very similar to the way things will work on Mac OS X (like Solaris, Mac OS X doesn't have packages worth speaking of, so it'll use .wbm packages for our stuff). FreeBSD will work the same way, and will have to come before Mac OS X (there are an order of magnitude more FreeBSD users using Virtualmin, and they're becoming restless), but by the time we've done two systems like that, adding a new one should be reasonably quick. As always take everything I say about OS support schedules with a huge grain of salt. They always take months longer than I expect them to. Operating Systems are stupid. All of them. ;-)

--

Check out the forum guidelines!

Thu, 07/19/2007 - 19:11
tony.p

Ok here I am now with a Pro license of Virtualmin.

As a little &quot;Test Setup&quot; I had Webmin/Usermin and Virtualmin GPL installed on this OSX Server 10.4.10 Box before. That included running MySQL/ PostgreSQL/ Apache+PHP5/ BIND/ Jabber/ Postfix pretty much flawless (I think), so I am quite confident I can make this work as well.

Now here are my first questions wich sound probably rather stupid considering I had it all running before already, but I want to make the right decissions from the start so bear with me. ;)

a) Since OSX is not a supported system for VMPro (yet), I have to install everything pretty much manually using WBMs, correct? Does anybody have any experience using DarwinPorts and their &quot;YUM&quot; or &quot;RPM&quot; package to install this?

b) Are there any more instructions about the manual install then what I found here? (http://www.virtualmin.com/component/option,com_openwiki/Itemid,48/id,vir...)

c) Do I have to follow a particular order to install the WBMs?

d) In Webmin I go to Webmin &gt; Configuration &gt; Webmin Modules &gt; Install
and choose &quot;From ftp or http URL&quot; right? How about dependencies? And should I grant access to everybody to those modules or only to the webmin root account?

Hope anybody could give me some advise on this.
Thanks alot for your help..

Tony

Thu, 07/19/2007 - 23:43 (Reply to #38)
Joe
Joe's picture

Hey Tony,

Awesome. We're happy to have you on board as an Early Adopter. And we'll look forward to working with you on the official port of Virtualmin for OS X, when the time comes (probably sometime after FreeBSD finally sees light of day).

<div class='quote'>a) Since OSX is not a supported system for VMPro (yet), I have to install everything pretty much manually using WBMs, correct? Does anybody have any experience using DarwinPorts and their &quot;YUM&quot; or &quot;RPM&quot; package to install this?</div>

Yes. Install from .wbm. I'd be quite suspicious of yum and rpm working well on Mac OS X without custom packages. DarwinPorts is pretty awesome (likewise fink), so I suspect we'll probably have to rely on it when we begin porting to FreeBSD, so it's a good place to get your non-Virtualmin specific packages.

There is the one tricky bit of recompiling Apache suexec with docroot /home, but otherwise, no serious issues I can think of.

<div class='quote'>b) Are there any more instructions about the manual install then what I found here? (http://www.virtualmin.com/component/option,com_openwiki/Itemid,48/ id,virtualmin_administrators_guide/#manual_installation_using_.rpm_.deb_or_.wbm_packages)</div>

No, that's about the extent of it. I know it sucks. I've been planning to update it for ages. It's just always seemed to take a back seat to working on the officially supported platforms. Though there are lots of hints strewn about in the FAQ and in the docs about how we set things up--which would be the right way to do things if you want to be able to smoothly switch over to the &quot;official&quot; install when it becomes available.

The summary of the important points would be:

MTA: Postfix
MDA: Procmail delivering to Maildir/ in $HOME
POP: Dovecot
WWW: Apache with suexec docroot /home

Apache user (apache/nobody/I dunno what on Mac OS X) is automatically added to the virtual server owner group, and home permissions set to 750 (this locks homes down nice and tight...but it doesn't matter if you only have trusted users on your system). Since Mac OS X is based on a BSD core, this might be problematic. Secondary groups on FreeBSD are limited by default to something stupidly low like 16, whereas on modern Linux it seems to be unlimited (linked lists, look into them sometime, BSD developers...really). We can probably rebuild the FreeBSD kernel to fix this limitation, but I doubt such a rebuild is feasible for Mac OS X.

--

Check out the forum guidelines!

Fri, 07/20/2007 - 07:56 (Reply to #39)
tony.p

Hi Joe,

thanks for helping me out here. Much appreciated! Will do what you suggested and keep you posted on how things go.

I have one more question before I continue with my install. How important is the PARTITION part (described in the manual) if I do a manual install? Because I would like to set it up this way.

I have an XServe with 3 HDs - 1x80GB, 2x300GB (mirrored).
Now I would like to use the 80GB HD strictly for system data, user mails,... small things in general (don't know if this is clever or not?!)

The mirrored drive(s) should be then used for hosting and should contain the users home directories.

I have no other partitions setup (yet) and would be glad if I don't have to. ;)

Tony

Fri, 07/20/2007 - 08:32 (Reply to #40)
Joe
Joe's picture

<div class='quote'>Now I would like to use the 80GB HD strictly for system data, user mails,.</div>

User mail should go in the users home directory in a Maildir. Your future happiness as a system administrator depends on it. I'll also point out that most users consider their email the single most important bit of data they have. Losing it for them is viewed as the biggest crime a sysadmin can commit. ;-)

So, put mail on the mirrored disks along with the other hosting related stuff.

System can go on the 80, no problem. Back it up periodically, and you'll be fine.

So, yes, make the big disks into /home (or whatever passes for /home on a Mac OS X server...but just remember that if it isn't /home, you'll need to modify a few configs, and build Apache suexec with the right suexec docroot).

--

Check out the forum guidelines!

Fri, 07/20/2007 - 18:37 (Reply to #41)
tony.p

Hi Joe,

thanks for the advise on the mails, will keep that in mind. ;)

When you say &quot;...remember that if it isn't /home, you'll need to modify a few configs...&quot; do you actually mean to name the drive &quot;home&quot; or a directory on the drive?

Ok, now so far I have been able to install VMinPro V3.43 with Apache, Bind, Postfix, ProFTPd and MySQL. Now before I start up Apache and try to create my first virtual domain I have some more questions.

a) VMinPro allows you to run PHP4+5 simultaneously? What exactly do I have to do to set it up like that? Wich packages do I need? Could you walk me thru this process?

b) Where can I adjust the HOME directory and set it to my &quot;home&quot; drive/directory?

Thanks,
Tony

Fri, 07/20/2007 - 19:49 (Reply to #42)
Joe
Joe's picture

<div class='quote'>a) VMinPro allows you to run PHP4+5 simultaneously? What exactly do I have to do to set it up like that? Wich packages do I need? Could you walk me thru this process?</div>

This is actually one of the trickier bits of what Virtualmin Pro does...and a big part of it is in the packaging (though Debian/Ubuntu have the packages already made correctly...it took ages to get it working right on CentOS and Fedora). If DarwinPorts has PHP4 and PHP5 that can co-exist without any filename or path clashes, you're halfway there. The other half is mod_fcgid.

If you have all of those installed correctly Virtualmin should detect all of the bits and make them accessible (php4 and php5 need to be in the path, and built with fcgi and cgi support). mod_fcgid just needs to be loaded into Apache.

<div class='quote'>b) Where can I adjust the HOME directory and set it to my &quot;home&quot; drive/directory?</div>

It's in the Virtualmin &quot;Module configuration&quot;, in the &quot;Defaults for new domains&quot; section, option labeled &quot;Home directory base&quot;.

Again, this one is where lots of tricky stuff can come up. Apache suexec needs to know about it, too. Mac OS X also seems to be quite the trickster when it comes to user accounts and homes...and I don't know enough to tell you what to look out for.

--

Check out the forum guidelines!

Fri, 07/20/2007 - 20:49 (Reply to #43)
tony.p

Hi Joe,

<div class='quote'>This is actually one of the trickier bits of what Virtualmin Pro does...and a big part of it is in the packaging (though Debian/Ubuntu have the packages already made correctly...it took ages to get it working right on CentOS and Fedora). If DarwinPorts has PHP4 and PHP5 that can co-exist without any filename or path clashes, you're halfway there. The other half is mod_fcgid.</div>

Could you be a bit more specific with this? Do I need to compile both PHP Packages as CGI? Or only one and the other as module? Both are available from Fink as well as Darwinports.

I do have another OSX development Server here running Apache and 2 virtual server. One is running PHP4 as CGI (with FastCGI) and the other runs PHP5 as module. Work perfectly fine it seems.

Thanks for your help,
Tony

Fri, 07/20/2007 - 21:22 (Reply to #44)
tony.p

Oh and before I forget to ask.. does it matter wich Apache version I use for this to work? Currently using 1.3.33

Tony

Sat, 07/21/2007 - 00:57 (Reply to #45)
Joe
Joe's picture

Yes, Apache 1.3 is missing some stuff. mod_fcgid doesn't work with it (mod_fastcgi does, but the syntax is utterly different...I think the mod_fastcgi code is still in Virtualmin, but I don't think it ever worked right, because of bugs in mod_fastcgi on Apache 2.0, so I wouldn't bet on it actually working). So, yes, if you want php4 and php5, mod_fcgid, and suexec, you definitely want Apache 2.

--

Check out the forum guidelines!

Sat, 07/21/2007 - 01:01 (Reply to #46)
Joe
Joe's picture

<div class='quote'>Could you be a bit more specific with this? Do I need to compile both PHP Packages as CGI? Or only one and the other as module? Both are available from Fink as well as Darwinports.

I do have another OSX development Server here running Apache and 2 virtual server. One is running PHP4 as CGI (with FastCGI) and the other runs PHP5 as module. Work perfectly fine it seems.</div>

We like to run both under mod_fcgid. That brings them under control of suexec, and makes it possible for both to run identically. Permissions are the same (and match the user), and loads of other bits are simplified or made more secure or both. I don't like the &quot;run mod_php for one and CGI for another&quot; solution to this problem much. It's just so inconsistent for your users and you. mod_fcgid is nearly identical in performance to mod_php (faster in some cases, slower in others, but never by much) and has all of the benefits of CGI (mainly suexec without wacky hacks like suphp).

--

Check out the forum guidelines!

Sat, 07/21/2007 - 15:25 (Reply to #47)
tony.p

Ok Joe thanks for clarifying this for me.

Since Apache 1.3.x will not work with mod_fcgid I tried to get Apache 2.x up and running. OSX Server actually comes equipped with 2 versions of Apache [1.3.33 &amp; 2.0.54] but I decided to install 2.2.4 using MacPorts [former DarwinPorts]. Now, the install went smooth and I reconfigured the Apache server settings in Webmin. So far so good...

If I start Apache in Webmin I get this error:
Failed to start apache : Apache does not appear to be running :
httpd: Could not reliably determine the server's fully qualified domain name, using machostlinkeu.local for ServerName

So I thought well I change the server hostname for the default server from automatic to localhost. Well and then I get this:
Failed to start apache : Apache does not appear to be running :

No other error message. So I tried &quot;apachectl start&quot; directly in the shell. No error messages and apache starts normally.

Funny enough though, clicking &quot;start Apache&quot; in Webmin throws the error, however it DOES start Apache. Virtualmin and System and Server Status on the other hand don't show that Apache is started!?

I changed then the Webmin Apache config to use the 2.0.54 Version that comes with OSX Server, but the same this happens!? :[

Could you tell me how I can solve this?

Thanks,
Tony

Mon, 07/23/2007 - 13:52
tony.p

You are right, with all those variables in there. :( Oh well then let me try to do it on my own.

Ok, now I compile it with datadir and suexec docroot both set to &quot;/Volumes/home/www&quot;.
No problem so far and suexec -V shows the path I set. But now I have trouble compiling mod_fcgid even after fixing build path inside the Makefile script. &quot;make&quot; does work after patching the path but &quot;make install&quot; doesn't seem to like my build directory outside of the main Apache2 dir. Why is BUILD inside the hosting dir now anyway?

GRR.. HELP!!! :D ;)

Do I actually have to set the datadir to the same path as docroot when compiling Apache2? Virtualmin shouldn't care where the DEFAULT/LOCAL web directory is located right? hmm..

Tony

Mon, 07/23/2007 - 20:13 (Reply to #49)
Joe
Joe's picture

<div class='quote'>Ok, now I compile it with datadir and suexec docroot both set to &quot;/Volumes/home/www&quot;.</div>

Not quite right. Leave off the www for suexec docroot (probably).

Presumably Virtualmin is going to be creating users in /Volumes/home, and not /Volumes/home/www? If so, the docroot must be the higher level directory. Datadir doesn't matter, though it probably does need to be set (and it doesn't need to be the same as suexec docroot...they aren't really tied together in any meaninful way). It's a historic relic from the pre-VirtualHost days. We flip Apache into VirtualHost mode, and explicitly set the DocumentRoot for every virtual server.

<div class='quote'>Do I actually have to set the datadir to the same path as docroot when compiling Apache2? Virtualmin shouldn't care where the DEFAULT/LOCAL web directory is located right? hmm..</div>

So the answer to this is a definitive &quot;No&quot;. They aren't related. docroot needs to be where you put your homes. Datadir is whatever you want it to be. But neither is related to mod_fcgid, as far as I know. But, then I build all of this stuff via rpmbuild or debuild, so I haven't built Apache manually in years. ;-)

--

Check out the forum guidelines!

Tue, 07/24/2007 - 11:12 (Reply to #50)
tony.p

<div class='quote'>Not quite right. Leave off the www for suexec docroot (probably).

Presumably Virtualmin is going to be creating users in /Volumes/home, and not /Volumes/home/www? If so, the docroot must be the higher level directory.</div>

Yes that was at least the default setting (well it was &quot;/home&quot; wich would have not worked for me as well since /home is in my case a different volume). I changed the home directory in the VM Module to &quot;/Volumes/home/www&quot; because the volumes name is &quot;home&quot; and I would like to have a directory inside it called &quot;www&quot; where VM should then create it's subdir tree(s). Anything wrong with this? :|

Tony

Pages