PDA

View Full Version : subversion install on FH5



cranium
30th July 2008, 04:58 PM
Hi All,

I am trying to get subversion working on a test server so that I can then make it run on a live server. I have done a lot of googling and searching on this site (link (http://forums.fedoraforum.org/forum/showthread.php?t=114494) ) for help.

It seems that a lot of people are doing this differently and that makes it confusing. Here is what I have tried so far:

1. yum install subversion
2. yum install mod_dav_svn
3. mkdir /subversion/repository
4. mkdir /subversion/permissions
5. chown -R apache:apache /subversion/
6. svnadmin create subversion/repository/
7. went into subversion.conf (located at: /etc/httpd/conf.d/) and added the following:
<Location /svn>
DAV svn
SVNPath /subversion/repository/
</Location>
8. Tried to restart apache and I get the following error:
Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata

Now apache doesn't work at all, lol. Anyway I checked and the file it says it cannot load is there but there is something wrong with it?? I am a noob and having been working on and off for a week to get this going, with not too much luck :(

Thank you for your time and assistance,
cranium

pete_1967
30th July 2008, 05:16 PM
In your Apache configuration file, you need to add the module to the list to be loaded on Apache startup.



LoadModule [module_path/name]


Default location for httpd.conf is /etc/httpd/conf/httpd.conf

You can also add the configuration file for mod_dav in /etc/httpd/conf.d/

Read the comments in config files, they tell you all you need to know.

After you've done changes to them, run
/sbin/service/httpd stop
/sbin/service/httpd configtest
/sbin/service/httpd start

Also keep eye on error logs in /var/log/httpd/

cranium
30th July 2008, 05:28 PM
This is currently in my httpd.conf file:
LoadModule php5_module modules/libphp5.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

You can also add the configuration file for mod_dav in /etc/httpd/conf.d/ - are you talking about the subversion.conf file?

I didn't really change anything and still get the same error, but here is the complete error on the page:
Syntax error on line 233 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata

I believe line 233 is one of the lines above (is there an easy way in vi to determine what line you are on?).

pete_1967
30th July 2008, 05:36 PM
I didn't really change anything and still get the same error, but here is the complete error on the page:
Syntax error on line 233 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_xml_get_cdata


See the search path in it.

How/ from where did you install Apache and same for mod_dav?

cranium
30th July 2008, 05:49 PM
See the search path in it. - sorry for being dumb here, don't get what you are tyring to tell me

Apache was installed long ago (2-3 years) and is v2.x.x from source. As for mod_dav just did that today with: yum install mod_dav_svn

* if you mean what is on the line that the error is refering
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module modules/libphp5.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

The last two lines where added automatically with something that I did from my first post.

pete_1967
30th July 2008, 06:01 PM
See the search path in it. - sorry for being dumb here, don't get what you are tyring to tell me

Apache was installed long ago (2-3 years) and is v2.x.x from source. As for mod_dav just did that today with: yum install mod_dav_svn

* if you mean what is on the line that the error is refering
#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php5_module modules/libphp5.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

The last two lines where added automatically with something that I did from my first post.

There's your problem:

You are mixing compiled installation with package installation. The paths and configurations are different.

You need to either configure your Apache to read modules from directories package put them in (RH default config), or compile your modules from source to paths your compiled Apache excepts to find them.

Or you can just remove your compiled Apache installation and re-install it with yum.

Yum installed modules go into /usr/lib[64]/httpd/modules/ and symlink to that is added into /etc/httpd/

When you compile them from source, you need to set the installation path to follow the Apache configuration you used when you compiled it from source.

Also note that httpd.conf file you're looking at is not what your server is using. It's most probably in /usr/local/apache2/ or thereabouts (again, it depends on what options were set during the build).

cranium
30th July 2008, 07:21 PM
Apache configuration file is in /usr/local/apache2/conf/

So there is no way to get these two to work together? I really don't want to uninstall apache if I don't have to.

You need to either configure your Apache to read modules from directories package put them in (RH default config), - How would I do this?

Thank you for your continued help.

JohnVV
30th July 2008, 07:45 PM
Seeing as you are intent on using fedora 5 ( LONG DEAD) and unsupported .
You will need to rebuild from source ( the current - not the 3 year old one you have ) apache , reinstall mysql( just guessing that is what you are using ) , rebuild php ,rebuild ... ( everything for apache) . Get the new builds of apache ,php,mysql,... all working .Then build from source subversion and install it .

cranium
30th July 2008, 08:00 PM
The reason I am running on 5 is because it is an old machine and didn't think it could support the newer gui tools. This is my test machine to get stuff working and to learn with.

So starting from scratch is the only way? Also, why can't you take something like apache, mysql, and php built from source and make it work with package installation?

If I try to do apache, mysql, and php as a package installation will I have the ability configure in gd, pdflib, etc? I have been installing these things all the way back on RH7 from source and it is the way I am used to doing things.

Also, can I remove the package installation of subversion and mod_dav and then do from source? If so, is there a tutorial out there for this method as the ones I have seemed to find are for package installation?

Sorry for all the question, just trying to learn all this.

pete_1967
30th July 2008, 10:13 PM
The problem with mixing source compiled and packages is that you quickly lose the track of what is from where and end up using hacks to make them all work together. In essence, you're just digging yourself a hole ready to be buried in there.

If you don't have any modules compiled in /usr/local/apache2/modules/, you can just change the directory to a symlink to point to /usr/lib/httpd/modules and unless there are some big version differences, they should work.

Another option is to re-compile your Apache with the option for module directory to point to /usr/lib/httpd/modules/

Third way you can try is to copy the modules from /usr/lib/httpd/modules/ into directory your server currently looks for them, or instead symlinking from /usr/local/apache2/modules/ by each individual module.

The best option (imho) is to just compile modules you need from source since you started that route. For ease of use and maintenance, especially since you don't sound very experienced with the stuff, is to remove your complied server and use Fedora packages for all your needs.

cranium
30th July 2008, 10:24 PM
Definitely not experienced, lol. As for changing the directory to a symlink (can you explain how to do that just so I know) currently in that folder I have the following:
httpd.exp
libphp5.so
mod_authz_svn.so
mod_dav_svn.so

If that means I really don't have anything in here then that is the route I would like to take, lol.

Bullet two doesn't sound bad either, just don't know how to symlink.

Bullet three, probably the safest, isn't the one I would like to take unless there is a way I can build in the necessary elements into php from that route.

Thanks again,
cranium

cranium
30th July 2008, 10:32 PM
Also, on this topic does anyone have a tutorial on how to install subversion and get it working from source. I would like to play with it and try to get it working before I have to jump over to modules. Which brings up a question: do most people go the module route?

pete_1967
30th July 2008, 10:39 PM
Definitely not experienced, lol. As for changing the directory to a symlink (can you explain how to do that just so I know) currently in that folder I have the following:
httpd.exp
libphp5.so
mod_authz_svn.so
mod_dav_svn.so

So you have compiled modules installed meaning you can either re-install them with yum, or forget symlinking the whole directory.




Bullet two doesn't sound bad either, just don't know how to symlink.

For your own education (if I told you everything, you wouldn't learn a thing really ;) ) in terminal type `man ln` (without quotes).



Bullet three, probably the safest, isn't the one I would like to take unless there is a way I can build in the necessary elements into php from that route.

I assume you refer to using Yum to install the lot. You pretty much find all necessary modules for all technologies (Php included) you need to run a webserver.

Just do yum seacr for php, httpd, mysql etc and you see what is available, after that it's simple as `yum install php` for example.

The biggest setback with using the repository path is that you are bound to use versions that are given to you with options someone else decided to use. In your case, I doubt that'll make slightest difference though.

pete_1967
30th July 2008, 10:42 PM
Also, on this topic does anyone have a tutorial on how to install subversion and get it working from source. I would like to play with it and try to get it working

Better if you start new topic for that. Always read the documentation on software's website before you try to use/ build it.



before I have to jump over to modules. Which brings up a question: do most people go the module route?
If you're referring to Apache, how about you make a visit to apache.org and read its documentation to gain greater understanding what it is and how it works ;)

cranium
31st July 2008, 02:10 AM
So you have compiled modules installed meaning you can either re-install them with yum, or forget symlinking the whole directory.
I have tried to reinstall them and it seems that's why I am in this mess. I guess maybe I not doing something correctly? Also, if I had to symlink it, what exactly am I symlinking and where?


For your own education (if I told you everything, you wouldn't learn a thing really ;) ) in terminal type `man ln` (without quotes).
Yeah, did some of that, it is rather simple, and it helped with another problem for something else. :)

I am not really looking for the route that will get this all working the easiest but the one that one in which I will learn the most via a lot of mistakes and frustration, lol. :eek: