Merry Christmas to my family, friends and colleagues. See you all next years, folks!
:)
Wieder Weihnachten
Frohe Weihnachten an meine Familie, meine Freunde und Kollegen, und einen guten Rutsch. Bis im nächsten Jahr dann!
:) <- Lutz
./configure --prefix=/usr/localThat was it already. You can check over by typing the following:
make
sudo make install
/usr/local/bin/ruby -vAnd you should see something like this:
ruby 1.8.2 (2004-12-25) [powerpc-darwin7.8.0]Now we just need to set our shell’s path environment variable so that it will call the new version of Ruby first, rather than the Apple-distributed version. Use a text editor to create or edit a hidden file in our home folder named .bash_login (note the preceding “.”). Enter the following two lines into the file:
PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"Now close our existing Terminal window and open a new one in order to “refresh” the newly set path. In the new window, type the following line:
export PATH
ruby -vIf you see something else than in the first run – namely an older version (say 1.6.8), we haven’t set our path correctly. This is important for the next steps, so make sure it’s right.
tar xzvf rubygems-0.8.8.tgzNow you should get a message reporting that you have successfully built Rubygem. Type gem -v at the prompt to check over.
cd rubygems-0.8.8
sudo ruby setup.rb
sudo gem install railsAnswer yes by typing “Y” when prompted to all of the dependencies it asks about.
tar xzvf fcgi-2.4.0.tar.gzNow we need to install the FastCGI bindings for Ruby:
cd fcgi-2.4.0
./configure --prefix=/usr/local
sudo make
sudo make install
tar xzvf ruby-fcgi-0.8.5.tar.gzThen, just to make sure that Rails knows about and can access these libraries, we’ll install them to Rails with Gems:
cd ruby-fcgi-0.8.5
/usr/local/bin/ruby install.rb config --prefix=/usr/local/
ruby install.rb setup
sudo ruby install.rb install
sudo gem install fcgiThe last step in enabling FastCGI under Apache is to compile and install the mod_fastcgi Apache module:
tar xzvf mod_fastcgi-2.4.2.tar.gzOpen up the main apache configuration file located in /etc/httpd/httpd.conf, and add the following lines:
cd mod_fastcgi-2.4.2
apxs -o mod_fastcgi.so -c *.c
sudo apxs -i -a -n fastcgi mod_fastcgi.so
In order to enable FastCGI for the Rails application, edit the .htaccess file in the public folder, and find the line that reads:[IfModule mod_fastcgi.c] [/IfModule]
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
RewriteRule ^(.*)$ /dispatch.cgi?$1 [QSA,L]Change it to:
RewriteRule ^(.*)$ /dispatch.fcgi?$1 [QSA,L]Restart Apache with he sudo apachectl graceful command, and we’re up and running with FastCGI.
tar xzvf mysql-ruby-2.5.2.tar.gzThe previous command expects that our MySQL installation is under /usr/local/mysql. If it’s somewhere else, just specify the location in the command above.
cd mysql-ruby-2.5.2
/usr/local/bin/ruby extconf.rb --with-mysql-dir=/usr/local/mysql
make
ruby -I. ./test.rb hostname username passwordIf that worked, we’re finally ready to install the API:
sudo make installWe can now get a connection to a MySQL server in our Ruby script like this:
require 'mysql'I really recommend Ruby. The language is very easy understandable and consistent. Check out these links, that I bookmarked for myself:
con = Mysql.new(
"myserver.domain.com",
"username",
"password",
"mydatabase"
)
./configure --prefix=/usr/localDas war es schon. Testen kann man das ganze mit folgendem Kommando:
make
sudo make install
/usr/local/bin/ruby -vMan sollte folgendes quittiert bekommen:
ruby 1.8.2 (2004-12-25) [powerpc-darwin7.8.0]Damit die Shell unser neues Ruby aufruft, statt die alte Apple-Version, müssen wir die "path environment variable" ändern, und zwar in dem versteckten File .bash_login in unserem Root-Verzeichnis. die folgenden 2 Zeilen müssen per Texteditor hinzugefügt werden:
PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"Jetzt schließen wir das Terminal-Fenster und öffnen ein Neues, damit die Variable auch geupdatet wird. Nun mal folgendes Kommando eintippen:
export PATH
ruby -vMan sollte dieselbe Quittierung erhalten, wie vorher. Wenn nicht (z.B. eine ältere Versionnummer), dann ist irgendetwas schiefgelaufen.
tar xzvf rubygems-0.8.8.tgzNun sollte eine Erfolgsmeldung auftauchen. Mit dem Befehl gem -v kann man das Ganze nochmal prüfen.
cd rubygems-0.8.8
sudo ruby setup.rb
sudo gem install railsZu den folgenden Fragen immer "Y" angeben. Damit ist die Installation eingentlich abgeschlossen. Aber Moment: das ganze ist ziemlich langsam! Das liegt daran, daß Ruby eine interpretierte Sprache ist. Apache muss jedesmal den Interpreter starten. Dies lässt sich aber glücklicherweise beschleunigen mit FastCGI (download 1, 2, 3).
tar xzvf fcgi-2.4.0.tar.gzUnd nun die FastCGI bindings für Ruby:
cd fcgi-2.4.0
./configure --prefix=/usr/local
sudo make
sudo make install
tar xzvf ruby-fcgi-0.8.5.tar.gzMit folgendem Befehl stellen wir sicher, daß Ruby auch problemlos auf diese Libraries zugreifen kann:
cd ruby-fcgi-0.8.5
/usr/local/bin/ruby install.rb config --prefix=/usr/local/
ruby install.rb setup
sudo ruby install.rb install
sudo gem install fcgiNun muss auch noch das entsprechende Apache Modul installiert und konfiguriert werden:
tar xzvf mod_fastcgi-2.4.2.tar.gzDie Apache-Konfigurationsdatei liegt unter /etc/httpd/httpd.conf. Hier müssen folgende Zeilen eingefügt werden:
cd mod_fastcgi-2.4.2
apxs -o mod_fastcgi.so -c *.c
sudo apxs -i -a -n fastcgi mod_fastcgi.so
Um FastCGI auch für Rails-Anwendungen freizuschalten, muss in der .htaccess-Datei im Ordner Public die folgende Zeile:[IfModule mod_fastcgi.c] [/IfModule]
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
RewriteRule ^(.*)$ /dispatch.cgi?$1 [QSA,L]in
RewriteRule ^(.*)$ /dispatch.fcgi?$1 [QSA,L]geändert werden. Jetzt nur noch Apache mit sudo apachectl graceful neustarten.
tar xzvf mysql-ruby-2.5.2.tar.gzWenn MySQL schon läuft, kann man mal folgenden Test machen:
cd mysql-ruby-2.5.2
/usr/local/bin/ruby extconf.rb --with-mysql-dir=/usr/local/mysql
make
ruby -I. ./test.rb hostname username passwordWenn das funktioniert hat, dann einfach installieren mit:
sudo make installRuby greift auf MySQL mit den folgenden Befehlen zu:
require 'mysql'Ich kann Ruby wirklich empfehlen. Hier noch ein paar Links die ich mir selber als Ruby-Lesezeichen angelegt habe...
con = Mysql.new(
"myserver.domain.com",
"username",
"password",
"mydatabase"
)
Bloglines -- 19.49%;
NetNewsWire -- 10.07%;
iTunes -- 9.53%;
Firefox Live Bookmarks -- 7.25%;
iPodder -- 7.17%;
My Yahoo -- 6.68%;
FeedDemon -- 4.23%;
NewsGator Online -- 3.83%;
Reader not identified -- 3.07%;
Pluck -- 2.07%;
SharpReader -- 1.91%;
iPodderX -- 1.77%;
Thunderbird -- 1.75%;
Safari RSS -- OS X Tiger -- 1.75%;
LiveJournal -- 1.44%;
NewsGator Outlook Edition -- 1.27%;
Apple CFNetwork Generic Client -- 1.21%;
RSS Bandit -- 0.99%;
Opera RSS Reader -- 0.90%, and
Sage -- 0.82%.
Bloglines -- 19.49%;Ziemlich kleinteilig, hm? Heißt, dass der Feed-Reader Markt sicherlich noch einiges an Konsolidierung und technologischen Verbesserungen sehen wird. Marketing-Fachleute sehen hier immer noch eine Menge Raum für "gebrandete"/firmenspezifische Reader (hehe, das geht an Dich, Yves)...
NetNewsWire -- 10.07%;
iTunes -- 9.53%;
Firefox Live Bookmarks -- 7.25%;
iPodder -- 7.17%;
My Yahoo -- 6.68%;
FeedDemon -- 4.23%;
NewsGator Online -- 3.83%;
Reader not identified -- 3.07%;
Pluck -- 2.07%;
SharpReader -- 1.91%;
iPodderX -- 1.77%;
Thunderbird -- 1.75%;
Safari RSS -- OS X Tiger -- 1.75%;
LiveJournal -- 1.44%;
NewsGator Outlook Edition -- 1.27%;
Apple CFNetwork Generic Client -- 1.21%;
RSS Bandit -- 0.99%;
Opera RSS Reader -- 0.90%, and
Sage -- 0.82%.
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM startEnter your OS X-admin-password, if necessary. Then press Ctrl-D (not Apple-D!) to leave the shell. Hopefully MySQL should now be initialised -- which actually was not happening in my case. To find out if you were succesfull, just type
topinto your Terminal-bash. With this you request a listing of all running processes. The server is not yet active, if you can't find any MySQL-entry in this list. Another issue could be: the server started, but you get errors like "can't connect to tmp/mysql.sock". Now, this temporary item should be generated automatically when MySQL is booted.
mysql.server stopThen try the following procedure (again in the bash):
shell> cd /usr/local/mysql shell> sudo ./bin/mysqld_safeNow MySQL should be up and running. You should get the following message:
(Enter your password, if necessary)
(Press Control-Z)
shell> bg
(Press Control-D or enter "exit" to exit the shell)
mysqland see what happens. You should see the following lines:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
create database your_name;MySQL should now respond with "Query OK, 1 row affected (0.00 sec)".
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'This should be accepted with the same message as above. BTW: you can leave the MySQL-Monitor by just typing "quit".
(press return)
IDENTIFIED BY 'chosen_password' WITH GRANT OPTION;
SET PASSWORD FOR user@localhost = OLD_PASSWORD('your_password');Now everything should be smooth...
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM startu.U. müsst ihr nun euer OS X-Admin-Password eingeben. Danach Ctrl-D (nicht Apfel-D!) drücken, um die Shell zu verlassen. Mit ein bischen Glück fährt MySQL nun hoch -- war bei mir leider nicht so. Falls im Terminal keine weiteren Hinweise über MySQL erscheinen, könnt ihr einfach mal
topim Terminal-bash eintippen. Dann erhaltet ihr eine Liste aller laufenden Prozesse. Wenn hier der MySQL-Prozess nicht aufgeführt wird, läuft der Server noch nicht.
mysql.server stopDanach probiert es mal mit folgender Prozedur, wiederum im Bash:
shell> cd /usr/local/mysql shell> sudo ./bin/mysqld_safeNun sollte MySQL aber auf jeden Fall laufen. Quittiert bekommt ihr das mit folgender Zeile: "Starting mysqld daemon with databases from /usr/local/mysql/data". Nun einfach mal
(OS X-Admin-Password eingeben)
(Ctrl-Z drücken)
shell> bg
(Ctrl-D drücken, um die Shell zu verlassen)
mysqleintippen, und schauen was passiert. Wenn alles geklappt hat, solltet ihr folgende Meldung erhalten:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
create database datenbank_name;MySQL meldet sich dann zurück mit so etwas wie "Query OK, 1 row affected (0.00 sec)". Nun richten wir einen Admin-Benutzer für diese Datenbank ein, und zwar mit dem folgenden Kommando:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'Auch das wird euch wie oben quittiert. Verlassen kann man den MySQL-Monitor übrigens mit einem einfachen "quit".
(Return drücken)
IDENTIFIED BY 'das_neue_passwort' WITH GRANT OPTION;
SET PASSWORD FOR user@localhost = OLD_PASSWORD('mein_passwort');Dann sollte es klappen...
#AddHandler cgi-script .cgiand delete the #, now save. Apache is now ready to be started. We need a single command-line in the terminal-bash to do this. Type in:
#LoadModule php4_module
#AddModule mod_php4
sudo apachectl gracefulEventually bash will ask you to enter your OS X admin-password to execute the command. Then (hopefully) Apache is booted, and you'll receive some information about that. Now you can run PHP-scripts. They need to be located in your folder /Library/Web-Server/Documents, to be found under 127.0.0.1/ or localhost/ with your favorite browser.
and save them in /Web-Server/Documents/ (for example as info.php). Open a browser, type in 127.0.0.1/info.php, enjoy...
<?php
phpinfo();
?>
<IfModule mod_php4.c>
php_admin_flag register_globals on
</IfModule>
#AddHandler cgi-script .cgiDann die Datei abspeichern. Jetzt können wir den Apache-Server starten, dazu müssen wir eine Kommandozeile im Terminal-Bash eintippen. Den Terminal findet ihr unter Programme/Dienstprogramme. Im entsprechenden Eingabefenster folgende Zeile eingeben:
#LoadModule php4_module
#AddModule mod_php4
sudo apachectl gracefulUnter Umständen müsst ihr euer OS X-Admin-Password eingeben, bevor der Befehl ausgeführt wird. Dann bekommt ihr (hoffentlich) das Hochfahren des Servers quittiert. Das war es schon, nun können PHP-Scripte ausgeführt werden. Diese müssen im Ordner /Library/Web-Server/Documents/ abgelegt werden und lassen sich im Browser mit eurer localhost-Adresse aufrufen: 127.0.0.1/ oder localhost/.
Diese Zeilen in einen Texteditor einfügen, in reinen Text umwandeln und dann im Verzeichnis /Web-Server/Documents abspeichern (z.B. als info.php). Browser öffnen, 127.0.0.1/info.php eintippen und freuen.
<?php
phpinfo();
?>
<IfModule mod_php4.c>
php_admin_flag register_globals on
</IfModule>