Difference between revisions of "Xebra Installation"
m (→Ubuntu 9.04) |
(Added Mac OSX instructions.) |
||
Line 96: | Line 96: | ||
* Restart Apache | * Restart Apache | ||
* Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log." | * Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log." | ||
+ | |||
+ | === Mac OS X === | ||
+ | Note: | ||
+ | * If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script. /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher | ||
+ | * Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories. | ||
+ | |||
+ | * Get Apache V2 from Mac Ports | ||
+ | sudo port install apache2 | ||
+ | * Copy $XEBRA_DEV/httpd/* to /opt/local/apache2/htdocs | ||
+ | * Compile the module by running | ||
+ | cd $XEBRA_DEV/c_projects/apache_mod_xebra | ||
+ | /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h | ||
+ | * Install the module to apache by running | ||
+ | /opt/local/apache2/bin/apxs -i mod_xebra.la | ||
+ | * Prepare to edit the protected httpd.conf file by running the command: | ||
+ | sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit | ||
+ | Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf | ||
+ | * Add the following lines to /opt/local/apache2/conf/httpd.conf: | ||
+ | #Xebra Module | ||
+ | LoadModule xebra_module modules/mod_xebra.so | ||
+ | <IfModule xebra_module> | ||
+ | AddHandler mod_xebra .xeb | ||
+ | AddHandler mod_xebra .xrpc | ||
+ | XebraServer_port "55001" | ||
+ | XebraServer_host "localhost" | ||
+ | LogLevel debug | ||
+ | DirectoryIndex index.xeb | ||
+ | <Files ~ "\.(ini|e|ecf)$"> | ||
+ | Order allow,deny | ||
+ | Deny from all | ||
+ | </Files> | ||
+ | <Directory ~ "EIFGENs"> | ||
+ | Order allow,deny | ||
+ | Deny from all | ||
+ | </Directory> | ||
+ | </IfModule> | ||
+ | |||
+ | * The default MacPorts apache install will listen on port 80 | ||
+ | |||
+ | * Restart apache (if necessary, you need to stop and start instead of restart) | ||
+ | sudo /opt/local/apache2/bin/apachectl restart | ||
+ | * Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log." | ||
+ | * Hint: keep an eye on the apache error log tail -f $APACHE2/logs/error_log | ||
===Compile the Xebra Translator=== | ===Compile the Xebra Translator=== |
Revision as of 00:19, 11 July 2009
Contents
Installations
There are two ways to install Xebra:
- Automatic
- Manual
Note: This tutorial was tested with Xebra revision 79550, EiffelStudio 6.5.7.9500 ($ISE_EIFFEL) and $EIFFEL_SRC revision 79550. The env vars $EIFFEL_SRC, $ISE_EIFFEL, $ISE_PLATFORM and $ISE_LIBRARY are expected to be set.
Automatic Installation (Ubuntu)
There is an installation script available at https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/tools/scripts/install_xebra_ubuntu.sh
The script expects $XEBRA_DEV, $EIFFEL_SRC, $ISE_EIFFEL and $ISE_LIBRARY to be set. It will checkout xebra to $XEBRA_DEV, download, install and configure apache 2.2.11 to $XEBRA_DEV/httpd. Apache will be configured to listen on port 55000 (instead of 80) in order to not interfere with an already installed http server. After the script was successfully run see tutorials for how to start the server.
Manual Installation
Checkout Xebra
- Define $XEBRA_DEV and checkout xebra from https://svn.origo.ethz.ch/eiffelstudio/trunk/Src/framework/web/xebra/ to $XEBRA_DEV
Install Apache
Ubuntu 9.04
Note:
- Mod_xebra does currently not run with the apache distribution that comes with ubuntu.
- If you do not install apache into the $XEBRA_DEV/httpd folder remember to copy the webapps from $XEBRA_DEV/httpd/htdocs to your htdocs folder.
- Download apache unix source httpd-2.2.11 from http://httpd.apache.org/download.cgi
- Extract
- Define $APACHE2 where you want to install apache, e.g. to $XEBRA_DEV/httpd
- Run the following commands:
CFLAGS="-ggdb"./configure --prefix={path were apache should be installed} make make install
- Compile the module by running
cd $XEBRA_DEV/c_projects/apache_mod_xebra $APACHE2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h
- Install the module to apache by running
$APACHE2/bin/apxs -i mod_xebra.la
- Add the following lines to Apache2.2\conf\httpd.conf:
#Xebra Module LoadModule xebra_module modules/mod_xebra.so <IfModule xebra_module> AddHandler mod_xebra .xeb AddHandler mod_xebra .xrpc XebraServer_port "55001" XebraServer_host "localhost" LogLevel debug DirectoryIndex index.xeb <Files ~ "\.(ini|e|ecf)$"> Order allow,deny Deny from all </Files> <Directory ~ "EIFGENs"> Order allow,deny Deny from all </Directory> </IfModule>
- The install script also changes the Listen Port from 80 to 55000. Change this if you wish to run this apache parallel to another webserver that uses port 80.
- Restart apache (if necessary, you need to stop and start instead of restart)
$APACHE2/bin/apachectl restart
- Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log."
- Hint: keep an eye on the apache error log tail -f $APACHE2/logs/error_log
Windows (currently under development)
Note
- If you do not install apache into the $XEBRA_DEV/httpd folder remember to copy the webapps from $XEBRA_DEV/httpd/httpd to your httpd folder.
- mod_xebra.so has a delay-load dependency on the Visual C++ 9.0 debug runtime library, msvcr90d.dll. This dll comes with Visual Studio 2008 C++ including the free Visual Studio 2008 C++ Express edition. This file can be copied in to the System32 directory. If this DLL is not found you will get an Apache error Cannot load C:/Xebra/httpd/modules/mod_xebra.so into server: This application has failed to start because the application configuration is incorrect.
- Download apache httpd-2.2.11 windows binary from http://httpd.apache.org/download.cgi
- Install (Choose Custom Installation and install Build Headers and Libraries as well)
- Copy mod_xebra.so to your Apache2.2\modules folder.
- Add the following lines to Apache2.2\conf\httpd.conf:
#Xebra Module LoadModule xebra_module modules/mod_xebra.so <IfModule xebra_module> AddHandler mod_xebra .xeb AddHandler mod_xebra .xrpc XebraServer_port "55001" XebraServer_host "localhost" LogLevel debug DirectoryIndex index.xeb <Files ~ "\.(ini|e|ecf)$"> Order allow,deny Deny from all </Files> <Directory ~ "EIFGENs"> Order allow,deny Deny from all </Directory> </IfModule>
- Restart Apache
- Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log."
Mac OS X
Note:
- If you're using the version of EiffelStudio from MacPorts, environment variables must be set within the startup script. /Applications/MacPorts/Eiffel64/EiffelStudio/Contents/Resources/EiffelLauncher
- Save yourself a ton of hassle and just sudo chmod -R 777 * both the $ISE_EIFFEL and $EIFFEL_SRC directories.
- Get Apache V2 from Mac Ports
sudo port install apache2
- Copy $XEBRA_DEV/httpd/* to /opt/local/apache2/htdocs
- Compile the module by running
cd $XEBRA_DEV/c_projects/apache_mod_xebra /opt/local/apache2/bin/apxs -c -Wc,-ggdb -I$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/include mod_xebra.c mod_xebra.h
- Install the module to apache by running
/opt/local/apache2/bin/apxs -i mod_xebra.la
- Prepare to edit the protected httpd.conf file by running the command:
sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit Within TextEdit, which now is running under sudo, open /opt/local/apache2/conf/httpd.conf
- Add the following lines to /opt/local/apache2/conf/httpd.conf:
#Xebra Module LoadModule xebra_module modules/mod_xebra.so <IfModule xebra_module> AddHandler mod_xebra .xeb AddHandler mod_xebra .xrpc XebraServer_port "55001" XebraServer_host "localhost" LogLevel debug DirectoryIndex index.xeb <Files ~ "\.(ini|e|ecf)$"> Order allow,deny Deny from all </Files> <Directory ~ "EIFGENs"> Order allow,deny Deny from all </Directory> </IfModule>
- The default MacPorts apache install will listen on port 80
- Restart apache (if necessary, you need to stop and start instead of restart)
sudo /opt/local/apache2/bin/apachectl restart
- Browse to http://localhost/test.xeb. You should see the Fail Whale and a message saying "Cannot connect to XebraServer. See apache error log."
- Hint: keep an eye on the apache error log tail -f $APACHE2/logs/error_log
Compile the Xebra Translator
- Launch estudio and open the project $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator-voidunsafe.ecf
- Compile
Or on linux run:
ec -config $XEBRA_DEV/eiffel_projects/xebra_translator/xebra_translator-voidunsafe.ecf -target xebra_translator -c_compile -clean -finalize
Run the Xebra Server
See Xebra Tutorial for how to run the server.
Installation on Windows with IIS7
no documentation yet