Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision | ||
| docs:guide-user:services:nas:owncloud [2020/04/25 16:24] – Updated necessary packages for PHP7. Updated http server instructions for uhttpd and lighttpd. goncaloaps | docs:guide-user:services:nas:owncloud [2020/04/26 15:13] – links fixed tmomas | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== | + | ====== |
| - | Owncloud/Nextcloud is very heavy and requires devices with relatively powerful processors, while it will run well even on weak PC and servers, it is too heavy for low-power devices like a router or a NAS.\\ | + | ownCloud/Nextcloud is very heavy and requires devices with relatively powerful processors, while it will run well even on weak PC and servers, it is too heavy for low-power devices like a router or a NAS.\\ |
| It's recommended to have at least a dualcore ARMv7 processor if you are not running OpenWrt on PC/server hardware. | It's recommended to have at least a dualcore ARMv7 processor if you are not running OpenWrt on PC/server hardware. | ||
| - | I've installed | + | I've installed |
| --- //unknown// | --- //unknown// | ||
| - | I've also installed it on a more powerful TP_Link [[toh/tp-link/tl-wdr3500|TL-WDR3500]] but it's still very slow, 4-5 secs per page... | + | I've also installed it on a more powerful TP_Link [[toh:tp-link:tl-wdr3500|TL-WDR3500]] but it's still very slow, 4-5 secs per page... |
| --- // | --- // | ||
| Line 46: | Line 46: | ||
| ===== Install & configure webserver ===== | ===== Install & configure webserver ===== | ||
| - | OwnCloud | + | ownCloud |
| - | I had trouble moving Luci from uhttpd to lighttpd so I recommend keeping uhttpd running for Luci on a different port and assign port 80 to lighttpd for OwnCloud. | + | I had trouble moving Luci from uhttpd to lighttpd so I recommend keeping uhttpd running for Luci on a different port and assign port 80 to lighttpd for ownCloud. |
| ==== Change uhttpd port ==== | ==== Change uhttpd port ==== | ||
| - | Edit / | + | Edit '' |
| - | config uhttpd main | + | config uhttpd main |
| - | list listen_http | + | list listen_http |
| - | list listen_http | + | list listen_http |
| - | + | ||
| - | list listen_https | + | list listen_https |
| - | list listen_https | + | list listen_https |
| Restart uhhtpd. | Restart uhhtpd. | ||
| Line 72: | Line 72: | ||
| opkg install lighttpd lighttpd-mod-cgi lighttpd-mod-fastcgi lighttpd-mod-access | opkg install lighttpd lighttpd-mod-cgi lighttpd-mod-fastcgi lighttpd-mod-access | ||
| - | Now configure lighttpd for Owncloud. Edit the config-file / | + | Now configure lighttpd for ownCloud. Edit the config-file |
| - | Set www-root for OwnCloud: | + | Set www-root for ownCloud: |
| server.document-root = "/ | server.document-root = "/ | ||
| Line 89: | Line 89: | ||
| ) | ) | ||
| - | Assign port 80 for the OwnCloud-Server: | + | Assign port 80 for the ownCloud |
| server.port = 80 | server.port = 80 | ||
| Line 97: | Line 97: | ||
| $HTTP[" | $HTTP[" | ||
| url.access-deny = ("" | url.access-deny = ("" | ||
| - | } | + | } |
| $HTTP[" | $HTTP[" | ||
| Line 107: | Line 107: | ||
| / | / | ||
| - | Enabled | + | Enable |
| / | / | ||
| Line 113: | Line 113: | ||
| ===== Install & configure PHP ===== | ===== Install & configure PHP ===== | ||
| Get the dirty part: php and sqlite. I am not sure if really all of these packages are necessary, but it seems so: | Get the dirty part: php and sqlite. I am not sure if really all of these packages are necessary, but it seems so: | ||
| - | opkg install php7 php7-cgi php7-fastcgi php7-mod-json php7-mod-session php7-mod-zip libsqlite3 zoneinfo-core php7-mod-pdo php7-mod-pdo-sqlite php7-mod-ctype php7-mod-mbstring php7-mod-gd sqlite3-cli php7-mod-sqlite3 php7-mod-curl curl php7-mod-xml php7-mod-simplexml php7-mod-hash php7-mod-dom php7-mod-iconv php7-mod-xmlwriter php7-mod-xmlreader php7-mod-intl | + | |
| + | | ||
| Those packages are also suggested: | Those packages are also suggested: | ||
| Line 134: | Line 135: | ||
| Play around with memory_limit, | Play around with memory_limit, | ||
| - | run php | + | Run php: |
| - | / | + | |
| - | / | + | / |
| + | / | ||
| ==== activate PHP in lighttpd.conf ==== | ==== activate PHP in lighttpd.conf ==== | ||
| - | Uncomment to enable the fastcgi module | + | Uncomment to enable the fastcgi |
| server.modules = ( | server.modules = ( | ||
| " | " | ||
| Line 172: | Line 174: | ||
| ===== Get SSL (optional) ===== | ===== Get SSL (optional) ===== | ||
| - | Probably you want to run lighttpd with SSL/https to get your traffic crypted. These instructions are taken from [4]. For generating a key you need to install libopenssl and the openssl-utils | + | Probably you want to run lighttpd with SSL/https to get your traffic crypted. These instructions are taken from [4]. For generating a key you need to install libopenssl and the openssl-util |
| - | opkg install libopenssl | + | opkg install libopenssl openssl-util |
| - | (or openssl-util | + | |
| Now you can create a folder for your key like this | Now you can create a folder for your key like this | ||
| Line 193: | Line 194: | ||
| / | / | ||
| - | ===== unleash OwnCloud | + | ===== MySQL Installation (Optional) ===== |
| + | |||
| + | ownCloud is installed with SQLite by default. However SQLite is only good for testing and lightweight single user setups. It has no client synchronisation support, so other devices will not be able to synchronise with the data stored in an ownCloud SQLite database. MariaDB is the ownCloud recommended database. | ||
| + | |||
| + | Install the recommended MySQL/ | ||
| + | |||
| + | opkg update | ||
| + | opkg install mysql-server mariadb-client-extra php7-mod-pdo-mysql | ||
| + | |||
| + | Configure the database server: | ||
| + | |||
| + | sed -i ' | ||
| + | sed -i ' | ||
| + | |||
| + | mkdir -p / | ||
| + | mysql_install_db --force | ||
| + | |||
| + | Start MySQL: | ||
| + | |||
| + | / | ||
| + | / | ||
| + | |||
| + | Set password for root user: | ||
| + | |||
| + | mysqladmin -u root password ' | ||
| + | |||
| + | Connect to MySQL database: | ||
| + | |||
| + | mysql -uroot -p | ||
| + | |||
| + | Create user for web server and set its password: | ||
| + | |||
| + | CREATE USER ' | ||
| + | |||
| + | Create database for ownCloud and set privileges: | ||
| + | |||
| + | CREATE DATABASE IF NOT EXISTS owncloud; | ||
| + | GRANT ALL PRIVILEGES ON owncloud.* TO ' | ||
| + | FLUSH PRIVILEGES; | ||
| + | |||
| + | For more information, | ||
| + | |||
| + | ===== Unleash ownCloud | ||
| Download and unpack the newest revision: | Download and unpack the newest revision: | ||
| - | | '' | + | |
| - | wget http://mirrors.owncloud.org/ | + | wget https://download.owncloud.org/ |
| - | opkg update | + | opkg update |
| - | opkg install tar | + | opkg install tar |
| - | cd /www | + | cd /www |
| - | tar -xjf / | + | tar -xjf / |
| - | '' | + | |
| Now you should cleanup: | Now you should cleanup: | ||
| - | | '' | + | |
| - | opkg remove --autoremove tar | + | opkg remove --autoremove tar |
| - | '' | + | |
| You have to configure the rights of the / | You have to configure the rights of the / | ||
| - | | '' | + | |
| - | chmod 770 -R / | + | |
| - | '' | + | chmod 770 -R / |
| - | | '' | + | |
| - | mkdir owncloud | + | mkdir owncloud |
| - | cd owncloud | + | cd owncloud |
| - | mkdir data | + | mkdir data |
| - | chown -R root: | + | chown -hR http / |
| - | chmod 770 -R / | + | chmod 770 -R / |
| - | '' | + | |
| + | create the following folder after installation and change its permissions: | ||
| + | cd / | ||
| + | mkdir apps-external | ||
| + | chmod 777 apps-external | ||
| Open your Website http:// | Open your Website http:// | ||
| - | =====The easiest way to install owncloud | + | ===== Enable Background Jobs ===== |
| - | Format your USB drive as ext3 or ext4 and plug it into your Openwrt router | + | ownCloud requires background jobs like database cleanup. For best performance, |
| - | download the script from gizfun.com, run it and you are good to go | + | Enable Cron job: |
| - | '' | + | opkg install sudo |
| + | crontab -u http -e | ||
| + | * * * * * /usr/ | ||
| - | '' | + | For more information, |
| - | The script will download, install and configure all necessary web server components automatically. All software will be installed onto the external USB storage. | + | ===== ownCloud on alternative destination ===== |
| - | + | If you don't want to set up a extroot, you can install | |
| - | =====Owncloud on alternative destination ===== | + | |
| - | + | ||
| - | If you don't want to set up a extroot, you can install | + | |
| Install php on another location, then | Install php on another location, then | ||
| | '' | | '' | ||
| - | ln -s /opt/etc/php5 /etc/php5 | + | ln -s /opt/etc/php7 /etc/php7 |
| '' | '' | ||
| Line 253: | Line 297: | ||
| ln -s / | ln -s / | ||
| '' | '' | ||
| - | |||
| - | TODO | ||
| - | |||
| - | ===== Known bugs ===== | ||
| - | |||
| - | * Even if php5-mod-xml (and php5-mod-simplexml, | ||
| - | * It can be fixed by selecting php5-mod-xml when you make php5. If you don't, libxml will not be loaded, even if phh5-mod-xml is installed later. | ||
| ===== Written by ===== | ===== Written by ===== | ||
| Line 273: | Line 310: | ||
| * [0] [[http:// | * [0] [[http:// | ||
| - | * [1] [[doc/howto/usb.essentials]] | + | * [1] [[docs: |
| - | * [2] [[docs: | + | * [2] [[docs: |
| * [3] [[http:// | * [3] [[http:// | ||
| * [4] [[http:// | * [4] [[http:// | ||
| * [5] [[http:// | * [5] [[http:// | ||