

eZ publish 2.1 Installation Guide



The double squares and eZ are trademarks belonging to eZ
systems of Norway, registration number NO 981 601 564 (http://www.brreg.no/oppslag/enhet/detalj.ssc?orgnr=981601564).

All images and text herein is Copyright 2001 eZ systems.

eZ publish is a software package released under the GPL lisence
(http://www.gnu.org/copyleft/gpl.html), its primary point
of distribution and information is http://developer.ez.no/

Table of Contents

Chapter 1 Introduction
    1.1 Pre-Configured Hosting
    1.2 Pre-Configured Hardware
Chapter 2 Pre-requisites
    2.1 Needed Privileges
    2.2 Needed Software
    2.3 Which Software is Already Installed?
        2.3.1 Systems Using RPM
    2.4 FreeBSD
    2.5 Mandrake
    2.6 IRIX
    2.7 RAQ 3
    2.8 Windows
    2.9 Other Systems
    2.10 Installation of Required Software
    2.11 Important Notice
Chapter 3 Compile Configuration
    3.1 PHP
        3.1.1 Unpacking
        3.1.2 Configuration
            3.1.2.1 Common
            3.1.2.2 Command Line
            3.1.2.3 Apache Module
            3.1.2.4 Other Web Servers
            3.1.2.5 Creating the Configuration
        3.1.3 Compilation
        3.1.4 Installation
Chapter 4 Apache Configuration
    4.1 Dual Virtual Host
        4.1.1 Configuring Through httpd.conf
            4.1.1.1 User Site
            4.1.1.2 Admin Site
            4.1.1.3 Error Checking
            4.1.1.4 Explanation of the Rewrite Rules
        4.1.2 Configuring Through .htaccess
            4.1.2.1 User Site
            4.1.2.2 Admin Site
Chapter 5 eZ publish Installation
    5.1 Program Files
    5.2 Database
        5.2.1 First Time Installation
            5.2.1.1 Adding Pre-Defined Data
        5.2.2 Updating the Installation
Chapter 6 Now What?
    6.1 Post Install Checklist
Chapter 7 Troubleshooting
    7.1 Problems During Installation
        7.1.1 FreeBSD 4.2 and libxml2
        7.1.2 Missing Compiler/Can not Compile (C++/C)
    7.2 Problems After Installation
        7.2.1 Permission Denied
        7.2.2 Can not see Images
        7.2.3 Warning about Temp Directory
Chapter 8 Installing on RAQ 3
    8.1 Getting SSL to Work
Chapter 9 Installing on Windows 
Chapter 10 Mandrake
    10.1 Download the Following



Introduction<chptr: introduction>

"He who asks is a fool for five minutes, but he who does
not ask remains a fool forever."
- 

eZ publish is a content management system, among a lot of
other things. This installation manual will try to cover
the job of installing eZ publish on your server.

This manual is mainly intended for installation on a Red
Hat Linux system, but a lot of friendly people have contributed
information for installation on other operating systems,
take a look at chapter 2 and learn which systems those are.

Most of what is described here regarding Red Hat installation
can also be applied to other installations, especially if
your system uses RPM for installation. For other systems
you would need to do a lot of compiling yourself to make
this work, or apply the system's own package manager.

Finding packages can be done dirctly from vendor sites, though
you might not be guaranteed that you'll find the package
you need. In such instances you need to download the source
directly from the software developer.

Different distribution sites for different Unix systems are:

* Debian (http://www.debian.org/distrib/ftplist)

* Mandrake, see chapter [chptr: mandrake].

* IRIX (http://freeware.sgi.com/)

* Red Hat Linux (http://www.redhat.com/apps/download)

* SuSE Linux (http://www.suse.com/us/support/download/index.html)

* Sun (http://www.sunfreeware.com/)

The addresses to the software developers will be given where
apropriate in the text.

You can also try "The Written Word" (ftp://ftp.thewrittenword.com/packages/free/by-name/gcc-2.95.2/)
for binaries for Solaris 2.5.1, 2.6, 2.7/SPARC, 2.7/Intel,
IRIX 6.2, 6.5, Digital UNIX 4.0D, HP-UX 10.20, and HP-UX.

1.1 Pre-Configured Hosting

It is possible to get pre-configured hosting services where
you can install and manage your eZ publish site with ease.
Read more about our hosting partners at eZ systems web site
(http://en.ez.no/article/articlestatic/73).

1.2 Pre-Configured Hardware

It is possible to order pre-configured hardware from eZ systems.
You can order through or web shop (http://sourceprovider.com/).

A line starting with a hash-sign "#"
are input from the user to the shell.

Pre-requisites<chptr: pre-requisites>

2.1 Needed Privileges

For the standard installation (and for the moment the only
method) of eZ publish you will need to have the following
privileges on your system:

* Access to Apache's httpd.conf for creating two virtual
  hosts and for enabling the rewrite engine and creating
  rewrite rules. This is absolutely necessary for eZ Publish
  at the moment.

* Access to compiler, only needed if you can't use any of
  the pre-compiled packages available. (You will have to
  install the gcc compiler on your system, see chapter [chptr: introduction]
  for a list of sites providing software for different Unixes.)

* Access to a shell (You must run certain scripts during
  installation, and sometimes for maintenance.)

* Access to cron jobs (Only needed if you want to use the
  eZ news feed module for regular updates of headlines imported
  from other sites.)

* Access to Apache's modules

* Access to a MySQL database

* You might also need the privilege to add new libraries
  to your system.

You might also use other web servers than apache, but then
you're on your own since we haven't tested eZ publish on
other configurations. If you do try another web server,
please keep a log of what you do and submit it to us (pkej@ez.no)
for inclusion in future versions of this manual.

2.2 Needed Software

You also need to download and install the following packages,
if they aren't present on your system already:

* MySQL (http://www.mysql.com) version 3.23 or later. (eZ
  publish requires MySQL for storage of its data.)

* libXml2 (http://xmlsoft.org/#Downloads) version 2.2.7,
  2.2.8 or 2.2.9. (Needed by eZ article. If you wish to
  use the default article renderer you need libXml2 installed.
  You can create your own renderers if you don't want to
  use the default.)

* libQdom (http://www.trolltech.com) is a part of QT, you
  need version 2.2.3 or later. (Needed by eZ news feed's
  parsers. If you wish to include headlines from external
  sites (example developer.ez.no or slashdot.org) then you
  need this installed. You can create your own parsers if
  you don't want to use the default.)

* ImageMagick (http://www.imagemagick.org/) newest version
  (Needed by eZ article, eZ image catalogue, and all modules
  using images. You need only the command line version.)

* Apache (http://httpd.apache.org/) latest 1.3 release. (It
  is always recommended to run the latest Apache release,
  though eZ publish shouldn't be very picky with the Apache
  versions. We've used eZ publish with Apache 1.3.13, some
  have reported that Apache 1.3.9 isn't useful.)

* Any and all modules you need for apache in addition to
  mod_php. (http://modules.apache.org/)

* PHP (http://www.php.net/) version 4.0.4pl1 or later, you
  need the source code version from this site, for windows
  you can just download the binary. (eZ publish uses references
  for objects and foreach loops. Only version 4.0.4pl1 and
  later supports both of these features satisfactorily.)

* eZ publish (http://developer.ez.no/) verision 2.0 or later
  stable releases.

The libraries and php are packaged pre-compiled for Linux
i386 on http://developer.ez.no. The software is listed in
the order of installation.

You should also find a list of RPMs at http://www.brandish.co.uk/phprpm

2.3 Which Software is Already Installed?

2.3.1 Systems Using RPM

RPM is a system for distributing pre-compiled software. The
packages also contain pre-configured settings and initialisation
files, leaving almost nothing to the user, except deciding
what to install.

To check if a package is available on your system you can
run the following command (RPM based systems "rpm
-qa | grep <name of program/library>".
If you need to know where you can find the different files
from that package you can follow up on the previous command
with the following "rpm -ql <rpm name>".
RPM name is one of the returned names from the previous
command, example:


    # pkej@vogol:/etc/httpd > rpm -qa | grep libxml

    libxml-1.8.7-80

    libxmld-1.8.7-80

    # pkej@vogol:/etc/httpd > rpm -ql libxml-1.8.7-80

    /usr/bin/xml-config

    /usr/lib/libxml.so.1

    /usr/lib/libxml.so.1.8.7

    /usr/share/doc/packages/libxml

    /usr/share/doc/packages/libxml/AUTHORS

    /usr/share/doc/packages/libxml/COPYING

    /usr/share/doc/packages/libxml/COPYING.LIB

    /usr/share/doc/packages/libxml/NEWS

    /usr/share/doc/packages/libxml/README

    /usr/share/doc/packages/libxml/TODO

2.4 FreeBSD

When installing and compiling PHP on a FreeBSD system you
might encounter an error when using --with-dom which says
you have a conifgure error on the lib. It turns out that
the current port of libxml installs itself as /usr/local/lib/libxml2.a|so
and it goes unrecognised by configure. You can easily get
around this problem by linking the libs to libxml.a|so.

2.5 Mandrake

First read chapter [chptr: mandrake],
then continue reading the manual from here.

2.6 IRIX

By accessing the software manager (you must be root) you
can get a list of installed software, scroll or search that
list to find the packages you're interested in. Double click
on the tabs to the left to get information about where specific
files are installed.

2.7 RAQ 3

There is a separate chapter [chptr: raq 3]
in this manual describing installation on a RAQ 3 server.
It was kindly provided by Chris Mason, 

2.8 Windows

Windows installation is described in its own chapter [chptr: windows].

2.9 Other Systems

On other systems you should read the documentation for that
system to learn how to find out what software is already
installed.

You could try to use the command "find"
to find the software. It is used thus: "find
. -name \*<program name>\*" from
the /usr/, /local/ , /lib/, /share/ directories. In extreme
cases you could try from the root of the system, but this
will take a long time and will also hog resources on your
computer. Therefore we urge you to learn how to use the
proper installation features of your system to find the
software already installed.

2.10 Installation of Required Software

If you've found pre-compiled versions of all the software
packaged for use with an installation tool, you just have
to install that software using the tool. Instructioins for
its usage is often found using the command "man
<installation tool name>" or by
reading your system's documentation or the supplier's website.

If you've had to download source code you will find instructions
on how to compile and install the software you've downloaded
at the software developer's website. This requires a bit
of knowledge and you should only undertake this if you feel
confident about the job.

This manual will only cover configuration of the software
needed and compilation of PHP to use the other software.

2.11 Important Notice

You should read all the README, INSTALL and similar files
found with the software packages you download. They often
contain tips on how to configure, compile and install the
software on your system. It will save you a lot of time
and aggravation if you follow instructions supplied with
the software.

If problems arise during installation of the software, please
turn to the suppliers support forums, mailing list archives
and FAQs, your questions will often be answered there. If
the supplier's forums doesn't seem to help you, you should
check the support forums at our site.

You should always do a search of the forums before posting
any questions.

Compile Configuration

3.1 PHP

3.1.1 Unpacking

After you have downloaded PHP you need to unpack it somewhere
where you can compile and configure the software. To unpack
run the command:


    # tar zxvf php-4.0.x.tar.gz


Where the x is the version of php you've downloaded. Then
you need to move into the directory you extracted php into:


    # cd php-4.0.x

3.1.2 Configuration

You'll need either an apache module or a command line version
of PHP to use eZ publish on your website. We recommend you
use PHP as an apache module. You will also need the command
line version if you want to use the cron jobs for periodical
updates of the eZ news feed module.

Thus for our recommended installation of PHP you need both
the command line and module versions of PHP.

3.1.2.1 Common

Both the command line and apache module versions need to
have the following configurations added to the configuration
tool:

--enable-trans-sid This lets PHP use session id's which
  don't rely on cookies. It does not disable normal cookie
  based sessions.
  (http://www.php.net/manual/en/install.configure.php#install.configure.enable-trans-sid)

--with-mysql This tells PHP that the mysql functionality
  should be used.
  (http://www.php.net/manual/en/install.configure.php#install.configure.with-mysql)

--disable-magic-quotes This tells PHP to disable magic
  quotes by default. you can also turn this feature on and
  off on a directory by directory basis in either the ".htaccess"
  files (if you use them) or in the setup of the virtual
  server in "httpd.conf".
  From version 2.1 onwards magic quotes must be turned off
  for eZ publish to work properly.
  (http://www.php.net/manual/en/install.configure.php#install.configure.enable-magic-quotes)

--with-dom This configures PHP to include libxml. 
  (http://www.php.net/manual/en/install.configure.php#install.configure.with-dom)

--with-qtdom This configures PHP to include libqdom. It
  isn't up on the PHP site with a link, but it works as
  --with-dom.

You should also go through the web page: http://www.php.net/manual/en/install.configure.php
and make sure that there isn't other functionality you would
like to have included.

3.1.2.2 Command Line

The default is to create a command line version of PHP. Therefore
you don't need to add more configuration options for this.

3.1.2.3 Apache Module

To build an apache module you need to add:

--with-apxs This compiles PHP as an apache module. 
  (http://www.php.net/manual/en/install.configure.php#install.configure.with-apxs)

3.1.2.4 Other Web Servers

We haven't tested our software with other web servers than
apache. If you need to try out other web servers, read this
document http://www.php.net/manual/en/install.configure.php#install.configure.servers
to learn how you configure for the web server you will be
using.

3.1.2.5 Creating the Configuration

Now you just have to run the "./configure"
program with the apropriate configuration directives which
we discussed in the preceeding sections, for an apache module
you'd do the following:


   # ./configure --enable-trans-sid --with-mysql
    --with-apxs --with-dom --with-qtdom


Remember that to compile a script/cgi version you'd need
to change that line to:


    # ./configure --enable-trans-sid --with-mysql
    --with-dom --with-qtdom

3.1.3 Compilation

To compile you need to run the command "make":


    # make

3.1.4 Installation

To install your new PHP package you need to run the following
command:


    # make install

Apache Configuration

For the moment we have only one solution for configuring
apache, and that is using two virtual hosts.

4.1 Dual Virtual Host<sec: dual virtualhost>

4.1.1 Configuring Through httpd.conf

This set up is based on having two different virtual hosts
for your administration back-end and the main site. The
main site would typically be known as "www.yoursite.com"
and the administration would be "admin.yoursite.com";
the names are up to you, theoretically you could have different
names, for example "mysite.yoursite.com"
and "administration.mysite.com".

The virtual host is configured through the "httpd.conf"
file which is the main configuration of Apache. Following
is an example of such a host, modify it to reflect your
own installation and preferences, but before that be sure
to add the "NameVirtualServer"
directive to the configuration file. The directive is "NameVirtualServer
ip-address" where the ip address is the address
where the server will receive requests (http://httpd.apache.org/docs/mod/core.html#namevirtualhost).

You should consider using the utility which we have online
for creating the configuration. The URL is http://developer.ez.no/virtualhost
it will generate a setup with the latest needed information.
The presented configuration herein might be slightly outdated,
so we recommend the online tool.

4.1.1.1 User Site

    # User site

    <VirtualHost your.domain.com>

      <Directory /your/apache/documentroot/publish_dist>

        Options FollowSymLinks Indexes ExecCGI

        AllowOverride None

      </Directory>

      RewriteEngine On

      RewriteRule ^/stats/store/(.*).gif$

      /your/path/to/publish/ezstats/user/storestats.php
[S=2]

      # The lines above should appear on the same

      # line in your configuration file!

      RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)$

      /your/apache/documentroot/publish_dist/ezfilemanager/files/$1

      [T="application/oct-stream",S=1]

      # The lines above should appear on the same

      # line in your configuration file!

      RewriteRule !\.(gif|css|jpg|png)$ /your/apache/documentroot/publish_dist/index.php

      ServerAdmin your.e-mail@address

      DocumentRoot /your/apache/documentroot/publish_dist

      ServerName your.domain.com

    </VirtualHost>

4.1.1.2 Admin Site

  # Admin site 

  <VirtualHost admin.yourdomain.org>

    <Directory /your/apache/documentroot/publish_dist>

      Options FollowSymLinks Indexes ExecCGI

      AllowOverride None

      RewriteEngine On

      RewriteRule !\.(gif|css|jpg|png)$ /your/apache/documentroot/publish_dist/index_admin.php

    </Directory>

    ServerAdmin your_mail@domain.no

    DocumentRoot /your/apache/documentroot/admin

    ServerName admin.yourdomain.org

  </VirtualHost>


The format of the "httpd.conf"
file is covered at http://httpd.apache.org/docs/ for a complete
understanding of the above information you'll need to read
that documentation.

The directory "/your/apache/documentroot/publish_dist"
is the directory where you extracted eZ publish.

4.1.1.3 Error Checking

You can check that everything is correct with your rewrite
rules by running "apache -s",
which will check for virtual hosts. There should also be
an error log (consult the apache documentation) which you
can read to check for errors.

4.1.1.4 Explanation of the Rewrite Rules

The rewrite rules do the following:


    RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)$

    /your/apache/documentroot/publish_dist/ezfilemanager/files/$1

    [T="application/oct-stream",S=1]


This says that everything served from "/filemanager/filedownload/"
should be redirected to fetch information from "publish_dist/ezfilemanager/files".
In other words, when people downloads a file from the filemanager,
the file is served from the directory specified in the second
part.

The "\^{ }" just after "RewriteRule"
says that evertything which starts with this, in other words
it is a start of line marker. When working with an URL that
is from the root of your site, ie. the part from the first
slash after your domain name.

The "$" sign is used to mark the end of line, in
order to remember the full line.

The part "[T="application/oct-stream",S=1]"
means that everything which is matched shall be of the specific
mime type ("application/oct-stream",
ie. binary download). The "S=1"
part means that if we match this rule, we should skip one
rule ahead before trying to match again.

The next rewrite rule:


    RewriteRule !\.(gif|css|jpg|png)$ /your/apache/documentroot/publish_dist/index.php


is found in both sites (admin and user). This means that
every file, except gif, css, jpg and png (and files matched
against the previous rule when in the user site) should
be redirected to the file in the second part, ie. the index.php
or index_admin.php file. The reason for this is that we
don't want anyone trying to get direct access to anything
which might be sensitive, or revealing about the site's
operation.

If you compiled PHP with magic quotes; or other software
relies on PHP using magic quotes you can add the following
line into each virtual host section:


    php_flag magic_quotes_gpc off


NOTE: It isn't possible to use the form http://mysite.com/admin
at all; since the admin module assumes that the url "/"
is the start of the admin pages. If you do change eZ publish
code in order to do this anyway; please send the code to
bf@ez.no for future inclusion. The only correct way to access
the admin site is through its own virtual host address.

4.1.2 Configuring Through .htaccess

Instead of using httpd.conf and rewrite rules in the virtual
hosts, you can also do the rewrite rules in the .htaccess
filesm directory specific configuration files.

Note: You must set up apache to accept this. You still need
two domains for this operation!

4.1.2.1 User Site

In your main directory (/path/to/index.php/) create a file
called ".htaccess" containing the following text:


    php_flag magic_quotes_gpc off

    Options FollowSymLinks Indexes ExecCGI

    RewriteEngine On 

    RewriteRule ^/stats/store/(.*).gif$ 

    /publish/ezstats/user/storestats.php [S=2] 

    # The two lines above should appear on the 

    # same line in your configuration file.

    RewriteRule ^/filemanager/filedownload/([^/]+)/(.*)$

    /path/to/website/ezfilemanager/files/$1

    [T="application/oct-stream",S=1]

    # The three lines above should appear on the

    # same line in your configuration file!

    RewriteRule !\.(gif|css|jpg|png)$ /path/to/website/index.php

4.1.2.2 Admin Site

In your admin subdomain home directory, create a file with
the following text:


    php_flag magic_quotes_gpc off

    RewriteEngine On

    RewriteRule !\.(gif|css|jpg|png)$ /path/to/website/index_admin.php


eZ publish Installation

5.1 Program Files

The next step is to install the eZ publish package in your
document root directory. First you need to unpack the software
in a temporary directory:


    # cd /tmp

    # tar zxvf /path/to/ezpublish-2.0.tar.gz


The next step is to move the files to your document root:


    # mv /tmp/publish_dist /your/apache/documentroot


When all this is done you need to tell eZ publish a little
about the site you're running. You'll need to edit the "site.ini"
file which you will find in the document root:


    # cd /your/apache/documentroot

    # vi site.ini


Instead of vi you can use your preferred text editor. You'll
need to add information about the username, hostname and
password of your database. More information on what you
can do with "site.ini"
can be found in the "eZ publish Customisation
Guide".

The next important step is to run the script "secure_modfix.sh". 


    # ./secure_modfix.sh


Then you need to create cache directories:


    # su
    # ./secure_cachefix.sh [package_user] [apache_process_group]


Where [package_user] is the web admin user and [apache_process_group]
is the group of the running apache process.

5.2 Database

Some people might prefer to use phpMyAdmin (http://www.phpwizard.net/projects/phpMyAdmin/)
for most of this part; we can not help you with installation
of that program, though.

5.2.1 First Time Installation

Now you need to create a database in MySQL, the default name
we use is publish, but you can change that to whatever pleases
you.


    # mysqladmin create publish


Add a publish user in MySQL. To add a user you can use the
MySQL client to log on to mysql and then create the user:


    # mysql > grant all on publish.* to publish@localhost

    identified by "secret";


where secret is your password. Then you need to add the default
eZ publish data into your newly created database:


    # mysql -uroot -p publish < sql/publish.sql

5.2.1.1 Adding Pre-Defined Data

If you want to add the pre-defined data of the distribution
you shouldn't add any data manually to the site before executing
these commands.

First we need to add files and images which are needed by
the database.


    # tar zpxvf data.tar.gz


Then we need to run "secure_modfix.sh"
to make sure that everything is readable.


    # ./secure_modfix.sh


Then we need to send the SQL data into the database:


    # mysql -upublish -ppublish publish < sql/data.sql


Finally we run clearcache to make sure that everything presented
is cached correctly:


    # ./clearcache_secure.sh

5.2.2 Updating the Installation

This section is for users who are updating from a previous
version of eZ publish. There should be several files ending
with ".sql" in the directory "updates".
Run the files needed to update your version to the current.
You need to apply all the updates for every version since
your version.

Now What?

After installing eZ publish you can test your site through
the URL http://www.yoursite.com/ and you can administrate
your site from the URL http://admin.yoursite.com/, of course,
if you did anything different the names of the admin and
the public site might be different.

NOTE: The default user name and password for your site will
be admin/publish. Remember to change the password.

The next manual you should read is the "eZ
publish Customisation Guide",
it tells you how to configure the software to use the functionality
you want, as well as how you change the templates to suit
your needs.

When you're finished with the design and the initial testing
you can head over to http://zez.org/ for articles about
community building as well as programming, or you can visit
http://developer.ez.no for updates, articles about eZ publish
and how to work with it, as well as keeping abreast of new
developments.

6.1 Post Install Checklist

1. Does Apache run?

2. Does PHP run/work as an Apache module?

3. Does MySQL run?

4. Can you access your virtual hosts at all?

5. Does the user site work?

6. Does the admin site work?

7. Consider this: all eZ publish sites has an admin site,
  perhaps you should call the admin host something different
  than admin?

8. Check that you've downloaded and read the configuration
  manual. A quick tip is to read through the file "site.ini"
  and change any e-mail addresses, passwords etc. to fit
  your own choices.

9. Log in on your admin site (http://admin.yoursite.com/).
  You will be presented with a page which will list any
  install problems. If any problems appear read the error
  message presented and follow any instructions. If that
  fails, read the FAQ. Then go to http://developer.ez.no
  and search the forum for anyone who have had the same
  problem. Also check the bug list for any open bugs covering
  your problem. Finally you should register to the mailing
  list and try asking for help there.

10. If everything is okay go to the "user"
  module and change the e-mail address of the site administrator
  immediatly.

11. Change the password of the administration user to something
  only you know.

12. Start browsing the public part of your site, just to check
  that everything is working; some of the articles supplied
  as default will inform you about features of the software.

13. Check that ImageMagick is working. Try to upload an image
  to your site.

Troubleshooting

7.1 Problems During Installation

7.1.1 FreeBSD 4.2 and libxml2

The current version (2.2.11) installs itself as /usr/local/lib/libxml2.a|so
and goes unrecognized by configure (PHP). Link the files
to /usr/local/lib/libxml.a|so.

7.1.2 Missing Compiler/Can not Compile (C++/C)

The ImageMagick package requires the GCC compiler. You'll
need to download that compiler and install it on your system.
In the introduction (see chapter [chptr: introduction])
I listed some sites where you can download pre-compiled
versions of software for some different Unix versions.

If you can't find a pre-compiled version try the GCC Home
Page (http://gcc.gnu.org/).

7.2 Problems After Installation

7.2.1 Permission Denied

Warning: fopen("site.ini","r+")

Permission denied in classes/INIFile.php on line 80

If you get this error message you need to run the "secure_modfix.sh"
script.

7.2.2 Can not see Images

ImageMagick is not working, make sure that it is working
by using the command line command "convert".

7.2.3 Warning about Temp Directory

If you get any such warning you need to set the temp directory
in php.ini.

Installing on RAQ 3<chptr: raq 3>

Installing ezPublish on raq3 without messing up the GUI or
voiding the warranty.

This is untested by eZ systems, and we provide this "as
is" without any form of guarantee or endorsement, either
explicitly or implicitly.

First, add the domain into the DNS, but do not create a virtual
site.

Log in by telnet (install SSH unless you are desperate to
get hacked).

Put the publish files in the directory you want to use, I
used /home/sites/extrasites/mysite/web

Install mysql 3.23 or later by rpm, there is one out there.
MySQL (http://www.mysql.com) version 3.23 or later if you
want to compile

Now you need to create a database in MySQL, the default name
we use is publish, but you can change that to whatever pleases
you.


    # mysql -uroot -p publish < sql/publish.sql


Add a publish user in MySQL. To add a user you can use the
MySQL client to log on to mysql and then create the user:


    # mysql>grant all on publish.* to publish@localhost

    identified by "secret";


where secret is your password. Then you need to add the default
eZ publish data into your newly created database:


    # mysql -uroot -p publish < sql/publish.sql


Then get:

* http://www.freesoftware.com/pub/infozip/zlib/ (zlib.tar.gz)

* http://www.boutell.com/gd (gd-1.8.4.tar.gz)

* ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz (jpegsrc.v6b.tar.gz)

* http://www.php.net (php-4.0.4pl1.tar.gz)

Delete all gd.h files on your system. You can find them using:


    # find / -name gd.h


If there are more than one, then delete all of them.

Now add the following line to the /etc/ld.so.conf file:


    /usr/local/lib


Save the file, and run:


    # /sbin/ldconfig


This was an important part, because Apache needs this dir
to find the correct modules.

Extract the zlib archive:


    # tar -zxvf zlib.tar.gz # cd zlib-1.1.3


And install it:


    # ./configure --shared 

    # make 

    # make install


Now install the JPEG-6b, doing the following:


    # tar -zxvf jpegsrc.v6b.tar.gz

    # cd jpeg-6b

    # ./configure --enable-shared

    # make

    # make install


Install the PNG library


    # wget http://www.libpng.org/pub/png/src/libpng-1.0.9.tar.gz


Then compile the package.

Get Imagemagick ImageMagick (http://www.imagemagick.org/)
newest version Download and then:


    # tar -zxvf Imagemagick-xxx

    # cd Imagemagick-xxx

    # ./configure

    # make

    # make install


Then go one directory back, and extract the GD archive using:


    # tar -zxvf gd-xxx

    # cd gd-xxx


Now edit the Makefile (using vi or pico) and check which
modules you want. I removed the Freetype Library (-DHAVE_LIBFREETYPE
/ -lfreetype). After making the changes save the file and
go back to the shell. Now compile GD:


    # make 

    # make install


If this is giving any errors, just remove the modules you
don't have (but don't remove the JPEG lib - we need that
one ! :)) )

Now go back one dir, and extract PHP4:


    # tar -zxvf php-4.0.4pl1.tar.gz

    # cd php-4.0.4pl1


First remove any cache:


    # rm config.cache

    # make clean

    #./configure --with-xml --with-mysql \

    --with-apxs=/usr/sbin/apxs \

    --with-system-regex \

    --with-zlib \

    --enable-safe-mode \

    --with-gdbm \

    --enable-sysvsem \

    --with-ftp \

    --with-config-file-path=/etc/httpd/conf/ \

    --with-exec-dir=/usr/sbin/httpd \

    --with-dom \

    --enable-trans-sid

    # make

    # make install


run /sbin/ldconfig again.

Apache: (Your milage may vary, be wary of paths)

edit /etc/httpd/conf/httpd.conf and add the Loadmodules lines
like this: 


    # Extra Modules

    LoadModule php_module modules/mod_php.so

    LoadModule php3_module modules/libphp3.so

    LoadModule perl_module /usr/lib/apache/libperl.so

    LoadModule php4_module /usr/lib/apache/libphp4.so

    LoadModule php4_module lib/apache/libphp4.so


# Reconstruction of the complete module list from all available
modules

# (static and shared ones) to achieve correct module execution
order.

# [WHENEVER YOU CHANGE THE LOADMODULE SECTION ABOVE UPDATE
THIS, TOO]


    ClearModuleList

    # Extra Modules

    AddModule mod_php.c

    AddModule mod_php3.c

    AddModule mod_perl.c

    AddModule mod_php4.c


Add the second line below line below the rewrite stuff, above
the <Virtualhost> directives.

NameVirtualHost 216.97.67.4 Include /etc/httpd/conf/extrasites.conf
<VirtualHost 216.97.67.4>

create this include file and in it put the apache vitual
server directives for your site.

For example:


    # User site

    <VirtualHost yourIP>

      ServerName yourdomain.org

      ServerAlias www.yourdomain.org

      <Directory /your/site/root/>

        Options FollowSymLinks Indexes ExecCGI

        AllowOverride None

      </Directory>

      RewriteEngine On

      RewriteRule !\.(gif|css|jpg|png)$ /your/site/root/index.php

      ServerAdmin your_mail@domain.no

      DocumentRoot /your/site/root/

    </VirtualHost>


    # Admin site

    <VirtualHost admin.yourdomain.org>

      <Directory /your/site/root/admin>

        Options FollowSymLinks Indexes ExecCGI

        AllowOverride None

      </Directory>

      RewriteEngine On

      RewriteRule !\.(gif|css|jpg|png)$ /your/site/root/admin/index.php

      ServerAdmin your_mail@domain.no

      DocumentRoot /your/site/root/admin

      ServerName admin.yourdomain.org

      ServerAlias admin.yourdomain.org

    </VirtualHost>


restart apache:


    # /etc/rc.d/init.d/httpd stop


wait a few seconds then


    # /etc/rc.d/init.d/httpd start


Then chown httpd.httpd * on both the domain and admin.domain
directories to get it to work.

If all is well, your site should work.

8.1 Getting SSL to Work

This is a bit tougher! Enable SSL for the site in your GUI.
Generate your certificates. Disable SSL in the GUI. Add
this to the end of your extrasites.conf

    #attempt to modify 

    SSL Listen xxx.xxx.xxx.xxx:443

    <VirtualHost xxx.xxx.xxx.xxx:443>

        ServerAdmin ubong

        DocumentRoot /home/sites/yoursite/web

        <Directory /home/sites/yoursite/web>

            Options
FollowSymLinks Indexes ExecCGI

            AllowOverride
None

        </Directory>

        SSLEngine on

        SSLCertificateFile /home/sites/yoursite/certs/certificate

        SSLCertificateKeyFile
/home/sites/yoursite/certs/key

        AddHandler server-parsed
.shtml

        AddType text/html .shtml

        AddHandler cgi-wrapper
.cgi

        AddHandler cgi-wrapper
.pl

        RewriteEngine On

        RewriteRule !\.(gif|css|jpg|png)$
/home/sites/public.edge.ai/web/index.php

        ErrorLog /home/sites/yoursite/logs/error_log

        TransferLog /home/sites/yoursite/logs/access_log

    </VirtualHost>

This should work. IF you can't get it, give me an email and
I'll help if I have time: chris@net.ai

Installing on Windows 

Please download and read the Windows documentation from the
eZ publish site (http://developer.ez.no). Check the "File
Archive" link under "Downloads"
. It covers all the steps needed for a working installation
under Windows using Apache.

Mandrake<chptr: mandrake>

Thanks to Mark Polsen for giving us this information.

This is untested by eZ systems, and we provide this "as
is" without any form of guarantee or endorsement, either
explicitly or implicitly.

10.1 Download the Following

Download what you need from http://developer.ez.no/filemanager/list/23/
and install the rpms!

That's all; read the manual from the start after that, and
install eZ publish as described.
