平台
服务搭建
LAMP(Linux+Apache2+Mysql+PHP7.3+)搭建
参照 (Ubuntu安装LAMP)[https://blog.csdn.net/weixin_40704661/article/details/80921542]
几个注意点: 1. Ubuntu18.04 安装PHP扩展需要执行 add-apt-repository ppa:ondrej/php 2. 在最新的OwnCloud安装过程中,需要额外安装的PHP扩展: apt-get install php7.4-zip apt-get install php7.4-dom apt-get install php7.4-xmlwriter apt-get install php7.4-xmlreader apt-get install php7.4-intl apt-get install php7.4-libxml apt-get install php7.4-mbstring apt-get install php7.4-gd apt-get install php7.4-simplexml apt-get install php7.4-curl apt-get install php7.4-zip apt-get install php7.4-zip 3. 默认的PHP8.1.6不被OwnCloud支持,所以要切换PHP的默认版本 a2dismod php8.1 # 禁用8.1版本的PHP a2enmod php7.4 # 启用7.4版本的PHP update-alternatives --set php /usr/bin/php7.4 # 设置PHP7.4为默认的PHP 这几步每次执行完都建议重启下Apache2服务, 使用 php -v 检查php版本是否正确 4. mysql修改的几个配置 update user set host='%' where user='root'; # 设置mysql所有机器都可以访问,主要是为了能用可视化工具查看mysql flush privileges; # 使修改立即生效,或者重启mysql服务
安装OwnCloud
参照官方文档
# 注意切换到管理员权限,我自己的目录是在 ~/workspace # 最新源码的目录可以在 https://owncloud.com/download-server/ 找到 wget https://download.owncloud.com/server/stable/owncloud-complete-latest.zip unzip owncloud-complete-latest.zip 将解压的目录移动到 apache2的网站目录 /var/www cp owncloud -r /var/www cd /var/www/owncloud 执行 sudo -u www-data php occ maintenance:install \ --database "mysql" \ --database-name "owncloud" \ --database-user "mysql数据库账户"\ --database-pass "mysql数据库密码" \ --admin-user "owncloud默认的管理员账号的名称" \ --admin-pass "owncloud默认的管理员账号的密码" 中间会有两次选择,一次是选择使用Apache2, 一次是选择Mysql数据库,需要填入数据库的密码,在此中间出现过一个小错误,跟上面的PHP扩展有关 执行完成后 修改Apache2的配置文件/etc/apache2/sites-enabled/server_domain_or_IP.conf使其指向的网站目录为/var/www/owncloud,这个地方应该是可以使Apache2在不同端口指向不同网站的,没找到解决方法 重启Apache2 现在可以在本地访问 http://localhost,跳转到owncloud登录界面则安装成功
使OwnClouod支持公网访问
由于我的服务是搭建在服务器上的,仅仅本地访问显然不合适,而OwnCloud有TrustDomain的限制,需要对配置文件做一些修改
# /var/www/owncloud/config/config.php 修改此文件 'trusted_domains' => array ( 0 => 'localhost', 1 => '服务器的公网IP', ), 'datadirectory' => '/var/www/owncloud/data', 'overwrite.cli.url' => 'http://服务器的公网IP/owncloud', 'dbtype' => 'mysql', 'version' => '10.10.0.3', 'dbname' => 'owncloud', 'dbhost' => '服务器的公网IP', # 这个地方可能没必要修改 重启Apache2服务,Ctrl+F5刷新浏览器页面
其实为了解决TrustDomain的问题刚开始想了很麻烦的操作方式,加自己的IP,以后的新机器访问都加一边(比较蠢),或者使用Nginx做代理,但是都没有解决信任域不对的问题,后来把OwnCloud的日志文件down下来看,发现一个有趣的记录:
# 日志地址是在 /var/www/owncloud/data/owncloud.log 日志记录内容: {"reqId":"PgmARITkHKlsS7AAgUG8","level":2,"time":"2022-05-26T21:51:05+00:00","remoteAddr":"27.124.32.148","user":"--","app":"core","method":"GET","url":"\/index.php","message":"Trusted domain error. \"xxx.xxx.xx.148\" tried to access using \"服务器公网IP\" as host."}
在公网机器访问的时候,是以服务器的IP作为Host访问的,这个跟我之前理解的信任域不太一样,在config.php中添加
1 => '服务器的公网IP',
之后,果然可以访问了,测试了其他几台机器也没有问题.
展示
版权声明:本文为u013399150原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。