The first step is to upload the DokuWiki files to your server, and get them unpacked. This procedure differs on every server.
Once you do that, and then try to access the site, you may well get a scarey red message like this:
which means that your data directory isn’t found or isn’t writable. Either fix that yourself if you know how, or you may need to ask your host for sysadmin for help.
Once you have that done, then this is the default home page:
which means that you can actually use DokuWiki without installing it at all. That means it’s really easy to get started. The disadvantage of not installing is that anyone can edit your wiki, without any need to create a user account either.
To install it and be able to control it, visit mysite.com/install.php and then you will see the installer. You don’t need any database. All you need is to decide what name to give your wiki, and then your login details:
When you finish, you see this:
If we then visit the home page again, there is now a “Log In” in the upper right corner:
Here is the login page:
and once we login, we see more links in the top right:
The phone rings. You pick it up. It’s the national lottery — they tell you that if you can be at their office within 15 minutes, you get the entire pot, upwards of 15 million dollars!
But you’re at home, not so close to that office. You need to decide on the spot how to get there. Right now, in the middle of rush hour, going by car may take more than 15 minutes. But riding your bike might also take more than 15 minutes. You have now 30 seconds to decide and your heart is racing, because the phone call was real and he was serious. What will you choose?
That’s the lottery. 🙂
Now at work, your boss demands that the new site build start immediately and you must decide which framework to use. Probably you have more than 30 seconds to decide, but on some level, the pressure may be as high to decide and make the right decision.
This is the issue we are going to examine today — what is the right tool for the job? A car and a bike are very different tools, but each one has its place. Same for a hammer and a screwdriver — each works great for what it’s made for, and not very well for other things.
Regarding our field, PHP web development, the available tools are a bit more complicated than a hammer or screwdriver and it’s usually far less clear which is the right tool.
Over the past few years, Laravel has taken over the field of PHP frameworks, with today a market share of around 3 times that of Symfony or CodeIgniter. Symfony, however, is not strictly a MVC framework like Laravel is. Symfony can be used as a framework, but it’s strength is as a set of decoupled components, which can be used independently, and Laravel itself actually uses several Symfony components.
But the fact remains that the most common question asked in the PHP framework world is what are the differences between Laravel and Symfony?
We will below try to answer this question, in detail, and we will examine these areas:
History – when and how did these two projects get started
Product – what differences exist in the actual product
A Brief History of Laravel
A developer from Arkansas by the name of Taylor Otwell, back in 2011, created Laravel as an alternative to CodeIgniter and his first release was in June of 2011. He was developing in .net and also CodeIgniter and wanted something “better” than CodeIgniter so he made his own framework — only later did it become a fully qualified MVC framework. Over the course of the next 6 years, the project developed and grew and core components such as Blade, Eloquent ORM, Artisan, Bundles, LTS, Scheduler, Dusk and others and including a complete rewrite of the entire project in 2013 which incorporated the dependency manager Composer.
The current version is 5.4 and today Laravel calls itself “The PHP Framework For Web Artisans” and boasts a flourishing ecosystem — see below for more details. The name Laravel is a trademark of Taylor Otwell.
The Laravel framework itself is open-sourced software licensed under the MIT license.
A Brief History of Symfony
In 2004 a French developer by the name of FabienPotencier created the Sensio Framework to help SensioLabs (his company) develop better websites faster. After he built his first website with it, the decision was made to release it as open source code under the name Symfony.
The first stable Symfony version, however, was released in January 2007. Version 2 was then released in July 2011 and was a rewrite of the entire framework from scratch.
The current version is 3.4 and is supported until 2020.
Symfony is officially sponsored by SensioLabs, a French software developer and service provider. Over 1700 people have contributed to the code base and over 1400 have contributed to the Symfony documentation, however. The name Symfony is a trademark of Fabien Potencier.
Symfony is released under the MIT license.
The Product
Laravel Overview
Laravel is an MVC framework for PHP. As they put it:
Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching. Laravel aims to make the development process a pleasing one for the developer without sacrificing application functionality.
The main forum for Laravel is the Laracasts Discuss site with over 65K threads and there is also the Laravel.io Forum with over 15K threads.
Symfony Overview
What is Symfony? As they put it:
Symfony is a set of reusable PHP components and a PHP framework for web projects.
and they also say:
Symfony is a set of PHP Components, a Web Application framework, a Philosophy, and a Community — all working together in harmony.
Symfony is not actually an MVC framework, however, like Laravel. This is one of the main reasons why comparing Symfony and Laravel is not an issue of which is better, rather which is best for any particular job.
The community around Symfony is a “passionate group of over 300,000 developers from more than 120 countries” and their original forum is now read-only and current forum activity is on StackOverflow with over 50K questions tagged as Symfony questions.
Symfony’s components are used in other very large and active projects, including Drupal, Joomla!, Magento, PrestaShop and of course Laravel.
Server Requirements for Laravel
Laravel requires:
PHP >= 5.6.4
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension
Tokenizer PHP Extension
XML PHP Extension
Composer
Server Requirements for Symfony
Symfony requires:
PHP >= 5.5.9
JSON Extension
ctype Extension
Your php.ini needs to have the date.timezone setting
Note that Laravel requires Composer and not all hosts can support that.
Installation
To install Laravel, the easiest way is via Composer, by first downloading Laravel:
composer global require "laravel/installer"
and then making a new Laravel installation with this Composer command:
composer create-project --prefer-dist laravel/laravel blog
Either of which will create a new Laravel install in a directory called blog. That’s the basic version. For more details, see our guide on How to Install Laravel on Shared Hosting
For Symfony, there are several ways to install. Some are global and some are meant only for development. We will show here one way, probably the simplest one, which is also via Composer:
You must then answer a set of questions, but at the end, this creates a new install of Symfony in a directory called symfony.
For both Laravel and Symfony, an “install” means a set of directories which are not meant to be public. After installing the system, you must set your webroot to be blog/public/ for our Laravel example and symfony/web/ for our Symfony example.
Installation on Shared Hosting
The Composer-based install procedures listed above can work on shared hosting. The host must of course support Composer (you may have to install that yourself) and allow ssh access, and support the other requirements, but anyhow, with a good host, it works. 🙂
Under the Hood
All the above was the broad overview. The real deal, however, is what each package offers a developer, and how they work. The consensus among many developers is that Symfony is more low-level and more complicated, but also more stable and scalable and is thus best for large, involved projects. Laravel, on the other hand, is simpler and easier to use and to learn, development speed can be faster, and it’s great for simpler projects that don’t need to scale too much.
ORM
ORM means Object-Relational Mapping and it’s a system that lets you query and manipulate data without knowing what database system you are using, meaning MySQL, Postgres or SQL Server etc. The ORM provides its own high-level methods to access the data using code that is not unique to any one database system.
Laravel uses the Eloquent ORM and Symfony uses a third-party library called Doctrine.
Some developers claim that “Eloquent is the biggest strength of Laravel.” On the other hand, it uses the Active Record pattern, which is great for small projects, but has received criticism that it won’t work for larger projects. It’s important to note that you can also use Doctrine in Laravel instead of Eloquent via the Laravel Doctrine project, which they call:
A drop-in Doctrine ORM 2 implementation for Laravel 5+
So whereas Eloquent and Doctrine are quite different in many ways, you’re not stuck with Eloquent in Laravel. It’s also worth noting that Doctrine is used in other frameworks, as well, including CodeIgniter, Zend Framework and Yii.
Template Engine
Laravel uses Blade and Symfony uses Twig, developed by Fabien Potencier himself.
Laravel defines Blade as:
Blade is the simple, yet powerful templating engine provided with Laravel. Unlike other popular PHP templating engines, Blade does not restrict you from using plain PHP code in your views. In fact, all Blade views are compiled into plain PHP code and cached until they are modified, meaning Blade adds essentially zero overhead to your application.
Symfony claims:
Twig allows you to write concise, readable templates that are more friendly to web designers and, in several ways, more powerful than PHP templates.
That’s nice — they both like their own products. 🙂
But again here, you are not stuck. You can use Twig in Laravel via the TwigBridge project which they claim:
Allows you to use Twig seamlessly in Laravel 5.
The point here is that Blade and Twig are both good tools and each has it’s advantages — these quotes are not propaganda, they’re true. 🙂
The choice of Twig vs Blade for many developers boils down to two points. One is that you can use regular old PHP code in Blade. Some folks love that because it’s easy and others claim that it encourages developers to mix business logic with presentation, whereas Twig solves these problems. Sounds a lot like what I wrote initially that Laravel is easier and faster and great for small jobs, and Symfony is harder, but has what you need for more serious jobs.
The other issue is portability — Twig is used in other projects as well and knowing it is an advantage.
The main difference here seems to be that Laravel uses PHP and JSON files to store localization data and Symfony “supports lots of different translation formats: PHP, Qt, .po, .mo, JSON, CSV, INI, etc.” and supports more standardized formats such as XLIFF and gettext.
Routing
A route is a map from a URL to a controller, meaning when a visitor to my site visits the “/dogshow” page, a route in my code directs the system to get the content for that page from the correct controller.
The Laravel Routing system works in simple PHP and the Symfony Routing system lets you define routing in “annotation” format or in YAML, XML or PHP. That again may be the main real difference, as both have a set of advanced features which cover most use cases.
Scaffolding
Scaffolding means having a tool generate for you automatically the basic code to CRUD (create, read, update and delete) from your database, effectively treating the templates as a “scaffold” on which to build the application.
Symfony comes with a bundle called SensioGeneratorBundle which “provides commands for scaffolding bundles, forms, controllers and even CRUD-based backends” but you can also use the generator-symfony package or the generator-sf package which uses Yeoman to “scaffold out a Symfony PHP app including Browsersync, various CSS preprocessors, jspm, webpack, browserify and Service Worker.”
Given all the various options for each, I certainly wouldn’t base a choice of framework on this issue.
Conclusions
There are other topics on this subject that we haven’t covered, such as Forms and Validation, Configuration, Artisan, the CLI tool for Laravel vs the The Console Component for Symfony, Lumen, the “stunningly fast micro-framework by Laravel” vs Silex a “PHP microframework built on the shoulders of Symfony and Pimple and also inspired by sinatra” and more topics as well.
As noted above, Symfony is generally for larger projects and Laravel for smaller ones, but at the end of the day of course you must use whatever you personally prefer or feel more comfortable with.
Hopefully our review can provide some insight as to the style of each tool and help you find what’s right for you.
You have your WordPress site setup for some domain, such as mysite.com.
Now you want to change that domain to sitenew.com. How do you do that?
It’s easy.
On a regular, single-site install (which is what most WordPress sites are), on the left side of your dashboard there is a Settings menu. Find “General” in there and click on it.
Then there are two boxes:
WordPress Address (URL)
and
Site Address (URL)
Change those to your new domain sitenew.com and click Save.
To see what’s happening in this market, let’s take a brief look at this Google Trends graph of interest in the top four packages over the past 5 years:
Shows pretty clearly that ownCloud and Nextcloud dwarf the competition, and it also seems pretty clear that since its inception, interest in Nextcloud has been growing fast and today has actually more Google searches than ownCloud.
Which project is actually bigger however is not clear. On a 2018 press release Nextcloud notes that they had “over 100K downloads of the Collabora Nextcloud app” in 2017 and in another 2018 press release claim that they have over 35 employees and “over 100 customers and partners.” ownCloud, on the other hand, in a 2018 blog post claim that they have almost 500 customers and that they hired 17 new employees in 2017. Both appear to be growing fast.
Not a surprise then that people are asking every day for details about Nextcloud vs ownCloud. What’s the difference?
This is indeed an excellent question and below we’re going to detail exactly what differences exist. Yes, we are entering now the Battle of the Clouds! 🙂
We will examine four areas:
History – when and how did these two projects get started
Who – what people are funding and supporting the software
License – what is the license for each
Product – what differences exist in the actual product
The last section Product is certainly the largest section and may be of most interest to many, so if you want, just click on the word Product to jump straight there.
A Brief History
ownCloud was launched in January 2010 by Frank Karlitschek and the first beta release came out in March 2010. In 2012 ownCloud Inc. was formed to serve the needs of the community of users of ownCloud. After the Nextcloud fork, ownCloud Inc. was shut down and today ownCloud is still managed by ownCloud GmbH.
Nextcloud was launched in April 2016 when Karlitschek forked ownCloud to create Nextcloud. Most of the core contributors of ownCloud left with Karlitschek to join forces in the new Nextcloud project, managed by the new company formed at the same time, Nextcloud GmbH. Within 6 months Nextcloud GmbH was profitable and remains today profitable and still manages the Nextcloud project.
The ownCloud project is split into two components, the open source Standard Edition and the Enterprise Edition, which is not open source, but the code can be downloaded without obfuscation. The Standard Edition is represented by owncloud.org and managed by ownCloud GmbH and the list of contributors is online.
The Enterprise Edition is represented by owncloud.com, has more features, and is also managed by ownCloud GmBH. They also have an exclusive partnership for North American clients with a company called XTIVIA and there is an XTIVIA page on the ownCloud site describing this relationship. ownCloud also has an official Meet the Team page.
Nextcloud has one open source edition and is represented online by nextcloud.com and managed by Nextcloud GmbH and the list of contributors is online and boasts that over 1000 people have contributed to Nextcloud.
The latest release of ownCloud Standard Edition released May 2017 is version 10 or ownCloud X, as they call it. The rest of our review is only regarding the Standard Edition, which is open source. The ownCloud Enterprise Edition does have more features not listed below.
Nextcloud’s latest release, from February 2018, is version 13.
Below we have these sub-sections in this section:
Screenshots
Pricing
Technology
Security
Features
Community and Support
Here’s the first one:
Screenshots
Preview the two login screens head to head — they’re quite similar:
Here we show you the top left corner of the initial screen, known as the “Files” page. This is essentially the Home page of a private cloud:
Click on the share icon for a file and you see on the right side the share menu for that file:
On our installation with several apps installed, Nextcloud shows each as a small icon, accessible directly from the main menu top bar. If you install a lot of apps in Nextcloud, however, you also must use a dropdown menu feature to see the rest:
In ownCloud you must first click on the dropdown menu, but then the app icons are larger and have text also:
Here is the initial apps page of Nextcloud:
If you select a category on the left, however, you do get a nicer view of available apps:
Here is the initial Marketplace page of ownCloud:
Pricing
Pricing for Nextcloud and ownCloud are free. That means they cost precisely zero dollars and zero cents to use them for as unlimited time, with unlimited data and unlimited users. There is no fee whatsover to download and use either package — they are both Open Source and completely free.
The marketing experts at FileCloud will try to convince you that each of these packages costs thousands of dollars per year, more in fact than their own commercial package. They make a convincing case that their product is less expensive. What they fail to mention, however, is that the fees they mention for Nextcloud and ownCloud are not software fees, they are optional support subscriptions.
There is a Nextcloud Pricing page as well as an ownCloud Pricing page, but again, these are only for a support subscription — you are not required to purchase that.
The base price for both is just ZERO. You of course need hosting and you can see our own Nextcloud hosting page for information about our hosting services, or you can host it yourself at home.
Technology
Both packages are built in PHP and support SQLite or MySQL/MariaDB. The installation procedure is virtually the same for both. For details, see our own How to Install Nextcloud page.
Regarding the code base, both are public of course and so you can see exactly what progress is being made. If we compare the GitHub Nextcloud “commit activity” graph and the ownCloud “commit activity” graph, you can see that Nextcloud has around twice as many commits as ownCloud does. A representative from ownCloud commented to us offline that their approach is to make fewer, but larger commits, but if we examine the Nextcloud “code frequency” graph vs the ownCloud “code frequency” graph it’s quite clear that since the split in 2016, the Nextcloud team has made far more development with the codebase than ownCloud.
They also have several more releases over the past year than ownCloud. Given that both packages started with the exact same code base when Nextcloud forked, this gives one an idea of where the action is.
Security
The Nextcloud team has invested a lot in improving security for their product, such as better password handling, brute force protection, rate limiting, integration with various enterprise authentication methods, CSP and more.
Nextcloud features a public Security Scan Tool which scans both Nextcloud and ownCloud instances and ownCloud also has a public Security Scan Tool as well.
Nextcloud, however, features an up to $5,000 Bug Bounty Program at HackerOne, a vulnerability coordination and bug bounty platform. You can see more on the Nextcloud page there.
The Nextcloud page there boasts an initial response time of under an hour and a response percentage of 100% whereas ownCloud’s page doesn’t mention the initial response time and shows a response percentage of only 82%.
ownCloud also has a page there, but as of Dec 19, 2018, it is not active and says “ownCloud is taking a break and is not accepting new submissions”. You can see for yourself the ownCloud page there.
Features
Feature
Nextcloud
ownCloud
Files
File Storage
YesUpload, synch, comments, tags, multiple versions, move files via web interface
YesUpload, synch, comments, tags, multiple versions, move files via web interface
File Sharing
YesShare via user, email, link, social media sites, password protection and expiration date. Can allow user without an account (just email) to edit a document.
YesShare via user, or link, social media sites, password protection and expiration date
Full Text Search
YesThe Nextant app integrates Apache Solr
YesIntegration with ElasticSearch available via a fee-based add-on
Folder Sharing
YesShare via user, email, link, social media sites, password protection and expiration date. Can allow user to view and upload.
YesShare via user, or ink, social media sites, password protection and expiration date. Can allow user to view and upload.
YesWCAG 2.0 AA and AAA standard compliance Keyboard/screen reader support Dyslexia-friendly font
No
Translations
33 languages available
103 languages available
Community and Support
ownCloud has a Support page with links to documentation, forums, IRC channel and other venues such as a Google Plus community, plus a mailing list. They then also have premium support for their Enterprise clients.
Nextcloud’s Support page has the same links for their documentation, forums, IRC channel and other venues such as a Google Plus community. They also provide premium support for clients who use their Enterprise support services.
If you prefer video, for Nextcloud there is a Nextcloud GmbH YouTube channel with over 60 videos, the most popular of which has 25,000 views.
For ownCloud there is the ownClouders channel, which, based on the logo used, appears to be focused on the Standard Edition and has over 250 videos and the most popular there has 170,000 views, and then there is the ownCloud channel apparently representing the Enterprise Version (here you see the Enterprise logo) with over 80 videos and the most popular video there has almost 3,000 views.
A quick Google search for “Nextcloud” brings up over 841,000 results and a search for “ownCloud” brings up almost 2 million results.
Conclusion
Both packages have a solid base and a growing set of addon apps, both have support available. Nextcloud, however, has a lot more action, “buzz” and growth. ownCloud does not appear to be dead at all, but the future of open source clouds clearly looks to be with Nextcloud.
Post Conclusion
If you’re looking for hosting for Nextcloud or for ownCloud, whether in the USA or Europe, we recommend CiviHosting. Let us install and secure your cloud for you:
Nextcloud has two separate components which may need to be installed. They are the server and the client. We will describe each separately:
Nextcloud Server
The Nextcloud server is all that you actually need to run Nextcloud. The term “server” here means the web software that powers your Nextcloud website, the place where you can login via a web browser:
and view/add/edit/share etc. your files and other data on your cloud:
The Nextcloud client is a program that runs on your computer or phone and, once configured, mostly just runs by itself “in the background” and synchronizes the files on your PC to those on the cloud. That means that if you edit/add/remove a file from your “cloud” folder on your PC then the same thing happens to that file on your online cloud. Also of course if someone edits/adds/removes a file from the online cloud, your PC will be updated with that same change.
You are not required to use this program to use a cloud. What it does, however, is synchronize all changes back and forth and so many users like it. Here is how it looks on a PC:
The install process is then the same as any other program:
Just click “Next” repeatedly until it’s done. When you now launch the program, the first step is to connect it to your cloud. It will ask you for the “Server Address” which means the URL of your cloud.
Enter that and click “Next” and then enter your Username and Password.
If you get those right, then the wizard will ask you if you want to sync everything or only certain files, and it will allow you to specify which folder on your PC to use to sync the files. Set those up as you like and then that’s it.
The client may need a few minutes to download (or upload) files to sync everything, but after that, you’re in business. 🙂
And if you’re looking for hosting for Nextcloud, whether in the USA or Europe, we are here for you. Get started now and we install and secure Nextcloud for you: