您的位置:首页 > 运维架构 > Nginx

如何在_CentOS_7_中使用_Nginx_和_PHP7-FPM_安装_Nextcloud

2017-06-08 00:00 627 查看
摘要:Nextcloud是一款自由(开源)的类Dropbox软件,由ownCloud分支演化形成。它使用PHP和JavaScript编写,支持多种数据库系统,比如MySQL/MariaDB、PostgreSQL、Oracle数据库和SQLite。

Nextcloud是一款自由(开源)的类Dropbox软件,由ownCloud分支演化形成。它使用PHP和JavaScript编写,支持多种数据库系统,比如MySQL/MariaDB、PostgreSQL、Oracle数据库和SQLite。它可以使你的桌面系统和云服务器中的文件保持同步,Nextcloud为Windows、Linux、Mac、安卓以及苹果手机都提供了客户端支持。Nextcloud并非只是Dropbox的克隆,它还提供了很多附加特性,如日历、联系人、计划任务以及流媒体Ampache。

在这篇文章中,我将向你展示如何在CentOS7服务器中安装和配置最新版本的Nextcloud10。我会通过Nginx和PHP7-FPM来运行Nextcloud,同时使用MariaDB做为数据库系统。

先决条件

64位的CentOS7

服务器的Root权限

步骤1-在CentOS7中安装Nginx和PHP7-FPM

在开始安装Nginx和php7-fpm之前,我们还学要先添加EPEL包的仓库源。使用如下命令:



yum-yinstallepel-release

现在开始从EPEL仓库来安装Nginx:



yum-yinstallnginx

然后我们还需要为php7-fpm添加另外一个仓库。互联网中有很个远程仓库提供了PHP7系列包,我在这里使用的是webtatic。

添加PHP7-FPMwebtatic仓库:



rpm-Uvh'target='_blank'>https://mirror.webtatic.com/yum/el7/webtatic-release.rpm[/code]
然后就是安装PHP7-FPM以及Nextcloud需要的一些包。



yum-yinstallphp70w-fpmphp70w-cliphp70w-gdphp70w-mcryptphp70w-mysqlphp70w-pearphp70w-xmlphp70w-mbstringphp70w-pdophp70w-jsonphp70w-pecl-apcuphp70w-pecl-apcu-devel

最后,从服务器终端里查看PHP的版本号,以便验证PHP是否正确安装。



php-v



查看PHP版本号

步骤2-配置PHP7-FPM

在这一个步骤中,我们将配置php-fpm与Nginx协同运行。Php7-fpm将使用nginx用户来运行,并监听9000端口。

使用vim编辑默认的php7-fpm配置文件。



vim/etc/php-fpm.d/www.conf

在第8行和第10行,user和group赋值为nginx。



user=nginx

group=nginx

在第22行,确保php-fpm运行在指定端口。



listen=127.0.0.1:9000

取消第366-370行的注释,启用php-fpm的系统环境变量。



env[HOSTNAME]=$HOSTNAME

env[PATH]=/usr/local/bin:/usr/bin:/bin

env[TMP]=/tmp

env[TMPDIR]=/tmp

env[TEMP]=/tmp

保存文件并退出vim编辑器。

下一步,就是在/var/lib/目录下创建一个新的文件夹session,并将其拥有者变更为nginx用户。



mkdir-p/var/lib/php/session

chownnginx:nginx-R/var/lib/php/session/

然后启动php-fpm和Nginx,并且将它们设置为随开机启动的服务。



sudosystemctlstartphp-fpm

sudosystemctlstartnginx

sudosystemctlenablephp-fpm

sudosystemctlenablenginx



启动php-fpm和Nginx

PHP7-FPM配置完成

步骤3-安装和配置MariaDB

我这里使用MariaDB作为Nextcloud的数据库。可以直接使用yum命令从CentOS默认远程仓库中安装mariadb-server包。



yum-yinstallmariadbmariadb-server

启动MariaDB,并将其添加到随系统启动的服务中去。



systemctlstartmariadb

systemctlenablemariadb

现在开始配置MariaDB的root用户密码。



mysql_secure_installation

键入Y,然后设置MariaDB的root密码。



Setrootpassword?[Y/n]Y

Newpassword:

Re-enternewpassword:

Removeanonymoususers?[Y/n]Y

Disallowrootloginremotely?[Y/n]Y

Removetestdatabaseandaccesstoit?[Y/n]Y

Reloadprivilegetablesnow?[Y/n]Y

这样就设置好了密码,现在登录到mysqlshell并为Nextcloud创建一个新的数据库和用户。这里我创建名为nextcloud_db的数据库以及名为nextclouduser的用户,用户密码为nextclouduser@。当然了,要给你自己的系统选用一个更安全的密码。



mysql-uroot-p

输入MariaDB的root密码,即可登录mysqlshell。

输入以下mysql查询语句来创建新的数据库和用户。



createdatabasenextcloud_db;

createusernextclouduser@localhostidentifiedby'nextclouduser@';

grantallprivilegesonnextcloud_db.*to nextclouduser@localhostidentifiedby'nextclouduser@';

flushprivileges;



为Nextcloud创建一个新的数据库和用户

nextcloud_db数据库和nextclouduser数据库用户创建完成

步骤4-为Nextcloud生成一个自签名SSL证书

在教程中,我会让客户端以https连接来运行Nextcloud。你可以使用诸如let'sencrypt等免费SSL证书,或者是自己创建自签名(selfsigned)SSL证书。这里我使用OpenSSL来创建自己的自签名SSL证书。

为SSL文件创建新目录:



mkdir-p/etc/nginx/cert/

如下,使用openssl生成一个新的SSL证书。



opensslreq-new-x509-days365-nodes-out/etc/nginx/cert/nextcloud.crt-keyout/etc/nginx/cert/nextcloud.key

最后使用chmod命令将所有证书文件的权限设置为600。



chmod700/etc/nginx/cert

chmod600/etc/nginx/cert/*



为Nextcloud生成一个自签名SSL证书

步骤5-下载和安装Nextcloud

我直接使用wget命令下载Nextcloud到服务器上,因此需要先行安装wget。此外,还需要安装unzip来进行解压。使用yum命令来安装这两个程序。



yum-yinstallwgetunzip

先进入/tmp目录,然后使用wget从官网下载最新的Nextcloud10。



cd/tmp

wget'target='_blank'>https://download.nextcloud.com/server/releases/nextcloud-10.0.2.zip[/code]
解压Nextcloud,并将其移动到/usr/share/nginx/html/目录。



unzipnextcloud-10.0.2.zip

mvnextcloud//usr/share/nginx/html/

下一步,转到Nginx的web根目录为Nextcloud创建一个data文件夹。



cd/usr/share/nginx/html/

mkdir-pnextcloud/data/

变更nextcloud目录的拥有者为nginx用户和组。



chownnginx:nginx-Rnextcloud/

步骤6-在Nginx中为Nextcloud配置虚拟主机

在步骤5我们已经下载好了Nextcloud源码,并配置好了让它运行于Nginx服务器中,但我们还需要为它配置一个虚拟主机。在Nginx的conf.d目录下创建一个新的虚拟主机配置文件nextcloud.conf。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: