资讯专栏INFORMATION COLUMN

CentOS7.3搭建Apache+PHP7+web SVN+MariaDB Web服务器(2018

苏丹 / 2009人阅读

摘要:免责声明本教程仅以个人经验撰写,未必适合所有系统环境。如在使用本教程途中,出现无法挽救的损失如数据丢失等,本人概不负责。本文最终服务器环境配置下面开始进入教程吧。教程结束本次教程本人在下搭建成功。

注意:本教程使用干净的 CentOS 7进行安装,如果您已安装其他环境或软件,涉及到内核升级,请您妥善备份,可能导致您已安装的软件不兼容或出现其他问题。

免责声明:本教程仅以个人经验撰写,未必适合所有系统环境。如在使用本教程途中,出现无法挽救的损失(如数据丢失等),本人概不负责。

再次提醒:使用本教程前请妥善备份现有数据!使用本教程前请妥善备份现有数据!使用本教程前请妥善备份现有数据!

如果您使用本教程的方法过程中出现问题,您可留言,我将在能力范围内尽可能协助解决。

本文最终服务器环境配置:

Apache 2.7.28
subversion 1.11.0
MariaDB 10.3.11
php 7.3.0

下面开始进入教程吧。

一. 升级内核和软件包
[root@instance-l79ltvo6 ~]# yum -y update
...    
Complete!

直到控制台输出Complete!说明升级完成,最好还是重启一下吧

[root@instance-l79ltvo6 ~]# reboot
二. 安装 apache 2.4.37

先安装一些基本依赖

[root@instance-l79ltvo6 ~]# yum install -y gcc gcc-c++ openssl-devel zlib-devel
//在root目录下创建一个soft文件夹,我们本次教程的软件将都放在该目录下
[root@instance-l79ltvo6 ~]# mkdir soft 
[root@instance-l79ltvo6 ~]# cd soft
然后开始安装apr、apr-util、pcre 3个依赖,最后再安装 apache
1. 安装 apr
[root@instance-l79ltvo6 ~]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf apr-1.6.5.tar.gz
[root@instance-l79ltvo6 ~]# cd apr-1.6.5/
[root@instance-l79ltvo6 ~]# ./configure --prefix=/usr/local/apr
[root@instance-l79ltvo6 ~]# make && make install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
因为我们使用了 apr 1.6.5 的依赖,所以下面我们必须要用 apr-util 1.6.1 版本,apr-util 1.6.1
不再捆绑安装 expat ,但又需要 expat 的支持,所以我们得手动先安装 expat。不然编译 apache 的时候会报错。
2 安装 expat
[root@instance-l79ltvo6 ~]# wget https://sourceforge.net/projects/expat/files/expat/2.2.3/expat-2.2.3.tar.bz2
[root@instance-l79ltvo6 ~]# tar jxf expat-2.2.3.tar.bz2 //使用minimal安裝的centos请先执行yum install -y bzip2
[root@instance-l79ltvo6 ~]# cd expat-2.2.3/
[root@instance-l79ltvo6 ~]# ./configure --prefix=/usr/local/expat
[root@instance-l79ltvo6 ~]# make && make install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
3 安装 apr-util
[root@instance-l79ltvo6 ~]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf apr-util-1.6.1.tar.gz
[root@instance-l79ltvo6 ~]# cd apr-util-1.6.1/
[root@instance-l79ltvo6 ~]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
[root@instance-l79ltvo6 ~]# make && make install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
4 安装 pcre
[root@instance-l79ltvo6 ~]# wget http://sourceforge.mirrorservice.org/p/pc/pcre/pcre/8.41/pcre-8.41.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf pcre-8.41.tar.gz
[root@instance-l79ltvo6 ~]# cd pcre-8.41/
[root@instance-l79ltvo6 ~]# ./configure --prefix=/usr/local/pcre
[root@instance-l79ltvo6 ~]# make && make install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
5 安装 apache
[root@instance-l79ltvo6 ~]# wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.37.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf httpd-2.4.37.tar.gz
[root@instance-l79ltvo6 ~]# cd httpd-2.4.37/
[root@instance-l79ltvo6 ~]# ./configure 
--prefix=/usr/local/apache 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util 
--with-pcre=/usr/local/pcre 
--with-ssl 
--with-zlib 
--with-mpm=worker 
--enable-rewrite 
--enable-so 
--enable-ssl 
--enable-cache 
--enable-disk-cache 
--enable-file-cache 
--enable-mem-cache 
--enable-headers 
--enable-expires 
--enable-deflate 
--enable-dav 
--enable-dav-fs 
--enable-cgi 
--enable-proxy 
--enable-proxy-fcgi
//这里请根据自身实际情况开启相关模块
[root@instance-l79ltvo6 ~]# make && make install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
6 修改 apache 配置文件
编辑/usr/local/apache/conf/httpd.conf
#LoadModule ssl_module modules/mod_ssl.so //去掉#开启 SSL
#LoadModule rewrite_module modules/mod_rewrite.so  //去掉#开启 rewrite
#ServerName www.example.com:80    //去掉#并把 www.example.com:80 修改为你的IP:80或者域名
#Include conf/extra/httpd-vhosts.conf     //去掉#,开启虚拟主机配置
//如果你需要安装svn服务,你需要开启
#LoadModule dav_module modules/mod_dav.so//去掉#
找到以下代码并更换

    AllowOverride none
    Require all denied

//修改为

    Options Indexes FollowSymLinks    //如不需要显示目录,把 Indexes 去掉
    AllowOverride ALL    //开启rewrite
    Require all granted
编辑/usr/local/apache/conf/extra/httpd-vhosts.conf,删除全部,并添加下列代码

    DocumentRoot "/usr/local/apache/htdocs"
    ServerName your IP    //你的IP地址
    ErrorLog "logs/你的IP-error_log"
    CustomLog "logs/你的IP-access_log" common
7 添加启动服务
[root@instance-l79ltvo6 ~]# cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/
[root@instance-l79ltvo6 ~]# mv /etc/rc.d/init.d/apachectl /etc/rc.d/init.d/httpd
[root@instance-l79ltvo6 ~]# cd /etc/rc.d/init.d/
编辑 httpd ,在 #!/bin/sh 下面添加下面代码
# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 90 90
# description:http server
注册服务
[root@instance-l79ltvo6 ~]# chkconfig --add httpd
[root@instance-l79ltvo6 ~]# chkconfig httpd on
把 apache 加入系统环境变量
[root@instance-l79ltvo6 ~]# vim /etc/profile.d/httpd.sh
//写入
export PATH=$PATH:/usr/local/apache/bin
//保存后赋予执行权限
[root@instance-l79ltvo6 ~]# chmod 0777 /etc/profile.d/httpd.sh
[root@instance-l79ltvo6 ~]# source /etc/profile.d/httpd.sh
8 启动 apache
首先检查配置文件是否出错
[root@instance-l79ltvo6 ~]# /usr/local/apache/bin/apachectl -t
Syntax OK    //说明没问题,可以直接启动
启动 apache
[root@instance-l79ltvo6 ~]# systemctl start httpd.service
然后打开浏览器,输入你的IP地址,看到It works!,说明apache成功启动了
It works!
三. 安装 subversion 1.11.0
(如不需要svn服务请跳过)
1 安装 scons
[root@instance-l79ltvo6 ~]# cd /root/soft
[root@instance-l79ltvo6 ~]# wget http://sourceforge.mirrorservice.org/s/sc/scons/scons/2.5.1/scons-2.5.1.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf scons-2.5.1.tar.gz
[root@instance-l79ltvo6 ~]# cd scons-2.5.1/
[root@instance-l79ltvo6 ~]# python setup.py install --prefix=/usr/local/scons
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
2 安装 serf
[root@instance-l79ltvo6 ~]# wget http://mirror.bit.edu.cn/apache/serf/serf-1.3.9.tar.bz2
[root@instance-l79ltvo6 ~]# tar xf serf-1.3.9.tar.bz2
[root@instance-l79ltvo6 ~]# cd serf-1.3.9/
[root@instance-l79ltvo6 ~]# /usr/local/scons/bin/scons prefix=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util
[root@instance-l79ltvo6 ~]# /usr/local/scons/bin/scons install
[root@instance-l79ltvo6 ~]# cd ..    //返回上级目录
3 编译 subverion
[root@instance-l79ltvo6 ~]# wget http://www.sqlite.org/2017/sqlite-amalgamation-3190300.zip
[root@instance-l79ltvo6 ~]# wget https://mirror.bit.edu.cn/apache/subversion/subversion-1.11.0.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf subversion-1.11.0.tar.gz
[root@instance-l79ltvo6 ~]# unzip sqlite-amalgamation-3190300.zip
[root@instance-l79ltvo6 ~]# mv /root/soft/sqlite-amalgamation-3190300 /root/soft/subversion-1.11.0/sqlite-amalgamation
[root@instance-l79ltvo6 ~]# cd subversion-1.11.0/
[root@instance-l79ltvo6 ~]# ./configure 
--prefix=/usr/local/svn 
--with-apr=/usr/local/apr 
--with-apr-util=/usr/local/apr-util 
--with-serf=/usr/local 
--enable-mod-activation 
--with-apache-libexecdir=/usr/local/apache/modules 
--with-apxs=/usr/local/apache/bin/apxs  
--without-berkeley-db  
--with-lz4=internal  
--with-utf8proc=internal
[root@instance-l79ltvo6 ~]# make && make install
给SVN创建一个名为svn的非登录用户
[root@instance-l79ltvo6 ~]# useradd svn -s /sbin/nologin
把svn加入到系统环境变量
[root@instance-l79ltvo6 ~]# vim /etc/profile.d/svn.sh
//添加
export PATH=$PATH:/usr/local/svn/bin
保存后赋予执行权限
[root@instance-l79ltvo6 ~]# chmod 0777 /etc/profile.d/svn.sh
[root@instance-l79ltvo6 ~]# source /etc/profile.d/svn.sh
在/etc/ld.so.conf.d/创建一个serf-1.3.9.conf,指定lib目录,不然svn启动会报错
[root@instance-l79ltvo6 ~]# vim /etc/ld.so.conf.d/serf-1.3.9.conf
//添加
/usr/local/lib
保存后刷新
[root@instance-l79ltvo6 ~]# /sbin/ldconfig -v
4 配置 subverion
下面我们先创建一个 test 项目
[root@instance-l79ltvo6 ~]# mkdir -p /data/svn
[root@instance-l79ltvo6 ~]# cd /data/svn
[root@instance-l79ltvo6 ~]# svnadmin create test
然后我们打开 /data/svn/test /就会发现里面自动创建了一些目录
conf
db
format
hooks
locks
README.txt
在conf里面的文件就是配置该项目的人员和权限,但如果多个项目,开发人员一样,那就要配置很多次了,这样很麻烦,所以我们要弄成配置一次权限就能直接应用到所有项目里面。
[root@instance-l79ltvo6 ~]# cp /data/svn/test/conf/authz  /data/svn/authz
[root@instance-l79ltvo6 ~]# cp /data/svn/test/conf/passwd  /data/svn/passwd
[root@instance-l79ltvo6 ~]# cp /data/svn/test/conf/svnserve.conf  /data/svn/svnserve.conf
//然后设置一个用户密码,这里以创建root用户为例,这里的演示是将密码加密而非明文存储
[root@instance-l79ltvo6 ~]# htpasswd -c /data/svn/passwd root
New password:       //输入密码
Re-type new password:    //再次输入密码
这样 root 用户就创建完成了,创建其他用户同理。 接下来我们需要修改配置文件
[root@instance-l79ltvo6 ~]# vim /data/svn/svnserve.conf
//删除所有内容,增加下面的代码
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
//保存
[root@instance-l79ltvo6 ~]# vim /data/svn/authz
//删除所有内容,增加下面的代码
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average

[groups]
administrators = root

[/]
@administrators=rw

[test:/]
* = r
//保存
我们尝试启动下svn服务
[root@instance-l79ltvo6 ~]# svnserve --config-file /data/svn/svnserve.conf -d -r /data/svn
没有报错,说明启动成功了 
把/data/svn/目录的拥有者更改为svn
[root@instance-l79ltvo6 ~]# chown -R svn:svn /data/svn
最后我们需要修改 apache 的相关配置文件 
编辑/usr/local/apche/conf/httpd.conf
//找到
User daemon
Group daemon
//修改为
User svn
Group svn
编辑/usr/local/apache/conf/extra/httpd-vhost.conf,把刚刚那次编辑的内容更换为

    ServerName 你的IP
    ErrorLog "logs/你的IP-error_log"
    CustomLog "logs/你的IP-access_log" common
    
      DAV svn
      #support more repositories
      SVNParentPath /data/svn

      #list all repositories
      #SVNListParentPath on
      AuthType Basic
      AuthName "Please input Username and Password"
      AuthUserFile /data/svn/passwd
      AuthzSVNAccessFile /data/svn/authz
      Require valid-user
    
然后停止 apache 服务
[root@instance-l79ltvo6 ~]# systemctl stop httpd.service
检查 apache 配置文件是否出错
[root@instance-l79ltvo6 ~]# /usr/local/apache/bin/apachectl -t
Syntax OK    //说明没问题,可以直接启动
重新启动 apache
[root@instance-l79ltvo6 ~]# systemctl start httpd.service
打开浏览器访问http://你的ip/svn/test,提示输入账号密码 也可以使用TortoiseSVN进行操作
输入刚刚设置的账号密码后显示
test - Revision 0: /
说明配置成功,apache+svn服务启动成功
四. 安装 MariaDB 10.3.11
参考https://segmentfault.com/a/11...,把相关版本号更换为10.3.11即可(第6步无需操作:6. 复制MariaDB配置文件到/etc目录)
五. 安装 PHP 7.3.0
先安装基本依赖
[root@instance-l79ltvo6 ~]# yum -y install gcc gcc-c++ autoconf automake libtool re2c flex bison php-mcrypt libmcrypt libmcrypt-devel openssl-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype-devel zlib-devel mcrypt bzip2-devel libicu-devel systemd-devel mhash postgresql-devel libxslt libxslt-devel
安装libzip
[root@instance-l79ltvo6 ~]# cd /root/soft
[root@instance-l79ltvo6 ~]# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
[root@instance-l79ltvo6 ~]# tar -zxvf libzip-1.2.0.tar.gz
[root@instance-l79ltvo6 ~]# cd libzip-1.2.0
[root@instance-l79ltvo6 ~]# ./configure
[root@instance-l79ltvo6 ~]# make && make install
即使安装了 libzip ,编译PHP的时候也可能会出现找不到 zipconf.h,所以手动复制一下
[root@instance-l79ltvo6 ~]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
添加搜索路径到配置文件
[root@instance-l79ltvo6 ~]# echo "/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64">>/etc/ld.so.conf
//更新配置
[root@instance-l79ltvo6 ~]# ldconfig -v
编译 PHP
[root@instance-l79ltvo6 ~]# cd /root/soft
[root@instance-l79ltvo6 ~]# wget http://cn2.php.net/distributions/php-7.3.0.tar.gz
[root@instance-l79ltvo6 ~]# tar zxf php-7.3.0.tar.gz
[root@instance-l79ltvo6 ~]# cd php-7.3.0/
[root@instance-l79ltvo6 ~]# ./configure 
--prefix=/usr/local/php 
--with-apxs2=/usr/local/apache/bin/apxs 
--with-curl 
--with-freetype-dir 
--with-gd 
--with-gettext 
--with-iconv-dir 
--with-kerberos 
--with-libdir=lib64 
--with-libxml-dir 
--with-mysqli 
--with-openssl 
--with-pcre-regex 
--with-pdo-mysql 
--with-pdo-sqlite 
--with-pear 
--with-png-dir 
--with-xmlrpc 
--with-xsl 
--with-zlib 
--with-mhash 
--enable-fpm 
--enable-bcmath 
--enable-libxml 
--enable-inline-optimization 
--enable-mbregex 
--enable-mbstring 
--enable-opcache 
--enable-pcntl 
--enable-shmop 
--enable-soap 
--enable-sockets 
--enable-sysvsem 
--enable-xml 
--enable-zip 
--enable-mysqlnd
[root@instance-l79ltvo6 ~]# make && make install
...    //漫长的等待
编译成功
[PEAR] Archive_Tar    - installed: 1.4.3
[PEAR] Console_Getopt - installed: 1.4.1
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.2
[PEAR] PEAR           - installed: 1.10.5
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/root/soft/php-7.1.8/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
Installing PDO headers:           /usr/local/php/include/php/ext/pdo/
这里提示让我们从源码包复制一份 php.ini 到 /usr/local/php/lib/
[root@instance-l79ltvo6 ~]# cp php.ini-development /usr/local/php/lib/php.ini
修改 apache ,让 apache 支持 php
编辑/usr/local/apache/conf/httpd.conf
LoadModule php7_module        modules/libphp7.so    //默认是开启php7.so
//找到 ,在前面增加
    AddType application/x-httpd-php .php .php3 .phtml .inc
    AddType application/x-httpd-php-source .phps
//找到 DirectoryIndex index.html,增加index.php
DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3
保存后看看httpd.conf有没有出错
[root@instance-l79ltvo6 ~]# /usr/local/apache/bin/apachectl -t
Syntax OK    //说明没问题,可以直接启动
把PHP加入环境变量
[root@instance-l79ltvo6 ~]# vim /etc/profile.d/php.sh
//加入
export PATH=$PATH:/usr/local/php/bin
//保存后赋予执行权限
[root@instance-l79ltvo6 ~]# chmod 0777 /etc/profile.d/php.sh
[root@instance-l79ltvo6 ~]# source /etc/profile.d/php.sh
停止 apache,然后重新启动 apache
[root@instance-l79ltvo6 ~]# systemctl stop httpd.service
[root@instance-l79ltvo6 ~]# systemctl start httpd.service
测试PHP
[root@instance-l79ltvo6 ~]# vim /usr/local/apache/htdocs/phpinfo.php
//加入

保存后访问http://你的IP/phpinfo.php
如果成功访问到PHP的相关信息,那么PHP环境配置成功。

教程结束

本次教程本人在 CentOS 7.3 下搭建成功。
如果出现编译失败也不要灰心,一般都是缺少相关依赖,善于利用搜索引擎。如果实在不知道怎么解决,给我留言,我会在能力范围尽可能的协助解决。
觉得本文章有用,别忘了点赞和收藏喔。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/25680.html

相关文章

  • CentOS7.3搭建Apache+PHP7+web SVN+MariaDB Web务器2018

    摘要:免责声明本教程仅以个人经验撰写,未必适合所有系统环境。如在使用本教程途中,出现无法挽救的损失如数据丢失等,本人概不负责。本文最终服务器环境配置下面开始进入教程吧。教程结束本次教程本人在下搭建成功。 注意:本教程使用干净的 CentOS 7进行安装,如果您已安装其他环境或软件,涉及到内核升级,请您妥善备份,可能导致您已安装的软件不兼容或出现其他问题。 免责声明:本教程仅以个人经验撰写,...

    binaryTree 评论0 收藏0
  • CentOS7.3搭建Apache+PHP7+web SVN+MariaDB Web务器2018

    摘要:免责声明本教程仅以个人经验撰写,未必适合所有系统环境。如在使用本教程途中,出现无法挽救的损失如数据丢失等,本人概不负责。本文最终服务器环境配置下面开始进入教程吧。教程结束本次教程本人在下搭建成功。 注意:本教程使用干净的 CentOS 7进行安装,如果您已安装其他环境或软件,涉及到内核升级,请您妥善备份,可能导致您已安装的软件不兼容或出现其他问题。 免责声明:本教程仅以个人经验撰写,...

    leo108 评论0 收藏0
  • 腾讯云使用笔记一: 腾讯云重装记录

    摘要:或少了因为启动时不是账号,就会这样前面别忘了加文件直接下载,不解析因为没有配置的解决办法引起通常是三种情况一是缺少索引文件,二是权限问题,三是状态。 ========腾讯云重装记录================ 安装时间:2018-09-09 12:15开始,结束时间: 一:重装操作系统 进入腾讯云后台,微信扫码登录 选择主机/更多/重装系统/服务市场/Docker容器/腾讯云容器...

    ashe 评论0 收藏0
  • 腾讯云使用笔记一: 腾讯云重装记录

    摘要:或少了因为启动时不是账号,就会这样前面别忘了加文件直接下载,不解析因为没有配置的解决办法引起通常是三种情况一是缺少索引文件,二是权限问题,三是状态。 ========腾讯云重装记录================ 安装时间:2018-09-09 12:15开始,结束时间: 一:重装操作系统 进入腾讯云后台,微信扫码登录 选择主机/更多/重装系统/服务市场/Docker容器/腾讯云容器...

    ThreeWords 评论0 收藏0
  • 腾讯云使用笔记一: 腾讯云重装记录

    摘要:或少了因为启动时不是账号,就会这样前面别忘了加文件直接下载,不解析因为没有配置的解决办法引起通常是三种情况一是缺少索引文件,二是权限问题,三是状态。 ========腾讯云重装记录================ 安装时间:2018-09-09 12:15开始,结束时间: 一:重装操作系统 进入腾讯云后台,微信扫码登录 选择主机/更多/重装系统/服务市场/Docker容器/腾讯云容器...

    xiaotianyi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<