CentOs7.8_x64安装Apache2.4.48+Mysql5.7.33+Redmine4.2.1+Subversion1.14.1+PHP7.3.27+SvnManager1.10

本文主要是介绍CentOs7.8_x64安装Apache2.4.48+Mysql5.7.33+Redmine4.2.1+Subversion1.14.1+PHP7.3.27+SvnManager1.10,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.安装libs
# yum install -y perl perl-devel autoconf libaio gcc gcc-c++ libtool expat-devel libxml2-devel pcre pcre-devel lrzsz
2.卸载系统自带的mariadb-lib
# rpm -qa | grep mariadb
mariadb-libs-5.5.65-1.el7.x86_64
# rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
# rpm -qa |grep mysql
确认系统没有自带mysql
3.安装mysql5.7
# rpm -ivh mysql-community-common-5.7.33-1.el7.x86_64.rpm 
# rpm -ivh mysql-community-libs-5.7.33-1.el7.x86_64.rpm 
# rpm -ivh mysql-community-client-5.7.33-1.el7.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.33-1.el7.x86_64.rpm 
# rpm -ivh mysql-community-devel-5.7.33-1.el7.x86_64.rpm
4.启动数据库
# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
# service mysql status
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-06-23 16:51:18 CST; 23s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 2552 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 2499 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 2556 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─2556 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Jun 23 16:51:14 redmine-server systemd[1]: Starting MySQL Server...
Jun 23 16:51:18 redmine-server systemd[1]: Started MySQL Server.
停止命令:systemctl stop mysqld.service
5.登录mysql
# grep password /var/log/mysqld.log
2021-06-23T08:51:16.304499Z 1 [Note] A temporary password is generated for root@localhost: :,:zH=O8o;fi
# mysql -uroot -p
Enter password: :,:zH=O8o;fi
更新密码
mysql> set password = password("you_password");
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> exit;
6.迁移数据库文件到数据盘
# systemctl stop mysqld.service
# mkdir /mnt/mysql5.7.33-data
# mv /var/lib/mysql/* /mnt/mysql5.7.33-data/
# rm -r /var/lib/mysql
# ln -s /mnt/mysql5.7.33-data /var/lib/mysql
# chown -R mysql:mysql /mnt/mysql5.7.33-data
7.安装ruby
# tar zxvf openssl-1.1.1k.tar.gz
# cd openssl-1.1.1k
# ./config --prefix=/usr/local/openssl
# make
# make install
# cd ..
# rpm -qa |grep openssl
openssl-libs-1.0.2k-21.el7_9.x86_64
openssl-devel-1.0.2k-21.el7_9.x86_64
openssl-1.0.2k-21.el7_9.x86_64
# rpm -e openssl --nodeps
# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# echo "/usr/local/openssl/lib" >> /etc/ls.so.conf
# ldconfig -v
/usr/lib64//bind9-export:
 libisc-export.so.169 -> libisc-export.so.169.0.3
 libdns-export.so.1102 -> libdns-export.so.1102.1.2
 libirs-export.so.160 -> libirs-export.so.160.0.5
 libisccfg-export.so.160 -> libisccfg-export.so.160.2.1
/usr/lib64/mysql:
 libmysqlclient.so.20 -> libmysqlclient.so.20.3.20
/lib:
/lib64:
 libmozjs-17.0.so -> libmozjs-17.0.so
 libnsssysinit.so -> libnsssysinit.so
 libnssdbm3.so -> libnssdbm3.so
。。。。。。
# openssl version -a
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
# find / -name libssl.so.1.1
/usr/local/openssl/lib/libssl.so.1.1
/usr/local/src/openssl-1.1.1k/libssl.so.1.1
# ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
# ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
# openssl version
OpenSSL 1.1.1k  25 Mar 2021
# tar zxvf ruby-2.6.7.tar.gz
# cd ruby-2.6.7
# ./configure --with-openssl-dir=/usr/local/openssl
# make
# make install
# cd ,,
8.安装gem,rails,bundler
# yum install -y gem
# gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/
# gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources
# gem sources --add https://gems.ruby-china.com
https://gems.ruby-china.com added to sources
# gem sources -l
*** CURRENT SOURCES ***

https://gems.ruby-china.com
也可以不换源
# gem install rails -v 5.2
# rails -v
Rails 5.2.0
# gem install bundler
# bundler -v
Bundler version 2.2.20
9.安装redmine4.2
# tar zxvf redmine-4.2.1.tar.gz
# mkdir /var/www
# mkdir /var/www/html
# mv redmine-4.2.1 /mnt/
# cd /mnt/redmine-4.2.1/
# bundle install 
创建数据库
# mysql -uroot -p
Enter password: you_password
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
Query OK, 1 row affected (0.00 sec)
mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'you_password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> exit
创建redmine数据库配置
# cp config/database.yml.example config/database.yml
修改数据库连接密码
# vim config/database.yml
为Rails生成cookies秘钥
# rake generate_secret_token
创建redmine表结构
# RAILS_ENV=production rake db:migrate
初始化数据
# RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] zh
====================================
Default configuration data loaded.
创建文件目录,并调整权限
# mkdir -p tmp tmp/pdf public/plugin_assets
# chown -R daemon.daemon /mnt/redmine-4.2.1
启动
# bundle exec rails server webrick -e production -p 80
 => Booting WEBrick
=> Rails 5.2.5 application starting in production on http://0.0.0.0:80
=> Run `rails server -h` for more startup options
[2021-06-23 17:50:07] INFO  WEBrick 1.4.4
[2021-06-23 17:50:07] INFO  ruby 2.6.7 (2021-04-05) [x86_64-linux]
[2021-06-23 17:50:07] INFO  WEBrick::HTTPServer#start: pid=11272 port=80
访问 http://127.0.0.1/
login: admin

password: admin
# ctrl + C 退出
10.安装Apache
# tar zxvf apr-1.6.5.tar.gz
# cd apr-1.6.5
# ./configure --prefix=/usr/local/apr
# make
# make install
# cd ..
# tar zxvf apr-util-1.6.1.tar.g
# cd apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
# make
# make install
# cd ..
# tar zxvf httpd-2.4.48.tar.g
# cd httpd-2.4.8
# ./configure --prefix=/usr/local/apache2 --enable-cache  --enable-mem-cache --enable-ssl --enable-so --enable-rewrite --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre --with-ssl=/usr/local/openssl
# make
# make install
# cd ..
# tar zxvf mod_fcgid-2.3.9.tar.gz
# cd mod_fcgid-2.3.9
# APXS=/usr/local/apache2/bin/apxs ./configure.apxs
# make
# make install
# cd ..
11.安装Passenger
# gem install passenger
# yum install apr-devel apr-util-devel curl curl-devel httpd-devel
# passenger-install-apache2-module --apxs2-path=/usr/local/apache2/bin/apxs apr-config-path=/usr/local/apr/bin/apr-1-config
12.配置Apache
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd
# vi /etc/rc.d/init.d/httpd
在#!/bin/sh后面加入下面两行
#chkconfig:345 85 15
#description:Start and stops the Apache HTTP Server.
         # chmod +x /etc/rc.d/init.d/httpd
         # chkconfig --add httpd
# vi /usr/local/apache2/conf/httpd.conf
         修改

         #LoadModule rewrite_module modules/mod_rewrite.so

         #DocumentRoot  "/usr/local/apache2/htdocs”

         #<Directory  "/usr/local/apache2/htdocs">

改为
         DocumentRoot"/var/www/html"
         <Directory "/var/www/html">
         LoadModule rewrite_module modules/mod_rewrite.so
添加
ServerName 127.0.0.1
LoadModule passenger_module /usr/local/lib/ruby/gems/2.6.0/gems/passenger6.0.9/buildout/apache2/mod_passenger.so
  
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/lib/ruby/gems/2.6.0/gems/passenger-6.0.9
     PassengerDefaultRuby /usr/local/bin/ruby
   </IfModule>
:x 保存退出
# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/mnt/redmine-4.2.1/public"
    ServerName redmine.keyush.cn
    ErrorLog "logs/redmine-error_log"
    CustomLog "logs/redmine-access_log" common
    <Directory /mnt/redmine-4.2.1/public>
        AllowOverride all
        Options -MultiViews
        Require all granted
    </Directory>
</VirtualHost>
:x 保存退出
重启apache,
# service httpd restart
13.安装SVN Server
# yum install -y bzip2 unzip zip
# tar zxvf scons-3.1.2.tar.gz 
# cd scons-3.1.2
# python -V
Python 2.7.5
# python setup.py install --prefix=/usr/local/scons
# cd ..
# tar jxvf serf-1.3.9.tar.bz2
# cd serf-1.3.9
# /usr/local/scons/bin/scons PREFIX=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util
# /usr/local/scons/bin/scons install
scons: Reading SConscript files ...
Checking for GNU-compatible C compiler...(cached) yes
scons: done reading SConscript files.
scons: Building targets ...
Install file: "libserf-1.a" as "/usr/local/lib/libserf-1.a"
Install file: "libserf-1.so.1.3.0" as "/usr/local/lib/libserf-1.so.1.3.0"
Install file: "serf.h" as "/usr/local/include/serf-1/serf.h"
Install file: "serf_bucket_types.h" as "/usr/local/include/serf-1/serf_bucket_types.h"
Install file: "serf_bucket_util.h" as "/usr/local/include/serf-1/serf_bucket_util.h"
Install file: "serf-1.pc" as "/usr/local/lib/pkgconfig/serf-1.pc"
scons: done building targets
# cd ..
# tar zxvf sqlite-autoconf-3360000.tar.gz
# cd sqlite-autoconf-3360000
# ./configure --prefix=/usr/local/sqlite
# make
# make install
# tar zxvf subversion-1.14.1.tar.gz
# cd subversion-1.14.1
# ./configure --prefix=/usr/local/svn-server --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-serf=/usr/local/serf --enable-mod-activation --with-apache-libexecdir=/usr/local/apache2/modules --with-apxs=/usr/local/apache2/bin/apxs --without-berkeley-db --with-lz4=internal --with-utf8proc=internal --with-sqlite=/usr/local/sqlite
# make
# make install
# cd ..
配置环境变量
# export PATH=$PATH:/usr/local/svn-server/bin:/usr/local/apache2/bin
# source /etc/profile
# svn --version
svn: error while loading shared libraries: libserf-1.so.1: cannot open shared object file: No such file or directory
# cd /usr/local/svn-server/bin
# ldd svn
 linux-vdso.so.1 =>  (0x00007ffec67ae000)
 libsvn_client-1.so.0 => /usr/local/svn-server/lib/libsvn_client-1.so.0 (0x00007fb16eb46000)
 libsvn_wc-1.so.0 => /usr/local/svn-server/lib/libsvn_wc-1.so.0 (0x00007fb16e88c000)
 libsvn_ra-1.so.0 => /usr/local/svn-server/lib/libsvn_ra-1.so.0 (0x00007fb16e67e000)
 libsvn_diff-1.so.0 => /usr/local/svn-server/lib/libsvn_diff-1.so.0 (0x00007fb16e465000)
 libsvn_ra_local-1.so.0 => /usr/local/svn-server/lib/libsvn_ra_local-1.so.0 (0x00007fb16e25b000)
 libsvn_repos-1.so.0 => /usr/local/svn-server/lib/libsvn_repos-1.so.0 (0x00007fb16e01b000)
 libsvn_fs-1.so.0 => /usr/local/svn-server/lib/libsvn_fs-1.so.0 (0x00007fb16de0e000)
 libsvn_fs_fs-1.so.0 => /usr/local/svn-server/lib/libsvn_fs_fs-1.so.0 (0x00007fb16dbb9000)
 libsvn_fs_x-1.so.0 => /usr/local/svn-server/lib/libsvn_fs_x-1.so.0 (0x00007fb16d965000)
 libsvn_fs_util-1.so.0 => /usr/local/svn-server/lib/libsvn_fs_util-1.so.0 (0x00007fb16d761000)
 libsvn_ra_svn-1.so.0 => /usr/local/svn-server/lib/libsvn_ra_svn-1.so.0 (0x00007fb16d53d000)
 libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007fb16d320000)
 libsvn_ra_serf-1.so.0 => /usr/local/svn-server/lib/libsvn_ra_serf-1.so.0 (0x00007fb16d0eb000)
 libserf-1.so.1 => not found
 libsvn_delta-1.so.0 => /usr/local/svn-server/lib/libsvn_delta-1.so.0 (0x00007fb16cecc000)
 libsvn_subr-1.so.0 => /usr/local/svn-server/lib/libsvn_subr-1.so.0 (0x00007fb16cbf3000)
 libsqlite3.so.0 => /usr/local/sqlite/lib/libsqlite3.so.0 (0x00007fb16c8d3000)
 libz.so.1 => /lib64/libz.so.1 (0x00007fb16c6bd000)
 libm.so.6 => /lib64/libm.so.6 (0x00007fb16c3bb000)
 libaprutil-1.so.0 => /usr/local/apr-util/lib/libaprutil-1.so.0 (0x00007fb16c191000)
 libexpat.so.1 => /lib64/libexpat.so.1 (0x00007fb16bf67000)
 libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x00007fb16bd31000)
 librt.so.1 => /lib64/librt.so.1 (0x00007fb16bb29000)
 libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fb16b8f2000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb16b6d6000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00007fb16b4d2000)
 libc.so.6 => /lib64/libc.so.6 (0x00007fb16b104000)
 libserf-1.so.1 => not found
 libserf-1.so.1 => not found
 libresolv.so.2 => /lib64/libresolv.so.2 (0x00007fb16aeea000)
 libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fb16ac9d000)
 libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fb16a9b4000)
 libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007fb16a781000)
 libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007fb16a57d000)
 libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007fb16a36d000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fb16edd9000)
 libserf-1.so.1 => not found
 libfreebl3.so => /lib64/libfreebl3.so (0x00007fb16a16a000)
 libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007fb169f66000)
 libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fb169d3f000)
 libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fb169add000)
# ln -s /usr/local/serf/lib/libserf-1.so.1.3.0 /lib64/libserf-1.so.1
# ln -s /usr/local/subversion/bin/svnserve /usr/bin/svnserve
# ln -s /usr/local/subversion/bin/svn /usr/bin/svn
# svnserve --version
svnserve, version 1.14.1 (r1886195)
   compiled Jun 24 2021, 11:12:48 on x86_64-unknown-linux-gnu

Copyright (C) 2021 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.
* fs_x : Module for working with an experimental (FSX) repository.

Cyrus SASL authentication is available.
# svn --version
svn, version 1.14.1 (r1886195)
   compiled Jun 24 2021, 11:12:48 on x86_64-unknown-linux-gnu

Copyright (C) 2021 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - using serf 1.3.9 (compiled with 1.3.9)
  - handles 'http' scheme
  - handles 'https' scheme

The following authentication credential caches are available:

* GPG-Agent
14.安装PHP
# yum -y install libxml2-devel sqlite-devel libcurl-devel libpng-devel postgresql-devel libzip-devel libjpeg-devel freetype-devel python-devel libXpm-devel
# tar zxvf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
# ./configure --prefix=/usr/local/zlib
# make
# make install
# cd ..
# tar zxvf libpng-1.6.37.tar.gz
# cd libpng-1.6.37
# ./configure --prefix=/usr/local/libpng
# make
# make install
# cd ..
# tar zxvf jpegsrc.v9d.tar.gz
# cd jpeg-9d
# ./configure --prefix=/usr/local/jpeg9
# make
# make install
# cd ..
# tar zxvf libxml2-2.9.10.tar.gz
# cd libxml2-2.9.10
# ./configure --prefix=/usr/local/libxml2 --with-zlib=/usr/local/zlib
# make
# make install
# cd ..
# tar zxvf freetype-2.10.4.tar.gz
# cd freetype-2.10.4
# ./configure --prefix=/usr/local/freetype --with-png
# make
# make install
# cd ..
# tar zxvf libgd-2.2.5.tar.gz
# mkdir -p /usr/local/gd
# cd libgd-2.2.5
# ./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg9 --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-zlib=/usr/local/zlib
# make
# make install
# cd ..
# tar zxvf cmake-3.21.0-rc1.tar.gz
# cd cmake-3.21.0-rc1
# ./bootstrap
# gmake
# make install
# cd ..
# tar zxvf libzip-1.7.3.tar.gz
# cd libzip-1.7.3
# mkdir build 
# cd build 
# cmake -DCMAKE_INSTALL_PREFIX=/usr ..
# make
# make install
# cd ../..
# tar zxvf php-7.3.27.tar.gz
# cd php-7.3.27
# ./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/lib/mysql/mysql.sock --with-gd=/usr/local/gd --with-iconv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/jpeg9 --with-png-dir=/usr/local/libpng --with-zlib-dir=/usr/local/zlib --with-libxml-dir=/usr/local/libxml2 --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-ftp --disable-phar --with-openssl=/usr/local/openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-session --enable-mbstring
# make
# make install
# cp /usr/local/src/php-7.3.27/php.ini-production /etc/php.ini
# cd ..
# vim /usr/local/apache/conf/httpd.conf
  追加
  AddType application/x-httpd-php  .php
  AddType application/x-httpd-php-source .phps
  DirectoryIndex index.html index.php
:wq
# tar zxvf curl-7.76.1.tar.gz
# cd curl-7.76.1
# ./configure --prefix=/usr/local/curl --with-ssl=/usr/local/openssl --with-zlib=/usr/local/zlib
# make
# make install
# cd ..
# cd  php-7.3.27/ext/curl/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl
# make
# make install
Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-zts-20180731/
# vi /etc/php.ini
添加
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20180731/curl.so
:wq
重启Apache
# service httpd restart
15.安装SvnManager
# cd /usr/local/src
# tar zxvf svnmanager-1.10.tar.gz
# mv svnmanager-1.10 /var/www/html/
# cd /usr/local/php/
# curl -o go-pear.php https://pear.php.net/go-pear.phar
# /usr/local/php/bin/php go-pear.php
Below is a suggested file layout for your new PEAR installation.  To
change individual locations, type the number in front of the
directory.  Type 'all' to change all of them or simply press Enter to
accept these locations.

 1. Installation base ($prefix)                   : /usr/local/php
 2. Temporary directory for processing            : /tmp/pear/install
 3. Temporary directory for downloads             : /tmp/pear/install
 4. Binaries directory                            : /usr/local/php/bin
 5. PHP code directory ($php_dir)                 : /usr/local/php/lib/php
 6. Documentation directory                       : /usr/local/php/docs
 7. Data directory                                : /usr/local/php/data
 8. User-modifiable configuration files directory : /usr/local/php/cfg
 9. Public Web Files directory                    : /usr/local/php/www
10. System manual pages directory                 : /usr/local/php/man
11. Tests directory                               : /usr/local/php/tests
12. Name of configuration file                    : /usr/local/php/etc/pear.conf

1-12, 'all' or Enter to continue: 回车
# mv /usr/local/src/VersionControl_SVN-0.5.2.tgz /usr/local/php/bin/
# ./pear install VersionControl_SVN-0.5.2.tgz
Package "pear.php.net/VersionControl_SVN" dependency "pear.php.net/PEAR" has no releases
install ok: channel://pear.php.net/VersionControl_SVN-0.5.2
# mysql -u root -p
Enter password: you_password
mysql> create database svn_manager;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on svn_manager.* to svn_admin@localhost identified by 'you_password';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
# cd /var/www/html/svnmanager-1.10
# cp config.php.linux  config.php
# vim /var/www/html/svnmanager/config.php
 $htpassword_cmd = "/usr/local/apache2/bin/htpasswd";
 $svn_cmd = "/usr/local/svn-server/bin/svn";
 $svnadmin_cmd  = "/usr/local/svn-server/bin/svnadmin --config-dir /mnt/svn-data/config";
 //Subversion locations SVN全局设置信息文件所在的目录,默认是在~/.subversion下的
 $svn_config_dir = "/mnt/svn-data/conf";
 //与httpd.conf文件中的SVNParentPath含义相同
 $svn_repos_loc = "/mnt/svn-data/repos";   存放仓库的目录
 $svn_passwd_file = "/mnt/svn-data/conf/passwd";  存放密码的文件
 $svn_access_file = "/mnt/svn-data/conf/authz"; 存放权限分配的文件
 $svn_trash_loc = "/mnt/svn-data/trash";  设置回收站目录,以防误删
 $dsn  =   "mysqli://svn_admin:you_password@localhost/svn_manager";  连接mysql SVN数据库
 //数据库
 $admin_name = "admin"; 初始用户名
 $admin_temp_password = "admin"; 初始密码
:x
Apache配置修改
# vim /usr/local/apache/conf/httpd.conf
<Location /repos>
    DAV svn
    #SVNPath /mnt/svn-data/
    SVNParentPath /mnt/svn-data/repos
    SVNListParentPath on

    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile "/mnt/svn-data/conf/passwd" 
    AuthzSVNAccessFile "/mnt/svn-data/conf/authz" 

    Require valid-user
    SSLRequireSSL  

</Location>
:x
重启Apache
# service httpd restart
访问
http://svn-manager.keyush.cn/
svnmanager 安装完毕后,使用admin/admin 登陆后,添加新用户时出现“You entered an invalid email address. ” 错误。
解决方法是:修改svnmanager/UserModule/AddPage.tpl 文件
即注释掉第33行
 <com:TEmailAddressValidator ControlToValidate="Email" Display="Dynamic">Invalid e-mail address!</com:TEmailAddressValidator>
改为
 <!--<com:TEmailAddressValidator ControlToValidate="Email" Display="Dynamic">Invalid  e-mail address!</com:TEmailAddressValidator>-->
16.开启HTTPS
购买证书,并把证书文件上传到apache的配置目录下,新建ssl目录中
修改apache配置文件
# vim /usr/local/apache/conf/httpd.conf
 #LoadModule ssl_module modules/mod_ssl.so
 #Include conf/extra/httpd-ssl.conf
取消#
:x
# vim /usr/local/apache2/conf/extra/httpd-ssl.conf
<VirtualHost *:443>    
    ServerName  svn-manager.keyush.cn。                   
    DocumentRoot  /var/www/html/svnmanager-1.10      
    ErrorLog "logs/svnmanager-error_log"
    CustomLog "logs/svnmanager-access_log" common
    <Directory /var/www/html/svnmanager-1.10>
        AllowOverride all
        Options -MultiViews
        Require all granted
    </Directory> 
 
    SSLEngine on  
    SSLProtocol all -SSLv2 -SSLv3 # 添加SSL协议支持协议,去掉不安全的协议。
    SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM   # 修改加密套件。
    SSLHonorCipherOrder on
    SSLCertificateFile cert/domain name1_public.crt   # 将domain name1_public.crt替换成您证书文件名。
    SSLCertificateKeyFile cert/domain name1.key   # 将domain name1.key替换成您证书的密钥文件名。
    SSLCertificateChainFile cert/domain name1_chain.crt  # 将domain name1_chain.crt替换成您证书的密钥文件名;证书链开头如果有#字符,请删除。
</VirtualHost>
:x
配置强制https
# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
对应域名的虚拟主机修改如下

<VirtualHost *:80>
    ServerName svn-manager.keyush.cn
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
:x
配置Apache访问svn节点
# vim /usr/local/apache2/conf/extra/httpd-ssl.conf 
<VirtualHost *:443>
    ServerName   svn.keyush.cn
    DocumentRoot  /mnt/svn-data/repos
    ErrorLog "/usr/local/apache2/logs/svnm-error_log"
    CustomLog "/usr/local/apache2/logs/svnm-access_log" common
    <Directory /mnt/svn-data/repos>
        AllowOverride all
        Options -MultiViews
        Require all granted
    </Directory>

    SSLCertificateFile "/usr/local/apache2/conf/ssl/XXXX_public.crt"
    SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/XXXXX.key"
    SSLCertificateChainFile "/usr/local/apache2/conf/ssl/XXXX_chain.crt"
</VirtualHost>
:x
强制https访问svn节点
# vim extra/httpd-vhosts.conf
<VirtualHost *:80>
    ServerName svn.keyush.cn
    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443
    RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]
</VirtualHost>
:x
配置开机自启
# systemctl enable mysqld
# systemctl enable httpd
svnmanager1.10安装完毕后,选择“Repository Admin"-->"Group Privileges",会出现repository的列表,选择其中一个”Select"后,会出现如下错误:
VersionControl_SVN_Exception: "svn_path" is not a valid option
#0 /usr/local/php/lib/php/VersionControl/SVN.php(267): VersionControl_SVN_Command->setOptions(Array)
#1 /usr/local/php/lib/php/VersionControl/SVN.php(226): VersionControl_SVN::init('list', Array)
#2 /opt/apps/web/php/svnmanager/svnmanager/RepositoryModule/GroupPrivilegesEditPage.php(214): VersionControl_SVN::factory(Array, Array)
......
解决方法是编辑/var/www/html/svnmanager/svnmanager/RepositoryModule目录下的

 UserPrivilegesEditPage.php 和 GroupPrivilegesEditPage.php 文件 :

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => $svn_cmd);

改成:

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY);

目前程序运行良好,但是不知道以后是否会有问题。

这篇关于CentOs7.8_x64安装Apache2.4.48+Mysql5.7.33+Redmine4.2.1+Subversion1.14.1+PHP7.3.27+SvnManager1.10的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/281391

相关文章

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

如何在pycharm安装torch包

《如何在pycharm安装torch包》:本文主要介绍如何在pycharm安装torch包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录在pycharm安装torch包适http://www.chinasem.cn配于我电脑的指令为适用的torch包为总结在p

在PyCharm中安装PyTorch、torchvision和OpenCV详解

《在PyCharm中安装PyTorch、torchvision和OpenCV详解》:本文主要介绍在PyCharm中安装PyTorch、torchvision和OpenCV方式,具有很好的参考价值,... 目录PyCharm安装PyTorch、torchvision和OpenCV安装python安装PyTor

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

如何解决mmcv无法安装或安装之后报错问题

《如何解决mmcv无法安装或安装之后报错问题》:本文主要介绍如何解决mmcv无法安装或安装之后报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mmcv无法安装或安装之后报错问题1.当我们运行YOwww.chinasem.cnLO时遇到2.找到下图所示这里3.

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1