Fixes: https://github.com/octobercms/october/issues/1927. Related: https://github.com/laravel/framework/issues/17508. Issue occurs when database configuration related to full support for the utf8mb4 charset is incorrect; MySQL > 5.7 & MariaDB > 10.2 doesn't have this issue because they default to the correct configuration values; this fix solves the issue for older versions of MySQL and MariaDB without requiring database server configuration changes. The root cause of the issue with the utf8mb4 encoding is that both InnoDB and MyISAM have too low of an index key prefix limit (767 bytes and 1000 bytes respectively) to properly store 255 4-byte characters; which would take 1024 bytes. See the docs on InnoDB limitations: https://dev.mysql.com/doc/refman/5.7/en/innodb-restrictions.html In MySQL >= 5.7 & MariaDB >= 10.2 this limit has been bumped to 3076 bytes by the changing of the default value of the `innodb_large_prefix` configuration property (introduced in MySQL 5.5) to true; which is what bumps up the limit. In order to manually set that property to true on earlier versions, `innodb_file_format` must be set to `BARRACUDA` and `row_format` must be `DYNAMIC` or `COMPRESSED`. See http://mechanics.flite.com/blog/2014/07/29/using-innodb-large-prefix-to-avoid-error-1071/ for more information. This change fixes the issue by changing the default string length to 191 (total of 764 bytes, within the older size limit) when the MySQL database config is detected to be using the utf8mb4 charset.
October is a Content Management System (CMS) and web platform whose sole purpose is to make your development workflow simple again. It was born out of frustration with existing systems. We feel building websites has become a convoluted and confusing process that leaves developers unsatisfied. We want to turn you around to the simpler side and get back to basics.
October's mission is to show the world that web development is not rocket science.
Learning October
The best place to learn October is by reading the documentation or following some tutorials.
You may also watch these introductory videos for beginners and advanced users.
Installing October
Instructions on how to install October can be found at the installation guide.
Quick start installation
For advanced users, run this in your terminal to install October from command line:
php -r "eval('?>'.file_get_contents('https://octobercms.com/api/installer'));"
If you plan on using a database, run this command:
php artisan october:install
Development Team
October was created by Alexey Bobkov and Samuel Georges, who both continue to develop the platform.
Foundation library
The CMS uses Laravel as a foundation PHP framework.
Contact
You can communicate with us using the following mediums:
- Follow us on Twitter for announcements and updates.
- Follow us on Facebook for announcements and updates.
- Join us on IRC to chat with us.
License
The OctoberCMS platform is open-sourced software licensed under the MIT license.
Contributing
Before sending a Pull Request, be sure to review the Contributing Guidelines first.
Coding standards
Please follow the following guides and code standards: