General questions about install order and variants (Apache2, PHP5, PostgreSQL, mySQL)

Ryan Schmidt ryandesign at macports.org
Fri May 18 13:42:13 PDT 2007


Hi Bill. I've responded to much of what you written, and snipped the  
rest:

On May 18, 2007, at 12:57, Bill Hernandez wrote:

> Over time I've installed so many different versions software  
> (mostly Apache, php, pgsql, and a myriad of dependencies) in the  
> form of binaries & source installs on my workstation, and on the  
> servers that after a while I began to feel that I had no clue  
> what's what, or what was where, a big unruly mix and match...
>
> Over time there have been a number of binaries,  some better than  
> others. At first I tried binaries from marc liyanage, and others,  
> and the problem for me with the binaries was :
> ( 1 ) that you were always from moderately behind, to far behind  
> the current versions.
> ( 2 ) by their nature there's no choice on where, what options,  
> versions, etc are installed.

I started with Marc's PHP 4 package too. Maybe a year or two ago he  
did in fact start making the selection of some of the modules  
configurable through the Mac OS X Installer package. But I switched  
away from his packages when he was too busy to provide a PHP 5 package.

> Some people put a great deal of effort into creating these  
> binaries, and for the most part grateful as you were that someone  
> took the time, they never quite solved the problem.
>
> I began installing from source and found that to be an excercise in  
> total frustration. If you did a simple
> ./configure (with maybe a couple of simple options)
> ./make
> ./sudo make install
>
> things might install as advertised, but even then you might get  
> failures because you are missing some dependency, or you don't have  
> the correct version of openssl, or libxml, or some other such thing  
> and the install requires a later version. Not to even mention all  
> the warnings the compiler doles out about unsigned variables, etc.
>
> Sometimes when you get involved in what you feel is going to be a  
> 30 minute deal, and three days later at 3:15 am you've installed a  
> boat-load of dependent software, you're on the last leg and the  
> last one just refuses to compile with some cryptic message. You  
> begin to feel like you're inside a huge snowball rolling down the  
> mountain totally out of control, and there's a big giant Sequoia at  
> the bottom, and you just know it's got you name on it. Now you have  
> all this stuff installed that won't work and the only choice is to  
> re-format/erase the drive and restore from the latest backup to try  
> to get back to where you were 72 hours prior. Get that started and  
> go to bed, and hope the next day you'll feel better...

MacPorts is a great help here, because not only are portfiles already  
written, containing a set of configure options that are though to be  
useful, but MacPorts also keeps track of what each software package  
installed. If you want to just remove one of the software packages  
you installed with MacPorts, that's no problem, because it knows what  
files came with what ports so it can uninstall them safely. Also, all  
(well, most) of MacPorts goes into /opt/local, which means if you get  
totally screwed up, you just blast away /opt/local and everything  
(well, most of it) is gone, without having affected your OS in any way.

> I used to think I was reasonably safe behind the routers/firewalls,  
> and behind the OSX Server Firewalls until I began reading all the  
> daily vulnerability reports. In fact since I do this as a hobby  
> now, I shutdown all the servers the other day, and ordered a new  
> SonicWall TZ 180 Wireless, which supposedly will allow me to  
> encrypt all wireless access from my workstation or laptop at home.  
> This course that my wife took, and the "Sans OnDemand" stuff is  
> really worth the money. I used to think it would be nice to shell  
> out the multi-thousand dollars for Cisco, only to find out that it  
> doesn't matter what you have, it's all vulnerable, whether it's  
> Cisco, SonicWall, etc. the only hope we have is defense in depth.  
> For those of us that can write shell scripts, but are not in the  
> super-guru category, the opportunities that wrong flag or something  
> to that effect can produce is vulnerability issue is far too real.
>
> When I started doing this, if you were a programmer you could make  
> really good money. Now that so much of the programming has gone  
> overseas, and everybody and their brother writes some level  
> software, a course like this really wakes you up to the realization  
> that even the average user's computer is in great peril of being  
> used as a parking source to robots, hackers, worms, trojans, etc.  
> from which to launch their attacks. I used to think my stuff was  
> reasonably safe, being OSX based, and after this course I can see  
> that I've been in the land of OZ.

This is sort of a side issue, but I want to say that I feel  
completely safe with Mac OS X. I have used it since Public Beta was  
made available 7 years ago, have never had any kind of antivirus  
software on it, and have never had any virus or similar malware  
appear. I'm still not aware of any that's ever been written for Mac  
OS X! Sure, there has been the occasional news article about some Mac  
malware, but you have to actively work to get it installed on your  
machine, which nobody would do. And there have been a few issues in  
Mac OS X that would make it easier for unwanted software to end up on  
your machine, but Apple releases security updates to patch these  
problems.

The only time I got something unwanted on my machine was when I was  
directly connected to the cable modem (I didn't have a router at the  
time), and had ssh turned on, and had a testing account on my machine  
with username and password "test". Someone figured this out, logged  
in, and deposited a little program in my /tmp/ directory and ran it.  
But that was easy to spot and nuke, and I shouldn't have been so  
silly with my account name and password. And now I have a wireless  
router which does not forward any unrequested traffic to my machine.

> What a happy life I had before I bought my first TI 16  
> something_or_other, before the Commodore 64 and the Aplle II  
> computers. I can truthfully say that have sucked the very life out  
> of my soul, they were supposed to make life easier, supposed to  
> help us have more free time, huh ? OS X has made things a lot  
> better in some respects, and  worse in others. We don't suffer  
> crashes 3 times a day any more, that's good...

At the web site development company I worked for, it was  
approximately monthly that we decided we all needed to throw our  
computers out the window and open up a hot dog stand instead. We  
always seemed to come back to the office the next day though...

> Anyway, great as the Mac has been, Apple has done a very poor job  
> in providing help to upgrade the ancient versions of software that  
> come with the OS. They install dark age versions of all kinds of  
> things and never seem to have a path to upgrade any of this stuff.

I see the reason Apple does this though. New major versions of  
software frequently break things. Mac OS X 10.4.9 currently has PHP  
4.4.4, for example, in /usr/bin/php. PHP 5.2.2 is the currently  
recommended version from the PHP group. But if Apple were to silently  
upgrade PHP to 5.2.2, some of the user's PHP scripts, which were  
written to PHP 4 standards, could break, because some things did  
change between PHP 4 and PHP 5. Apple's thought process is probably  
that the user bought the product "Mac OS X Tiger" and is now writing  
or using other software that works with that product. If Apple  
suddenly changes the composition of that product midstream, that's  
not good. It's nice for developers to be able to say "My product  
works with Mac OS X Tiger" and that's all they need to say, as  
opposed to "My product works with Mac OS X Tiger thru 10.4.8, but  
10.4.9 broke it so please don't update yet." Then users would be more  
wary of installing system updates, and they wouldn't benefit from the  
other fixes included in that or subsequent updates.

Rather, Apple seems to have a history of making major updates to  
installed packages only at paid update points, at major OS releases,  
like the upcoming "Mac OS X Leopard." If someone goes to the trouble  
of purchasing this new product and installing it from disc, the user  
can expect that they would also need to upgrade other software to  
versions compatible with this new OS product. I have a feeling  
Leopard will include PHP 5, for example, and maybe even Apache 2.

Apple does update the installed packages more frequently if security  
concerns demand it. For example, I believe Tiger used to ship with  
PHP 4.3, but 4.4.4 must have addressed some security issues, so it  
was delivered in one of the monthly Security Updates.

> The user has to resort to things like FINK, etc. which puts stuff  
> in non-standard locations "/sw".

It's safer, really. This way Fink (in /sw) and MacPorts (in /opt/ 
local) are completely (mostly) isolated from the rest of the OS.  
Makes it much easier to disentangle later. If MacPorts (or you,  
manually) were to install on top of things provided by the OS, the OS  
might break in mysterious ways. Apple wouldn't be able to help you,  
because they never tried to do what you're doing. And other MacPorts  
users wouldn't be able to help you, because they don't know what else  
you've installed on your machine. Much better when things are cleanly  
separated as they are.

> In my opinion Apple is in a perfect position to know where  
> everything, and I mean EVERYTHING (pathwise, and dependency wise)  
> is located since they shipped it installed. So that even if they  
> are not going to handle the upgrades from Apache 1.3 on OSX, or  
> Apache 2.0.52 on OSX Server, or openssl .96d, or php 4.x to the  
> current versions, they should have some really good instructions on  
> how to replace and upgrade the existing outdated versions.  
> Shamefully they don't do anything of the sort...
>
> Perhaps if you are a home user with an iMac or a laptop you can get  
> by with Apache 1.3, (we're talking 4 or 5 years after Apache 2  
> became available) but certainly if you are shelling out a bunch of  
> money for OSX Server, Apple should be more forthcoming. Their  
> policy seems to be install it and forget. The user won't notice how  
> ancient this stuff is, and even if they do "We'll just tell them  
> that's not part of the 90 day support"...

First off, Mac OS X Server has included Apache 2 for many many years.  
Granted, it's not the default, and you can't use their pretty GUI to  
configure it, but it is there and can be used.

As to the support AppleCare provides, it's not really their job to  
help you with UNIXisms. AppleCare's job is to make sure Mom can check  
her email and make a photo book to send out at Christmas, Billy can  
video chat with his friends to talk about the movie they're going to  
make to show off their skateboarding skills, and Dad can make an  
impressive Keynote presentation so he can get promoted to Assistant  
Manager. And if you've paid $1000 for Mac OS X Server support, then  
their job is to help you with server management tasks using Apple  
tools. But that's about it. UNIX system administration requires many  
more additional skills, which AppleCare representatives do not  
receive any training for and are therefore in no position to impart  
to you.

> It's hard for me to believe that Apple is totally unconcerned with  
> this problem. In my opinion Apple's lack of interest in maintaining  
> the software packages they pre-install with the OS up to date is  
> shameful. I do not think they should be responsible for any user  
> installed stuff, but they should certainly provide a way to keep  
> software that comes with the OS up to date, such as the software  
> previously mentioned...

Apple does keep the OS up-to-date with regular software updates, and  
they are very easy to install; just click the Install button.  
However, IMHO in order to maintain software compatibility throughout  
the life of the OS product, they don't make major changes to the  
installed packages until the next major OS release.

> Before I install (Apache2, PHP5, PostgreSQL, mySQL) I wanted to  
> find out if there was a preferred way of doing this ?
>
> It seems like PHP should be last because of the --with APXS2 that  
> requires a path  to Apache, but in this case where MacPorts knows  
> where everything is going to be installed anyway maybe it doesn'  
> matter ?

Ports in MacPorts define what other ports they depend on, but the  
syntax does not at present allow it to specify what *variants* of  
that port would be ideal. So, for example, if you do not yet have  
mysql5 installed, and you install php5 +apache2 +mysql5, MacPorts  
will install apache2 and mysql5 for you first, but with the default  
set of variants. If you want to run a MySQL server, however, you will  
want to install mysql5 +server. So it would behoove you to install  
mysql5 +server first, then install php5 with the desired variants.  
Otherwise you will have to later forcibly uninstall the non-server  
mysql5 and then install mysql5 +server.





More information about the macports-users mailing list