-
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lando/lando#1426: MySQL 8.x compatibility for WordPress recipe.
- Loading branch information
1 parent
e4ccaba
commit da4bc58
Showing
5 changed files
with
192 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
mysql8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
WordPress Example | ||
================= | ||
|
||
This example exists primarily to test the following documentation: | ||
|
||
* [WordPress Recipe](https://docs.devwithlando.io/tutorials/wordpress.html) | ||
|
||
Start up tests | ||
-------------- | ||
|
||
Run the following commands to get up and running with this example. | ||
|
||
```bash | ||
# Should poweroff | ||
lando poweroff | ||
|
||
# Should initialize the latest WordPress codebase | ||
rm -rf mysql8 && mkdir -p mysql8 && cd mysql8 | ||
lando init --source remote --remote-url https://wordpress.org/latest.tar.gz --recipe wordpress --webroot wordpress --name lando-wordpress-mysql8 --option database=mysql:8.0.22 | ||
|
||
# Should start up successfully | ||
cd mysql8 | ||
echo -e "\nplugins:\n \"@lando/wordpress/\": ./../../" >> .lando.yml | ||
lando start | ||
``` | ||
|
||
Verification commands | ||
--------------------- | ||
|
||
Run the following commands to validate things are rolling as they should. | ||
|
||
```bash | ||
# Should return the WordPress installation page by default | ||
cd mysql8 | ||
lando ssh -s appserver -c "curl -L localhost" | grep "WordPress" | ||
|
||
# Should use 7.4 as the default php version | ||
cd mysql8 | ||
lando php -v | grep "PHP 7.4" | ||
|
||
# Should be running apache 2.4 by default | ||
cd mysql8 | ||
lando ssh -s appserver -c "apachectl -V | grep 2.4" | ||
lando ssh -s appserver -c "curl -IL localhost" | grep Server | grep 2.4 | ||
|
||
# Should be running mysql 8.0.x by default | ||
cd mysql8 | ||
lando mysql -V | grep 8.0 | ||
|
||
# Should not enable xdebug by default | ||
cd mysql8 | ||
lando php -m | grep xdebug || echo $? | grep 1 | ||
|
||
# Should use the default database connection info | ||
cd mysql8 | ||
lando mysql -uwordpress -pwordpress wordpress -e quit | ||
|
||
# Should have the 2.x wp-cli | ||
cd mysql8 | ||
lando wp cli version | grep "WP-CLI 2." | ||
|
||
# Should create a wp-config file | ||
cd mysql8/wordpress | ||
lando wp config create --dbname=wordpress --dbuser=wordpress --dbpass=wordpress --dbhost=database --force | ||
|
||
# Should be able to install wordpress | ||
cd mysql8/wordpress | ||
lando wp core install --url=lando-wordpress.lndo.site --title=LandoPress --admin_user=admin --admin_email=mike@pirog.com --skip-email | ||
``` | ||
|
||
Destroy tests | ||
------------- | ||
|
||
Run the following commands to trash this app like nothing ever happened. | ||
|
||
```bash | ||
# Should be destroyed with success | ||
cd mysql8 | ||
lando destroy -y | ||
lando poweroff | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
# | ||
# The MySQL database server configuration file for Lando | ||
# | ||
|
||
[mysqld] | ||
# | ||
# * Basic Settings | ||
# | ||
# Data is stored in a volume on the db container /sql | ||
default-storage-engine = innodb | ||
|
||
# | ||
# * Fine Tuning | ||
# | ||
key_buffer_size = 384M | ||
max_allowed_packet = 32M | ||
thread_stack = 400K | ||
thread_cache_size = 8 | ||
# This replaces the startup script and checks MyISAM tables if needed | ||
# the first time they are touched | ||
#max_connections = 100 | ||
#table_cache = 64 | ||
#thread_concurrency = 10 | ||
read_rnd_buffer_size = 8M | ||
myisam_sort_buffer_size = 64M | ||
table_open_cache = 512 | ||
sort_buffer_size = 2M | ||
read_buffer_size = 2M | ||
|
||
# | ||
# * Logging and Replication | ||
# | ||
# Both location gets rotated by the cronjob. | ||
# Be aware that this log type is a performance killer. | ||
# As of 5.1 you can enable the log at runtime! | ||
#general_log_file = /src/.lando/log/mysql.log | ||
#general_log = 1 | ||
# | ||
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. | ||
# | ||
# Here you can see queries with especially long duration | ||
#log_slow_queries = /var/log/mysql/mysql-slow.log | ||
#long_query_time = 2 | ||
#log-queries-not-using-indexes | ||
# | ||
# The following can be used as easy to replay backup logs or for replication. | ||
# note: if you are setting up a replication slave, see README.Debian about | ||
# other settings you may need to change. | ||
#server-id = 1 | ||
#log_bin = /src/.lando/log/mysql-bin.log | ||
expire_logs_days = 10 | ||
max_binlog_size = 100M | ||
#binlog_do_db = include_database_name | ||
#binlog_ignore_db = include_database_name | ||
# | ||
# * InnoDB | ||
# | ||
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. | ||
# Read the manual for more InnoDB related options. There are many! | ||
# | ||
# Uncomment the following if you are using InnoDB tables | ||
#innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend | ||
#innodb_log_group_home_dir = C:\mysql\data/ | ||
# You can set .._buffer_pool_size up to 50 - 80 % | ||
# of RAM but beware of setting memory usage too high | ||
#innodb_buffer_pool_size = 384M | ||
#innodb_additional_mem_pool_size = 20M | ||
# Set .._log_file_size to 25 % of buffer pool size | ||
innodb_log_file_size = 100M | ||
#innodb_log_buffer_size = 8M | ||
innodb_flush_log_at_trx_commit = 0 | ||
#innodb_lock_wait_timeout = 50 | ||
innodb_buffer_pool_size = 384M | ||
innodb_log_buffer_size = 4M | ||
innodb_file_per_table = 1 | ||
innodb_open_files = 256 | ||
innodb_io_capacity = 512 | ||
innodb_flush_method = O_DIRECT | ||
innodb_thread_concurrency = 8 | ||
innodb_lock_wait_timeout = 120 | ||
# | ||
# * Security Features | ||
# | ||
# Read the manual, too, if you want chroot! | ||
# chroot = /var/lib/mysql/ | ||
# | ||
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca". | ||
# | ||
# ssl-ca=/etc/mysql/cacert.pem | ||
# ssl-cert=/etc/mysql/server-cert.pem | ||
# ssl-key=/etc/mysql/server-key.pem | ||
|
||
[mysqldump] | ||
quick | ||
quote-names | ||
max_allowed_packet = 32M | ||
|
||
[mysql] | ||
#no-auto-rehash # faster start of mysql but no tab completion | ||
|
||
[isamchk] | ||
key_buffer_size = 384M | ||
sort_buffer_size = 256M | ||
read_buffer = 2M | ||
write_buffer = 2M |