准备工作
创建数据库、用户:
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进行设置。