openEuler21.10部署nextcloud15,mariadb版本5.5.68,php版本7.0.33

openEuler yum时报需要注册码解决方式:
bclinux-license -g

rpm -qa |grep license
rpm -evh bclinux-license-manager-4.0-1.oe1.bclinux.x86_64

1、配置过程资源清单

在这里插入图片描述

httpd对应rpm资源包

在这里插入图片描述

openssl库文件资源

在这里插入图片描述

php部分rpm资源补充

在这里插入图片描述

mariadb5.5.68编译所需要rpm资源

在这里插入图片描述

php7.0.33源码资源与部分所缺模块源码资源

在这里插入图片描述

注意:
此仅本次部署过程中所使用的资源包,并不适合其他版本镜像与环境,仅做参考;主要参考部署过程中的解决问题方式。

建议清单:
1、本次由于环境不联网,属于源码编译安装的方式。建议先虚拟机联网安装成功后,将联网过程中所需的rpm保存下来,方便迁移。

rpm保存教程https://blog.csdn.net/m0_45057216/article/details/128527267
2、编译过程中会出现较多的库或文件缺失,一个个解决,保证编译成功即可。

2、配置httpd环境

记得安装rpm,如果升级出错,可以执行强制安装实现对软件包的版本更新
(建议先rpm -ivh xxxx.rpm或者rpm -ivh ./*),
切记版本冲突时不要先卸载后安装。使用下面命令执行:
rpm -ivh --replacefiles --force --nodeps *.rpm

在这里插入图片描述

3、配置mariadb5.5.68数据

-------------------------------------------------------------------------
mariadb5.5.68版本安装流程

# 如果升级出错,可以执行强制安装实现对软件包的版本更新:
cd /usr/local/nextcloud/cmake
# 安装编译的rpm资源,例cmake等
rpm -ivh --replacefiles --force --nodeps *.rpm

-------------------------------------------------------------------------
开始编译mariadb5.5.68源码

tar xzf mariadb-5.5.68.tar.gz
cd mariadb-5.5.68/

mkdir build
cd build

# 编译mariadb5.5.68源码
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1

make && make install

# 创建mysql用户和组
groupadd mysql
useradd -g mysql mysql

# 创建mysql数据
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

# 先命令配置mysql文件配置
sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

#命令行开启mysql服务
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
#登录mysql,直接回车,无密码
sudo /usr/local/mysql/bin/mysql -uroot -p
# 设置mysql密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root123');
#或者设置错误,更新密码  UPDATE mysql.user SET password=PASSWORD('root123') WHERE user='root';
create database nextcloud;

# 将mysql环境变量添加
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin 

# 编译my.cnf,或者创建该文件
vim /usr/local/mysql/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
symbolic-links=0
default-storage-engine=INNODB
innodb_buffer_pool_size=256M



#在/usr/lib/systemd/system创建mariadb服务文件,添加文件内容
vim /usr/lib/systemd/system/mariadb.service

[Unit]
Description=Mariadb Server
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf

[Install]
WantedBy=multi-user.target

#使刚才mariadb服务生效
sudo systemctl daemon-reload
sudo systemctl mariadb.service

# 测试关闭mariadb服务,发现关闭服务超时,属于刚才命令行运行的mariadb服务没有停止。
systemctl stop mariadb.service
#查看mysql正在运行的进程
ps aux | grep mysql
# 关闭所有mysql进程
kill 进程      
systemctl start mariadb
systemctl stop mariadb超时关闭解决


#可能遇到的问题
rm /usr/local/mysql/data/aria_log_control
systemctl start mariadb.service
期间出现的问题:安装gcc等编译器  
sudo yum install -y cmake gcc gcc-c++ ncurses-devel bison  解决

CMake Deprecation Warning at scripts/CMakeLists.txt:264 (CMAKE_POLICY):
  The OLD behavior for policy CMP0007 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- Looking for event.h
-- Looking for event.h - found
-- Configuring incomplete, errors occurred!
See also "/usr/local/nextcloud/mariadb-5.5.68/build/CMakeFiles/CMakeOutput.log".
See also "/usr/local/nextcloud/mariadb-5.5.68/build/CMakeFiles/CMakeError.log".

几个问题解决

在这里插入图片描述

systemctl stop mariadb.service
#移除aria_log_control
rm /usr/local/mysql/data/aria_log_control
systemctl start mariadb.service

4、配置php7.0.33环境,添加相应的缺失模块

在这里插入图片描述

注意:
记得安装rpm,如果升级出错,可以执行强制安装实现对软件包的版本更新(建议先rpm -ivh xxxx.rpm或者rpm -ivh ./*),
切记版本冲突时不要先卸载后安装。使用下面命令执行:
rpm -ivh --replacefiles --force --nodeps *.rpm

在这里插入图片描述

4.1编译与安装php7.0.33

现场测试安装过程:
-------------------------------------------------------------------------
注意:以下是php7.0.33编译过程中缺失的资源,bzip与libmcrypt,采用下载源码方式先编译安装。
1、bzip模块

tar -xf bzip2-1.0.6.tar.gz
cd bzip2-1.0.6
make -f Makefile-libbz2_so all
make install
# 
2、libmcrypt模块

tar -xf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
#执行安装
make && make install
3、 开始编译php7.0.33

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-mcrypt \
--enable-mbstring --enable-pdo --with-curl --disable-debug  --disable-rpath \
--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --with-pcre-regex --with-gd --with-jpeg-dir \
--enable-opcache=no --with-apxs2=/usr/bin/apxs --with-openssl \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

#安装
make && make install

#配置php环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/php/bin 
source /etc/profile

#测试php是否安装成功,查看版本
php -v

在这里插入图片描述

4、安装附属模块php-7.0.33/ext/openssl
yum install 
cd /usr/local/nextcloud/tars/php-7.0.33/ext/openssl

cp config0.m4 config.m4
phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install
5、安装附属模块zip
/usr/local/nextcloud/tars/zip-1.13.5
phpize
whereis php-config
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
6、配置php-fpm模块,配置php编译后的配置文件和service服务到指定位置。

#1、php.ini此时不存在,是要复制一份,重命名为php.ini,注意一定是php/etc下存放php.ini文件,原因是上面./configure指定了配置文件位置
cp /usr/local/nextcloud/tars/php-7.0.33/php.ini-development  /usr/local/php/etc/php.ini
#2、复制php-fpm.conf即可,不需要配置
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 3、同上,但要编辑www.conf文件中的user与
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

# 命令行创建www-data用户和组
groupadd www-data
useradd -g www-data www-data

vim www.conf

#4、php-fpm.service拷贝一份再放到/etc/systemd/system/中
cp /usr/local/nextcloud/tars/php-7.0.33/sapi/fpm/php-fpm.service /etc/systemd/system/
#使得php-fpm.service生效
sudo systemctl daemon-reload

在这里插入图片描述

7、httpd与php两者进行配置互通。

#查看是否存在libphp7.so文件
cd /etc/httpd/modules
ls
#编辑配置文件
vim /etc/httpd/conf/httpd.conf

#将下面配置放到httpd.conf配置文件中。位置随意,我放到了最下面

LoadModule php7_module modules/libphp7.so
##########################################
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

8、将缺失的zip与openssl模块添加到php配置文件中
#查找php.ini文件位置
find / -name php.ini
vim php.ini

添加extension扩展路径位置
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20151012/zip.so
extension=/usr/local/php/lib/php/extensions/no-debug-zts-20151012/openssl.so
#测试发现只是找不到zip.so,openssl.so不添加也可以说明./configure --with-openssl生效了,但zip不行,可能与版本有关。

在这里插入图片描述

9、以下时出现的两个问题时的解决办法。
问题1:
上图问题解决地址:https://github.com/nextcloud/server/issues/6193

解决方法:
vim /usr/local/php/etc/php.ini
#添加pcre.jit=0到php.ini配置文件中
pcre.jit=0

在这里插入图片描述

问题2:
#localhost登录时,查找不到驱动。其实是php加载不到mysql.sock文件。但openEuler测试时仍然不能以localhost登录,找不到,以127.0.0.1登录成功,原因见下。
vim /usr/local/php/etc/php.ini

pdo_mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock

使用 localhost 时,访问通过 Unix Socket 进行,带有本机用户权限;使用 127.0.0.1 时,访问通过网络进行,受到防火墙和网卡的限制。
部分问题:
configure: error: Cannot find OpenSSL's <evp.h>
解决:yum install openssl-devel -y
(1/3): openssl-1.1.1t-11.oe1.bclinux.x86_64.r 708 kB/s | 445 kB     00:00    
(2/3): openssl-libs-1.1.1t-11.oe1.bclinux.x86 1.6 MB/s | 1.3 MB     00:00    
(3/3): openssl-devel-1.1.1t-11.oe1.bclinux.x8 2.0 MB/s | 1.7 MB     00:00  
这里遇到rpm冲突,必须更新安装rpm,而不能卸载后再安装,切记

5、服务器关闭ssh后台数据迁移进程不关闭

#安装tumx,在tmux终端下的进程,关闭ssh连接后,并不杀死该ssh会话中启动的进程。
yum install tmux -y

tmux建立会话
#显示tmux会话列表
tmux list-sessions
# 连接tmux指定id的会话
tmux attache-session id(0/1)
# 关闭tmux指定id会话
tmux kill-session -t id(0/1)
#关闭所有tmux会话
tmux kill-server 关闭所有tmux会话

猜你喜欢

转载自blog.csdn.net/m0_45057216/article/details/129754743