From 1d9ab0f1f310969acacd41edf99599478da2b6ab Mon Sep 17 00:00:00 2001 From: Mathieu Trossevin Date: Thu, 4 Jun 2020 16:19:48 +0200 Subject: [PATCH] Allows using localhost to connect to MySQL in lxc Add 'php_conf_mysql_default_socket' variable to lxc-php role that configure both the lxc containers and PHP so that a local MySQL database may be used through localhost. The PHP containers will automount /var/run/mysqld/mysqld.sock (the default path to the mysql socket) to the path defined by the variable 'php_conf_mysql_default_socket' which will be the path used by php to contact MySQL both with mysqli and PDO_MYSQL. --- lxc-php/defaults/main.yml | 3 +++ lxc-php/tasks/misc.yml | 9 ++++++++- lxc-php/templates/z-evolinux-defaults.ini.j2 | 8 ++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/lxc-php/defaults/main.yml b/lxc-php/defaults/main.yml index 8cb62665..bacd7635 100644 --- a/lxc-php/defaults/main.yml +++ b/lxc-php/defaults/main.yml @@ -7,6 +7,9 @@ php_conf_html_errors: "Off" php_conf_allow_url_fopen: "Off" php_conf_disable_functions: "exec,shell-exec,system,passthru,popen" +# Allows accessing a local mysql database using localhost +php_conf_mysql_default_socket: Null + lxc_php_version: Null lxc_php_container_releases: diff --git a/lxc-php/tasks/misc.yml b/lxc-php/tasks/misc.yml index af848213..30565c9c 100644 --- a/lxc-php/tasks/misc.yml +++ b/lxc-php/tasks/misc.yml @@ -18,8 +18,15 @@ dest: "/var/lib/lxc/{{ lxc_php_version }}/rootfs/etc/mailname" notify: "Restart opensmtpd" - - name: "{{ lxc_php_version }} - Install misc packages" lxc_container: name: "{{ lxc_php_version }}" container_command: "DEBIAN_FRONTEND=noninteractive apt install -y cron logrotate git zip unzip" + +- name: "{{ lxc_php_version }} - Add MySQL socket to container default mounts" + lxc_container: + name: "{{ lxc_php_version }}" + container_config: + - "lxc.mount.entry = /var/run/mysqld/mysqld {{ php_conf_mysql_default_socket | replace('/', '', 1) }} none bind,create=file 0 0" + state: restarted + when: php_conf_mysql_default_socket is string diff --git a/lxc-php/templates/z-evolinux-defaults.ini.j2 b/lxc-php/templates/z-evolinux-defaults.ini.j2 index 7e3e116b..b407e520 100644 --- a/lxc-php/templates/z-evolinux-defaults.ini.j2 +++ b/lxc-php/templates/z-evolinux-defaults.ini.j2 @@ -6,3 +6,11 @@ log_errors = {{ php_conf_log_errors }} html_errors = {{ php_conf_html_errors }} allow_url_fopen = {{ php_conf_allow_url_fopen }} disable_functions = {{ php_conf_disable_functions }} + +{% if php_conf_mysql_default_socket %} +[Pdo_mysql] +pdo_mysql.default_socket = {{ php_conf_mysql_default_socket }} + +[MySQLi] +mysqli.default_socket = {{ php_conf_mysql_default_socket }} +{% endif %}