On Jan 4, 2010, at 4:00 PM, Ryan Schmidt <[email protected]> wrote:

On Jan 4, 2010, at 17:16, Scott Haneda wrote:

Since I updated to snow, that meant a new MAMP install, along with all my other ports. I decided, no better time to document the process.

http://dl.dropbox.com/u/340087/drops/01.04.10/mamp/mamp-tutorial.html

Sorry, I haven't had time to read it yet, but just wanted to quickly say...

I hope you get a chance to. It's close to being modular in writing. In that, as you desire, I could pull it apart into sections, one for each component.

For example, the MySql tutorial stands on it's own rather well. As does the Apache2 part of it.


I am doing things a little different than the MAMP page for MP state to do, though I explain my reasons. For example, I am not sure why phpmyadmin is getting into /opt/local/www unless it is for preparation for htdocs going away one day when Apache 2's layout gets worked on.

The htdocs directory might get moved and/or renamed but can't go away because there needs to be a directory for the document root and /opt/local/www is too general to be it;

Why? Why is this too generic? It is just a location. I run hundred of virtual hosts all pointed to /opt/local/www/clients/lastname.firstname

the doc root needs to be a subdirectory of www.

Ok. I think I get what you are saying. You don't want localhost loading a dir listing of everything in www, as that would break any traditionally built apps that rely on docroot being defined in a virtual host container.

I work towards this in my tutorial.

A properly-designed web app should not go directly into the doc root; a properly-designed web app should contain a directory which should be served directly by the web server and a bunch of other directories for classes and libraries which the web server should never ever be able to see directly. For such web apps, it would be appropriate to install them elsewhere (/opt/local/www directly, like phpmyadmin and some other ports now do, or better yet /opt/local/www/ apps or something) and install a symlink to their docrootable directory in the actual docroot. phpmyadmin and many other webapp ports that we have *are* designed to go directly into the docroot so for them it doesn't much matter, but I like the idea of all web apps installing into the same place (e.g. /opt/local/www/apps). Months ago I touched a couple web app ports to change the install directory from /opt/local/www/htdocs to /opt/local/www but then I stopped because I wasn't sure I liked that and there were so many ports and each port had so many things wrong with it and hadn't been touched in ages and I couldn't decide what directory I wanted them to go in anyway.

Hmm. Well. I honestly would not touch it until the layout of Apache 2 changes. Your creating 2 sets of work if you do.

I'm not sure I follow the significance of your position on the importance of the httpd.conf docroot.

What is wrong with http://localhost/phpmyadmin working. This would mean it lived in /opt/local/www/apps

Then in /opt/local/www I could put /opt/local/www/clientname/stupid- site.com which would be set by a virtual host with it's own docroot.

So the only traversable installs that http://localhost could hit would be in that apps directory.

But that apps directory is not really needed. It's nice for organization, but we could move one up that tree and dump to www and I think it's fine.

I tried to use www as docroot. No matter what, I could not get php to write to any directory inside www.

Pre 10.6 I had a lot of virtual hosts that lived in /opt/local/apache2/ htdocs/ which all worked.

I had /opt/local/apache2/htdocs/wiki which was resolved with /etc/ hosts as http://wiki

I moved that to the new www location. Keep in mind, phpmyadmin created that www directory.

My wiki is all file based, so permissions are important. I opened my virtual hosts conf and replaced the htdocs path to www and no sites that did file reads or writes worked.

I even did:
sudo chmod -R 777 /opt/local/www
sudo chown -R www:www /opt/local/www

Still nothing.

sudo mv /opt/local/www /opt/local/www.bad

sudo mkdir /opt/local/www
sudo mv /opt/local/www.bad/* /opt/local/www

That fixed it. I then went back and set permissions a little more sanely than 777.

What does phpmyadmin do when making www that php does not seem to be able to write past it? This may even break phpmyadmin if writes files.


I certainly ran into a few gotcha's here and there that I believe a new to MacPorts uses is going to hit. I also think MAMP is one of the most attractive reasons a user is going to come along to MacPorts so it should be presented as good as possible.

I do not know how well this will incorporate into the wiki, I just wrote it in html, and I also took some liberties to make it rather verbose. The wiki may not be a good home for it.

Looking for suggestions, pointers, and recommendations on what to do with it, aside from "shove it into a blog and let google have it's way with it".

All in all, it took about 2 days two write up, and certainly could use a second set of eyes, and ideally, someone willing to move /opt/ local aside and make MP think it is a new install. They could then follow these steps and see how it all works out for them.

Thanks for any comments.  Look forward to hearing any feedback.

I would not recommend adding your document to the wiki as a new page, since as you know we already have a MAMP howto in the wiki. I would rather see the existing document improved or (if appropriate) replaced than have two competing documents.

Me too. But what does the user need? The user need AMP installed and working as easily as possible. If these are really all UB, I may fire up that evil bastard package maker, load up php with every bit any local dev may need, and just put stuff where it needs to go.

If you read my tutorial, there were too many gotchas. MySql is certainly confusing. Php will not talk to MySql out of the box.

What can we do to fix this? The socket issue with MySql is one such problem. Is altering php.ini the right way even? Why can't we build php to find it and remove that entire step?

Having multiple competing documents for a given topic is a recurring problem in MacPorts documentation and I would like to avoid further exacerbating it.

Ok. Me too. I don't think the fragmentation in the documentation can be solved until all involved ports are installing in a way that works for 99%.

Right now, I took liberties in my tutorial to work around that. Suggestions?

Actually I would prefer separate documentation for each piece of software. I have referred a number of MySQL users to the MAMP document for setup information, who then expressed the opinion that they would never have thought to look in a document titled "MAMP" when all they wanted to know was how to set up MySQL. We can still have a MAMP page, but it would simply become a set of pointers to the Apache, MySQL and PHP setup pages. I would probably delete most of the phpMyAdmin setup information and refer users instead to the existing phpMyAdmin documentation on their web site.

I think my tutorial works as a starting point for just that. The Mamp pages just are not going to get a developer up and running. A developer with sysadmin experience it may. That's where we need to be working in my opinion.

Is there any reason we can not have port install mamp which just depends on each port? I would take liberties to reinplace php.ini to fix it, edit httpd.conf, and run the commands needed to make it all work. Or is this just too prone to breakage?

Thanks for the comments. Most appreciated.
-- Scott
(Sent from a mobile device)
_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users

Reply via email to