New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
php: set mysql socket path if mysql[i] or pdo_mysql support is enabled #47220
Merged
Conversation
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
PHP tries to discover the mysql default socket path during configure phase by probing the file system: https://github.com/php/php-src/blob/cf3b852109a88a11370d0207cd3b72a53b6a64c3/ext/mysqli/config.m4#L4 This obviously fails to discover /run/mysqld/mysqld.sock, which is being used (hardcoded) across all MySQL flavours. This leads to PHP having no mysql socket path set for the mysql[i] extensions, and `/tmp/mysql.sock` set for pdo_mysql, meaning one currently has to manually configure and set it in php.ini. Luckily, PHP supports setting that path via `--with-mysql-sock=/run/mysqld/mysqld.sock` during configure phase, so let's do this as soon as one of the three modules is enabled.
symptoms: #44994 (comment) |
Success on x86_64-linux (full log) Attempted: php Partial log (click to expand)
|
Success on x86_64-darwin (full log) Attempted: php Partial log (click to expand)
|
Success on aarch64-linux (full log) Attempted: php Partial log (click to expand)
|
Mic92
reviewed
Sep 23, 2018
backport: 5bb85cd |
9 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PHP tries to discover the mysql default socket path during configure
phase by probing the file system:
https://github.com/php/php-src/blob/cf3b852109a88a11370d0207cd3b72a53b6a64c3/ext/mysqli/config.m4#L4
This obviously fails to discover
/run/mysqld/mysqld.sock
, which is beingused (hardcoded) across all MySQL flavours.
This leads to PHP having no mysql socket path set for the mysql[i]
extensions, and
/tmp/mysql.sock
set for pdo_mysql,meaning one currently has to manually configure and set it in php.ini.
Luckily, PHP supports setting that path via
--with-mysql-sock=/run/mysqld/mysqld.sock
during configure phase,so let's do this as soon as one of the three modules is enabled.
Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS)nix-shell -p nox --run "nox-review wip"
./result/bin/
)nix path-info -S
before and after)This should probably be backported to 18.03 and 18.09 too.