有馬総一郎のブログ

(彼氏の事情)

2018年03月17日 19:36:39 JST - 5 minute read - Linux

ownCloud 10.0.7にアップグレード(する羽目になった…ぶっ壊れたので)

ownCloud バージョン10のアップグレード、インストールに苦労した…諸々、ちゃんと分かってないってのを今更確認させられた。勉強になったよ。

多分、こんな感じでインストール、ファイル編集していけばいいはず。ちゃんとした インストール手順アップグレード手順は公式を。これは忘備録なので。

sudo apt install apache2
sudo apt install owncloud-files
sudo vi /var/www/owncloud/config/config.php 
sudo apt install php php-all-dev php-curl php-zip php-intl php-mbstring php-gd
sudo a2enmod php7.0 
sudo apt install libapache2-mod-php7.0 
sudo vim /etc/apache2/apache2.conf 
sudo service apache2 restart

そもそもの切っ掛けはここから…

ある日、ownCloudのアップデートが保留となったので、sudo apt dist-upgradeを考えなしにした。(バカだった…)

すると、 owncloudowncloud-filesとしてアップグレード。すると、要らなくなったアプリがいくつか増えたみたいなのにで、ついでにsudo apt autoremoveを実行。

以下のパッケージは「削除」されます:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php7.0 libapr1
  libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libc-client2007e libgd3
  libjbig0 liblua5.1-0 libmcrypt4 libpq5 libtiff5 libxpm4 libzip4 mlock
  owncloud-deps-php7.0 owncloud-files php-common php7.0-cli php7.0-common
  php7.0-curl php7.0-gd php7.0-imap php7.0-intl php7.0-json php7.0-mbstring
  php7.0-mcrypt php7.0-mysql php7.0-opcache php7.0-pgsql php7.0-readline
  php7.0-sqlite3 php7.0-xml php7.0-zip
アップグレード: 0 個、新規インストール: 0 個、削除: 38 個、保留: 0 個。
この操作後に 145 MB のディスク容量が解放されます。
続行しますか? [Y/n] y

owncloud-filesのアップグレードに失敗してたようで、 ownCloudがアンイストールされた状態となっており、 apache2phpowncloud-filesが削除されてしまった…

幸いにして/var/www/owncloud/config/var/www/owncloud/は削除されず生きていたので、このまま10.0.7へアップグレードさせることに。

まず apache2phpowncloud-filesをインストール

arimasou16@ubuntu:~$ sudo apt install apache2
arimasou16@ubuntu:~$ sudo apt install owncloud-files
arimasou16@ubuntu:~$ sudo apt install php

しかしsudo -u www-data php occ maintenance:mode --onのコマンドを実行すると…

Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /var/www/owncloud/lib/private/DB/Connection.php:62
Stack trace:

なんじゃこりゃ、 phpに慣れてない私はググる…するとmysqlなんてやめろpostgresにしろとかヒットする…そうではなくて警告さているとおり

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mysqlnd.so' - /usr/lib/php/20151012/mysqlnd.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xml.so' - /usr/lib/php/20151012/xml.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/curl.so' - /usr/lib/php/20151012/curl.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/dom.so' - /usr/lib/php/20151012/dom.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/mysqli.so' - /usr/lib/php/20151012/mysqli.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_mysql.so' - /usr/lib/php/20151012/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_sqlite.so' - /usr/lib/php/20151012/pdo_sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/simplexml.so' - /usr/lib/php/20151012/simplexml.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/sqlite3.so' - /usr/lib/php/20151012/sqlite3.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/wddx.so' - /usr/lib/php/20151012/wddx.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlreader.so' - /usr/lib/php/20151012/xmlreader.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xmlwriter.so' - /usr/lib/php/20151012/xmlwriter.so: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/xsl.so' - /usr/lib/php/20151012/xsl.so: cannot open shared object file: No such file or directory in Unknown on line 0

とPHPに必要なライブリーがインストールされてないからでsudo apt install php-mysqlで解消。

その後も

Error: Call to undefined function OC\App\simplexml_load_file() in /var/www/owncloud/lib/private/App/InfoParser.php:41

とか出てウザいのでsudo apt install php-all-dev

それでまだ必要な全てのライブラリーがインストールされない。

Exception: Environment not properly prepared. in /var/www/owncloud/lib/private/Console/Application.php:135

警告文を全て消し去る勢いでsudo apt install php-curl php-zip php-intl php-mbstring php-gd php-sqlite3とインストール!!!

ようやくsudo -u www-data php occ maintenance:mode --onのコマンドが成功するように…

そして、ownCloudのアップグレードコマンドを実行。sudo -u www-data ./occ upgrade

2018-03-16T16:49:28+00:00 Set log level to debug
2018-03-16T16:49:28+00:00 Turned on maintenance mode
2018-03-16T16:49:28+00:00 Repair step: Repair MySQL database engine
2018-03-16T16:49:28+00:00 Repair step: Repair MySQL collation
2018-03-16T16:49:28+00:00 Repair info: All tables already have the correct collation -> nothing to do
2018-03-16T16:49:28+00:00 Repair step: Repair SQLite autoincrement
2018-03-16T16:49:28+00:00 Repair step: Repair duplicate entries in oc_lucene_status
2018-03-16T16:49:28+00:00 Repair info: lucene_status table does not exist -> nothing to do
2018-03-16T16:49:28+00:00 Repair step: Upgrade app code from the marketplace
・・・中略・・・
2018-03-16T16:54:47+00:00 Repair step: Remove shares of a users root folder
2018-03-16T16:54:47+00:00 Repair step: Repair unmerged shares
2018-03-16T16:54:47+00:00 Repair step: Disable extra themes
2018-03-16T16:54:47+00:00 Starting code integrity check...
2018-03-16T16:54:57+00:00 Finished code integrity check
2018-03-16T16:54:57+00:00 Update successful
2018-03-16T16:54:57+00:00 Turned off maintenance mode
2018-03-16T16:54:57+00:00 Reset log level

成功!!!

sudo -u www-data ./occ maintenance:mode --offでメンテナンスモードをオフにして、ownCloudをブラウザで開くと…

index.phpのソースがそのまま表示されている。phpが有効化されていない。

ownCloud

sudo a2enmod php7.0で有効化。そして、sudo serviec apache2 restartでapache2再起動。

Job for apache2.service failed because the control process exited with error code. See "systemctl status apache2.service" and "journalctl -xe" for details.
arimasou16@ubuntu:/var/www/owncloud$ systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           mqapache2-systemd.conf
   Active: failed (Result: exit-code) since 土 2018-03-17 02:34:23 JST; 1min 13s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 26575 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 26601 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

 3月 17 02:34:23 ubuntu apache2[26601]:  *
 3月 17 02:34:23 ubuntu apache2[26601]:  * The apache2 configtest failed.
 3月 17 02:34:23 ubuntu apache2[26601]: Output of config test was:
 3月 17 02:34:23 ubuntu apache2[26601]: apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/php7.0.load: Cannot load /usr/lib/apache2/modules/libph
 3月 17 02:34:23 ubuntu apache2[26601]: Action 'configtest' failed.
 3月 17 02:34:23 ubuntu apache2[26601]: The Apache error log may have more information.
 3月 17 02:34:23 ubuntu systemd[1]: apache2.service: Control process exited, code=exited status=1
 3月 17 02:34:23 ubuntu systemd[1]: Failed to start LSB: Apache2 web server.
 3月 17 02:34:23 ubuntu systemd[1]: apache2.service: Unit entered failed state.
 3月 17 02:34:23 ubuntu systemd[1]: apache2.service: Failed with result 'exit-code'.

なんじゃこりゃ。php7のためのapach2ライブラリーが必要ということでsudo apt install libapache2-mod-php7.0。そして、再度sudo serviec apache2 restart成功。復旧できた…ふー。

ownCloud

前はsudo apt installl owncloudで必要なアプリインストールしてくれたのに…owncloud-deps-php7.0だとよろしくやってくるんだろうか?