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

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

MySQL MCP 服务器安装配置最佳实践

《MySQLMCP服务器安装配置最佳实践》本文介绍MySQLMCP服务器的安装配置方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录mysql MCP 服务器安装配置指南简介功能特点安装方法数据库配置使用MCP Inspector进行调试开发指

在Windows上使用qemu安装ubuntu24.04服务器的详细指南

《在Windows上使用qemu安装ubuntu24.04服务器的详细指南》本文介绍了在Windows上使用QEMU安装Ubuntu24.04的全流程:安装QEMU、准备ISO镜像、创建虚拟磁盘、配置... 目录1. 安装QEMU环境2. 准备Ubuntu 24.04镜像3. 启动QEMU安装Ubuntu4

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Nexus安装和启动的实现教程

《Nexus安装和启动的实现教程》:本文主要介绍Nexus安装和启动的实现教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Nexus下载二、Nexus安装和启动三、关闭Nexus总结一、Nexus下载官方下载链接:DownloadWindows系统根

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优