Vultr能够选择外网节点,支持支付宝比较方便,缺点是网络可能会比较慢
选的是CloudComputer,RegularPerformance,这个一般是最便宜的配置
参照 (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服务
# 注意切换到管理员权限,我自己的目录是在 ~/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登录界面则安装成功
由于我的服务是搭建在服务器上的,仅仅本地访问显然不合适,而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',
之后,果然可以访问了,测试了其他几台机器也没有问题.