Top

准备工作

创建数据库、用户:
root@X61:/usr/local/www/nginx # mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.6.8-MariaDB FreeBSD Ports

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost [(none)]> create database nextcloud;
Query OK, 1 row affected (0.000 sec)

root@localhost [(none)]> grant all privileges on nextcloud.* to nc@localhost identified by '123456';
Query OK, 0 rows affected (0.002 sec)

安装nextcloud

FreeBSD的pkg库里有nextcloud-php74~82,但是nextcloud-php82安装完成后打开浏览器访问它会提示当前的php是alpha版,不支持。
故使用nextcloud-php81版:
# pkg install nextcloud-php81
安装程序会将nextcloud的网页代码放到/usr/local/www/目录中。
修改/usr/local/etc/nginx/nginx.conf文件,将web的根目录指向/usr/local/www/nextcloud:
......
http {
  include    mime.types;
  ......
  server {
      listen       80;
      server_name  localhost;
      ......
      location / {
        root     /usr/local/www/nextcloud;
        index    index.html index.htm index.php;
      }
      ......
      location ~ \.php$ {
          root       /usr/local/www/nextcloud;
          fastcgi_pass     127.0.0.1:9000;
          fastcgi_index    index.php;
          fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include          fastcgi_params;
      }
      ......
  }
  ......
}
重启nginx:
# service nginx restart
修改/usr/local/www/nextcloud/config/目录中文件的权限:
# chmod -R ugo+rw /usr/local/www/nextcloud/config/*
然后从浏览器打开以下地址进入配置页面:
http://192.168.5.169
此处也遇到了数据库服务器不能使用'locahost'的问题,更换成IP方可(还需要在mysql中对用户重新授权,使用【nc@'%'】)。

安装完成后无法打开首页,地址栏显示为
http://192.168.5.169/index.php/login
浏览器页面显示404错误。尚未查到原因。
后经测试,apache可以正常使用。
apache的安装方法:
# pkg install apache24
# pkg install mod_php81
不需要安装php,也不需要启动php-fpm
# sysrc apache24_enable=yes
# vi /usr/local/etc/apache24/httpd.conf
  <IfModule dir_module>
    DirectoryIndex index.html index.php     此行添加index.php
  </IfModule>
  以下修改apache主目录,使其指向nextcloud目录
  DocumentRoot "/usr/local/www/nextcloud"
  <Directory "/usr/local/www/nextcloud">
    AllowOverride ALL
    Require all granted
  </Directory>
  以下两段为新增,放在文件最后即可
  <FilesMatch "\.php$">
    SetHandler application/x-httpd-php
  </FilesMatch>
  <FilesMatch "\.phps$">
    SetHandler application/x-httpd-php-source
  </FilesMatch>
以上完成后启动apache服务 
# service apache24 start

php配置文件在/usr/local/etc中,有两个模板php.ini-development和php.ini-production,从名称上看分别对应开发环境和生产环境。
可将php.ini-production复制为php.ini,然后修改对应的参数。

在nextcloud中,可能会遇到的问题是内存分配不足,可修改php.ini文件中以下参数:
memory_limit=512M
然后重启php-fpm服务。
对于仅安装mod_php的情况,需要在/usr/local/etc/apache/modules.d/目录中新建一个文件,如080_mod_php.conf,内容如下:
php_value memory_limit 256M
php_value upload_max_filesize 1G
然后重启apache。
需要注意的是,若系统中安装了php,则php的设置可能会影响到mod_php的设置。
例如安装nextcloud-php82,会需要安装php8.2,为了避免设置混乱,建议将modules.d中的php设置文件删除掉,统一使用/usr/local/etc/php.ini文件对php进行设置。