Рубрики
Uncategorized

Centos7.3 сборка веб-сервера Apache + php 7 + WebSVN + MariaDB (29 декабря 2018)

Автор оригинала: David Wong.

Будьте осторожны: В этом руководстве для установки используется чистый CentOS 7. Если вы установили другие среды или программное обеспечение, включающее обновление ядра, пожалуйста, выполните резервное копирование должным образом, что может привести к несовместимости или другим проблемам с установленным программным обеспечением.

Отказ от ответственности: Этот учебник написан только с учетом личного опыта и может не подходить для всех системных сред. Я не несу ответственности за какие-либо невосполнимые потери (например, потерю данных) во время использования этого руководства.

Еще раз: Пожалуйста, сделайте резервную копию существующих данных перед использованием этого урока! Пожалуйста, сделайте резервную копию существующих данных перед использованием этого руководства! Пожалуйста, создайте резервную копию существующих данных должным образом перед использованием этого руководства!

Если у вас возникнут какие-либо проблемы в процессе использования метода этого урока, вы можете оставить сообщение, и я сделаю все возможное, чтобы помочь их решить.

Окончательная конфигурация серверной среды в этой статье:

Apache 2.7.28
subversion 1.11.0
MariaDB 10.3.11
php 7.3.0

Давайте начнем учебник.

[[email protected] ~]# yum -y update
...    
Complete!

Пока вывод на консоль не будет завершен! Указывает, что обновление завершено. Лучше перезапустить его

[[email protected] ~]# reboot

Сначала установите некоторые основные зависимости

[[email protected] ~]# yum install -y gcc gcc-c++ openssl-devel zlib-devel
//Create a soft folder in the root directory where all the software of this tutorial will be placed
[[email protected] ~]# mkdir soft 
[[email protected] ~]# cd soft

Затем начните устанавливать три зависимости: Apr, APR util и PCRE и, наконец, установите Apache

1. Установите APR

[[email protected] ~]# wget http://mirror.bit.edu.cn/apache/apr/apr-1.6.5.tar.gz
[[email protected] ~]# tar zxf apr-1.6.5.tar.gz
[[email protected] ~]# cd apr-1.6.5/
[[email protected] ~]# ./configure --prefix=/usr/local/apr
[[email protected] ~]# make && make install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

Поскольку мы используем зависимость от APR 1.6.5, мы должны использовать APR util 1.6.1, APR util 1.6.1 Expat больше не устанавливается в комплекте, но он должен поддерживаться expat, поэтому сначала мы должны установить expat вручную. В противном случае при компиляции Apache будет сообщено об ошибке.

2 установите эмигранта

[[email protected] ~]# 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 // for CentOS installed with minimal, please execute Yum install - y bzip2 first
[[email protected] ~]# cd expat-2.2.3/
[[email protected] ~]# ./configure --prefix=/usr/local/expat
[[email protected] ~]# make && make install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

3 установите APR util

[[email protected] ~]# wget http://mirror.bit.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
[[email protected] ~]# tar zxf apr-util-1.6.1.tar.gz
[[email protected] ~]# cd apr-util-1.6.1/
[[email protected] ~]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-expat=/usr/local/expat
[[email protected] ~]# make && make install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

4 установите PCRE

[[email protected] ~]# wget http://sourceforge.mirrorservice.org/p/pc/pcre/pcre/8.41/pcre-8.41.tar.gz
[[email protected] ~]# tar zxf pcre-8.41.tar.gz
[[email protected] ~]# cd pcre-8.41/
[[email protected] ~]# ./configure --prefix=/usr/local/pcre
[[email protected] ~]# make && make install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

5 установите Apache

[[email protected] ~]# wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.37.tar.gz
[[email protected] ~]# tar zxf httpd-2.4.37.tar.gz
[[email protected] ~]# cd httpd-2.4.37/
[[email protected] ~]# ./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
//Here, please open the relevant modules according to your actual situation
[[email protected] ~]# make && make install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

6 измените файл конфигурации Apache

Редактировать/usr/локальный/Apache/conf/httpd.conf

#Loadmodule SSL? Module modules / module? SSL. So // remove and enable SSL
#Loadmodule rewrite? Module modules / module rewrite.so // remove it and enable rewrite
#Servername www.example.com: 80 // remove ා, and change www.example.com: 80 to your IP: 80 or domain name
#Include conf / extra / httpd-vhosts.conf // remove and enable virtual host configuration
//If you need to install the SVN service, you need to turn it on
#Loadmodule Dav? Module modules / module Dav. So // remove#

Найдите и замените следующий код


    AllowOverride none
    Require all denied

// modified to

    Options indexes followsymlinks // if the directory does not need to be displayed, remove the indexes
    Allowoverride all // enable rewrite
    Require all granted

Отредактируйте/usr/local/Apache/conf/extra/httpd-vhosts.conf, удалите все и добавьте следующий код


    DocumentRoot "/usr/local/apache/htdocs"
    Servername your IP // your IP address
    Error log "logs / your IP error log"
    CustomLog "logs / your IP access log" common

7 добавьте службу запуска

[[email protected] ~]# cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/
[[email protected] ~]# mv /etc/rc.d/init.d/apachectl /etc/rc.d/init.d/httpd
[[email protected] ~]# cd /etc/rc.d/init.d/

Отредактируйте httpd и добавьте следующий код в поле ×!/bin/Sh

# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 90 90
# description:http server

Регистрационная служба

[[email protected] ~]# chkconfig --add httpd
[[email protected] ~]# chkconfig httpd on

Добавьте Apache в системную переменную среды

[[email protected] ~]# vim /etc/profile.d/httpd.sh
// writing
export PATH=$PATH:/usr/local/apache/bin
//Give execution permission after saving
[[email protected] ~]# chmod 0777 /etc/profile.d/httpd.sh
[[email protected] ~]# source /etc/profile.d/httpd.sh

8 запустите Apache

Сначала проверьте профиль на наличие ошибок

[[email protected] ~]# /usr/local/apache/bin/apachectl -t
Syntax OK // no problem. You can start it directly

Запустите Apache

[[email protected] ~]# systemctl start httpd.service

Затем откройте браузер, введите свой IP-адрес и посмотрите, работает ли он!, указывая, что Apache успешно запущен

It works!

(пропустите, если служба SVN не нужна)

1 установите БРА

[[email protected] ~]# cd /root/soft
[[email protected] ~]# wget http://sourceforge.mirrorservice.org/s/sc/scons/scons/2.5.1/scons-2.5.1.tar.gz
[[email protected] ~]# tar zxf scons-2.5.1.tar.gz
[[email protected] ~]# cd scons-2.5.1/
[[email protected] ~]# python setup.py install --prefix=/usr/local/scons
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

2 установите крепостного

[[email protected] ~]# wget http://mirror.bit.edu.cn/apache/serf/serf-1.3.9.tar.bz2
[[email protected] ~]# tar xf serf-1.3.9.tar.bz2
[[email protected] ~]# cd serf-1.3.9/
[[email protected] ~]# /usr/local/scons/bin/scons prefix=/usr/local/serf APR=/usr/local/apr APU=/usr/local/apr-util
[[email protected] ~]# /usr/local/scons/bin/scons install
[root @ instance-l79ltvo6 ~] (CD.. // return to the parent directory

3 скомпилируйте subversion

[[email protected] ~]# wget http://www.sqlite.org/2017/sqlite-amalgamation-3190300.zip
[[email protected] ~]# wget https://mirror.bit.edu.cn/apache/subversion/subversion-1.11.0.tar.gz
[[email protected] ~]# tar zxf subversion-1.11.0.tar.gz
[[email protected] ~]# unzip sqlite-amalgamation-3190300.zip
[[email protected] ~]# mv /root/soft/sqlite-amalgamation-3190300 /root/soft/subversion-1.11.0/sqlite-amalgamation
[[email protected] ~]# cd subversion-1.11.0/
[[email protected] ~]# ./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
[[email protected] ~]# make && make install

Создайте пользователя без входа в систему с именем SVN для SVN

[[email protected] ~]# useradd svn -s /sbin/nologin

Добавление SVN в системные переменные среды

[[email protected] ~]# vim /etc/profile.d/svn.sh
// add
export PATH=$PATH:/usr/local/svn/bin
Give execution permission after saving
[[email protected] ~]# chmod 0777 /etc/profile.d/svn.sh
[[email protected] ~]# source /etc/profile.d/svn.sh

Создайте serf-1.3.9.conf в/etc/ld.so.conf.d/и укажите каталог Lib, иначе при запуске SVN появится сообщение об ошибке

[[email protected] ~]# vim /etc/ld.so.conf.d/serf-1.3.9.conf
// add
/usr/local/lib
Refresh after saving
[[email protected] ~]# /sbin/ldconfig -v

4 настройка subversion

Давайте сначала создадим тестовый проект

[[email protected] ~]# mkdir -p /data/svn
[[email protected] ~]# cd /data/svn
[[email protected] ~]# svnadmin create test

Затем мы открываем/данные/SVN/тест/и обнаруживаем, что некоторые каталоги создаются автоматически

conf
db
format
hooks
locks
README.txt

Файл в conf предназначен для настройки персонала и разрешений проекта, но если несколько проектов совпадают с разработчиками, их необходимо настраивать много раз, что очень хлопотно, поэтому нам нужно настроить разрешения один раз, чтобы напрямую применить их ко всем проектам.

[[email protected] ~]# cp /data/svn/test/conf/authz  /data/svn/authz
[[email protected] ~]# cp /data/svn/test/conf/passwd  /data/svn/passwd
[[email protected] ~]# cp /data/svn/test/conf/svnserve.conf  /data/svn/svnserve.conf
//Then set a user password. Take creating root as an example. The demonstration here is to encrypt the password instead of storing it in clear text
[[email protected] ~]# htpasswd -c /data/svn/passwd root
New password: // enter the password
Re type new password: // enter the password again

Таким образом, создается пользователь root, и таким же образом создаются другие пользователи. Далее нам нужно изменить файл конфигурации

[[email protected] ~]# vim /data/svn/svnserve.conf
//Delete everything and add the following code
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
[sasl]
// preservation
[[email protected] ~]# vim /data/svn/authz
//Delete everything and add the following code
[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
// preservation

Мы пытаемся запустить службу SVN

[[email protected] ~]# svnserve --config-file /data/svn/svnserve.conf -d -r /data/svn

Об ошибке не сообщается, что указывает на успешный запуск. Измените владельца каталога/data/SVN/на SVN

[[email protected] ~]# chown -R svn:svn /data/svn

Наконец, нам нужно изменить файл конфигурации Apache Edit/usr/local/Apache/conf/httpd.conf

// find
User daemon
Group daemon
// modified to
User svn
Group svn

Отредактируйте/usr/local/Apache/conf/extra/httpd-vhosts.conf и замените только что отредактированное содержимое на


    Servername your IP
    Error log "logs / your IP error log"
    CustomLog "logs / your 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

[[email protected] ~]# systemctl stop httpd.service

Проверьте, есть ли в файле конфигурации Apache ошибки

[[email protected] ~]# /usr/local/apache/bin/apachectl -t
Syntax OK // no problem. You can start it directly

Перезапустить Apache

[[email protected] ~]# systemctl start httpd.service

Откройте браузер для доступа к http://ваш IP/SVN/тест, и вам будет предложено ввести пароль учетной записи. Вы также можете использовать TortoiseSVN для отображения операций после ввода пароля учетной записи, просто установленного

test - Revision 0: /

Указывает, что конфигурация выполнена успешно и служба Apache + SVN успешно запущена

Обратитесь к https://segmentfault.com/a/11… И измените соответствующий номер версии на 10.3.11 (шаг 6 не требуется выполнять: 6. Скопируйте файл конфигурации MariaDB в каталог/etc)

Сначала установите базовую зависимость

[[email protected] ~]# 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

[[email protected] ~]# cd /root/soft
[[email protected] ~]# wget https://nih.at/libzip/libzip-1.2.0.tar.gz
[[email protected] ~]# tar -zxvf libzip-1.2.0.tar.gz
[[email protected] ~]# cd libzip-1.2.0
[[email protected] ~]# ./configure
[[email protected] ~]# make && make install

Даже если установлен libzip, zipconf. H может не быть найден при компиляции PHP, поэтому скопируйте его вручную

[[email protected] ~]# cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h

Добавьте путь поиска в профиль

[[email protected] ~]# echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
//Update configuration
[[email protected] ~]# ldconfig -v

Скомпилировать PHP

[[email protected] ~]# cd /root/soft
[[email protected] ~]# wget http://cn2.php.net/distributions/php-7.3.0.tar.gz
[[email protected] ~]# tar zxf php-7.3.0.tar.gz
[[email protected] ~]# cd php-7.3.0/
[[email protected] ~]# ./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
[[email protected] ~]# make && make install
... // long wait

Успешно скомпилирована

[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 из исходного пакета/

[[email protected] ~]# cp php.ini-development /usr/local/php/lib/php.ini

Измените Apache для поддержки PHP Edit/usr/local/Apache/conf/httpd.conf

Loadmodule php7_module modules / libphp7.so // the default is to enable php7.so
//Find < ifmodule mime > and add it before < / ifmodule >
    AddType application/x-httpd-php .php .php3 .phtml .inc
    AddType application/x-httpd-php-source .phps
//Find directoryindex index.html and add index.php
DirectoryIndex index.html index.shtml index.cgi index.php index.phtml index.php3

После сохранения посмотрите, нет ли какой-либо ошибки в httpd.conf

[[email protected] ~]# /usr/local/apache/bin/apachectl -t
Syntax OK // no problem. You can start it directly

Добавьте PHP в переменные среды

[[email protected] ~]# vim /etc/profile.d/php.sh
// join
export PATH=$PATH:/usr/local/php/bin
//Give execution permission after saving
[[email protected] ~]# chmod 0777 /etc/profile.d/php.sh
[[email protected] ~]# source /etc/profile.d/php.sh

Остановите Apache и перезапустите Apache

[[email protected] ~]# systemctl stop httpd.service
[[email protected] ~]# systemctl start httpd.service

Протестируйте PHP

[[email protected] ~]# vim /usr/local/apache/htdocs/phpinfo.php
// join

После сохранения посетите http://your IP/phpinfo.php Если вы успешно получили доступ к информации, связанной с PHP, конфигурация среды PHP выполнена успешно.

Этот учебник был успешно построен в CentOS 7.3. Если вам не удастся скомпилировать, не расстраивайтесь. Как правило, у вас нет зависимости и вы хорошо используете поисковую систему. Если вы действительно не знаете, как ее решить, оставьте мне сообщение, и я сделаю все возможное, чтобы помочь ее решить. Я думаю, что эта статья полезна. Не забывайте хвалить и собирать его.