私云nextcloud搭建教程

本次教程比较简略,一些东西就不详细解释了,不懂的可以看我之前的LAMP搭建教程和owncloud搭建教程等文章。

卸载 mariadb安装mysql

因为之前安装seafile自动安装的mariabd,所以卸载
rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64

yum remove mariadb-libs-5.5.56-2.el7.x86_64

LAMP一键安装

LAMP环境一键脚本

yum install -y vim
#backspace正常使用
echo "stty erase ^H" >>  ~/.bash_profile
source  ~/.bash_profile
#安装lrzsz实现上传下载
yum install -y man man-pages man-pages-overrides
yum install -y lrzsz
#网络工具安装
yum install -y net-tools
#防火墙设置
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --zone=public --add-port=80/tcp --permanent  
firewall-cmd --reload
## Apache和php环境
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

yum install -y php70w
yum install -y  php70w-mysql.x86_64   php70w-gd.x86_64   php70w-ldap.x86_64   php70w-mbstring.x86_64  php70w-mcrypt.x86_64
yum install php-theseer-fDOMDocument.noarch -y
yum install -y php70w-fpm
systemctl start php-fpm
systemctl enable php-fpm
yum install httpd
安装完成后,需要启动并设置Apache开机启动:
 systemctl enable httpd.service
 systemctl start httpd.service

cat > /var/www/html/index.php<<EEE
<?php
phpinfo();
EEE

echo >> /etc/httpd/conf/httpd.conf 'include vhost-conf.d/*.conf '
mkdir /etc/httpd/vhost-conf.d
mkdir /var/www/html/apache.shadowwu.club
cat > /etc/httpd/vhost-conf.d/example.conf<<EEE
<VirtualHost *:80>
   ServerName apache.shadowwu.club
   ServerAlias apache.shadowwu.club
   DocumentRoot /var/www/html/apache.shadowwu.club/
   DirectoryIndex index.html index.php
</VirtualHost>
EEE

cat > /var/www/html/apache.shadowwu.club/index.html<<EEE
Hello,this is a apache web.
EEE

systemctl restart httpd.service

## mysql环境安装
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
tar -xvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz
rm -f *.gz
mv mysql-5.6.37-linux-glibc2.12-x86_64 /usr/local/mysql 
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf -y
## 安装mysql依赖
yum -y install autoconf 
yum install -y libaio
## 安装mysql
/usr/local/mysql/scripts/mysql_install_db --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 
#清空配置文件
cat /dev/null >/etc/my.cnf
#填写配置
cat > /etc/my.cnf<<EEE
[client]
socket=/tmp/mysql.sock
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
user = root
#设置3306端口
port = 3306
socket=/tmp/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数\nmax_connections=200
# 服务端使用的字符集默认 为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_name=1
max_allowed_packet=16M
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
EEE
chmod  644 /etc/my.cnf 
#复制服务脚本,进系统环境
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
#赋予服务控制执行脚本的权利
chmod +x /etc/rc.d/init.d/mysqld
#配置环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin" >>  ~/.bash_profile
#使环境变量生效
source  ~/.bash_profile
#添加服务进系统服务
chkconfig --add mysqld  
systemctl start mysqld

nextcloud安装

cd /tmp
wget https://download.nextcloud.com/server/releases/nextcloud-13.0.5.zip
yum install -y uzip zip
unzip nextcloud-13.0.5.zip
rm -rf *.zip
mv nextcloud/ /var/www/html/
chmod 777 -R /var/www/html/nextcloud/
vim /etc/httpd/vhost-conf.d/nextcloud.conf

<VirtualHost *:80>
   ServerName nextcloud.shadowwu.club
   ServerAlias nextcloud.shadowwu.club
   DocumentRoot /var/www/html/nextcloud
   DirectoryIndex index.html index.php
</VirtualHost>

数据库环境设置
mysql

>set password = password('111111');
>exit;

mysql -u root -p111111

>grant all privileges on *.* to 'root'@'%' identified by '111111(改成自己的密码)' with grant option;
> flush privileges;
>create database nextcloud; 
>create user 'nextcloud'@'%' identified by '111111'; 
>grant all privileges on nextcloud.* to 'nextcloud'@'%' identified by '111111'; 
>flush privileges;

数据库连接错误

浏览器通过域名访问,注册用户和连接数据库
有错误:
Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

修改/etc/my.cnf 中sock=/var/lib/mysql/mysql.sock

mkdir /var/lib/mysql
systemctl restart mysql

在终端使用mysql -u nextcloud -p连接数据库时出错
错误:
ERROR 1045 (28000): Access denied for user ‘nextcloud’@’localhost’ (using password: YES)

大意就是你有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户,然后执行 FLUSH PRIVILEGES;

>use mysql
>Delete FROM user Where User='' and Host='localhost';
>flush privileges;

最终配置成功

闲言碎语

最终而言,nextcloud与owncloud大同小异,其同步速度都不快,但是功能完善,有很多插件,不过对我这种只需要同步功能的人来说还是老老实实使用seafile吧,或者再折腾折腾其他私云?

点赞

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注