1
0
mirror of https://github.com/laravel/valet.git synced 2026-02-06 08:40:09 +01:00
Commit Graph

236 Commits

Author SHA1 Message Date
Mikaël Popowicz
ea777a9e94 Adding ability to create unsecure proxy. 2020-11-28 23:22:07 +01:00
Matt Stauffer
518a009ff7 Merge pull request #996 from drbyte/fpm-errorlog-to-user-dir
Point PHP-FPM error_log to user directory
2020-11-27 11:34:01 -05:00
soilSpoon
cbb59c2251 Update brew list command to remove deprecation warning 2020-11-27 22:21:27 +09:00
Chris Brown
ce0999f8cd Point PHP-FPM error_log to user directory
Old: `/usr/local/var/log/php-fpm.log`
New: `~/.config/valet/Log/php-fpm.log`

(We already put `~/.config/valet/Log/nginx-error.log` there)

This avoids ARM Mac differences in directory paths.
2020-11-23 09:21:55 -05:00
soilSpoon
2c06a5d4f0 Modify the paths of packages to be based on brew prefix
- brew
- dnsmasq
- nginx
- php-fpm
- log
- etc
2020-11-15 14:38:18 +09:00
soilSpoon
6a4cb74392 Modify php binary path to be based on brew prefix 2020-11-14 21:42:13 +09:00
Chris Brown
2c03a07a71 Fix proxy config rewrite done during a tld change
(it wasn't rewriting all variants of the old tld, thus leaving them (and nginx) broken).
2020-11-05 19:05:53 -05:00
Chris Brown
d9a05cc27e Fix file_get_contents() error in tld command
When we added the `proxy` feature in https://github.com/laravel/valet/pull/913 we inadvertently broke the `tld` command.
It was concatenating old+new tld when searching for existing configs, thus it couldn't find the correct file, which triggered the reported error.

Fixes #984

This PR fixes the lookup by allowing the correct intended lookup tld to be passed in. It also checks that the file exists before trying to read it.
2020-11-05 19:04:55 -05:00
Miguel Piedrafita
778a877fdf Support php@8.0 and php@8.1 2020-10-28 15:16:18 +00:00
Chris Brown
8d9dcd0360 Protect against un-parking Valet's core Sites folder
Fixes #956
2020-06-02 17:09:13 -04:00
Matt Stauffer
570a7d9059 Merge pull request #942 from aryehraber/feat/diagnose-update
Filter Launch* commands output in "diagnose" command
2020-05-01 12:14:27 -04:00
Matt Stauffer
73b16c08b0 Merge pull request #913 from drbyte/valet-proxy
Add proxy site-handling commands
2020-04-30 11:44:44 -04:00
Aryeh Raber
3be38193b5 Filter Launch* commands using "| grep homebrew" 2020-04-29 11:12:04 +02:00
Beau Simensen
1cd3d23804 Update cli/Valet/Site.php
Co-Authored-By: Matt Stauffer <mattstauffer@users.noreply.github.com>
2020-04-28 16:35:19 -05:00
Beau Simensen
9f607ba998 Test the new Proxies features
Updated the `proxies` method to return the URL + .tld
as the rendered output wasn't exactly what one would
expect. While not critical, it was not consistent.

Refactored some of the Site class to aid in testing using
a fake instead of relying on a ton of mocking.

The Site fake has support for both using `tests/output`
as well as named fixtures (`tests/fixtures/Proxies`).

Testing for certificate I/O is pretty whack, but this is
the best I could come up with that would still ensure
the certificate stuff was getting called without
actually requiring `sudo` to run phpunit.

Replaced instances referring directly to `VALET_HOME_PATH`
with calls to the new `valetHomePath()`. This method
is taken over in the fake Site implementation so
that everything runs the same using the fake
Site without having to change other
assumptions.

Updated several "path" methods (and many of their usages)
to take the "thing" you are looking for so you can
either get the path to the type of "thing" you
are looking for or the direct path to the
specific "thing" you are looking for.

Examples:

```
// ~/.config/valet/Nginx
$site->nginxPath();

// ~/.config/valet/Nginx/some-site.com.test
$site->nginxPath('some-site.com.test');
```

Made some other tests related to the existence of `Sites`
directory that resulted in updating the mocks for
many of the other tests.

All in all, it should make other aspects of the Site class
handle things more gracefully if `Sites` doesn't exist.
2020-04-28 11:47:25 -05:00
Chris Brown
f056663159 Add proxy site-handling commands
valet proxy domain host
valet unproxy domain
valet proxies (to list all recognized proxy site configs)
2020-04-27 23:01:59 -04:00
Aryeh Raber
1535605b0d Update commands list 2020-04-27 00:21:17 +02:00
Aryeh Raber
cafba7f4c5 Add additional commands 2020-04-26 22:53:38 +02:00
Aryeh Raber
9965f7614c Ignore output for commands using "> /dev/null 2>&1" 2020-04-26 22:53:30 +02:00
Aryeh Raber
dedaddeff0 Ensure commands starting with "sudo" are run normally 2020-04-26 13:41:12 +02:00
Aryeh Raber
86fa649362 Format output using <details> + <summary> and add plain text flag to opt out 2020-04-25 16:29:53 +02:00
Aryeh Raber
5baccdbb54 Add sudo back to ensure commands work correctly 2020-04-25 16:26:54 +02:00
Aryeh Raber
415eedc4c0 Add progress bar when not printing output to console 2020-04-25 15:34:31 +02:00
Aryeh Raber
e59fa533f1 Add --print flag to print output while diagnostics are running 2020-04-25 14:33:24 +02:00
Aryeh Raber
ead9568aca Add "diagnose" command 2020-04-25 14:27:18 +02:00
Matt Stauffer
cd1d2e2725 Merge pull request #891 from drbyte/dnsmasq-gc
Cleanup old tld refs when switching tld or uninstalling
2020-01-07 11:35:55 -05:00
Chris Brown
dfd333a997 Remove unnecessary imports 2020-01-07 11:29:30 -05:00
Chris Brown
8dc5836492 Cleanup old tld refs when switching tld or uninstalling
Previously we would leave old tld stubs around; while it's harmless, it's less tidy.
2020-01-07 11:28:50 -05:00
Matt Stauffer
ccabaa832f Merge pull request #892 from drbyte/dry
Internal update: use existing function instead of duplicated code
2020-01-06 13:57:00 -05:00
Chris Brown
116c7a7b8c Detect running php when no version constraint specified with use command
Fixes #756

Previously if `php` was installed as just `php` (the default Homebrew alias), Valet would not detect *which* PHP version was actually installed, and therefore `valet use` might do incorrect or unnecessary installations/links/etc.

NOTE: This does NOT "convert" existing `php` alias to a numbered version. It merely accepts it as-is, but notes its version in an attempt to avoid extra installations.

*NOTE: Specifally tested with PHP 7.4 and 7.3. No promises about old 5.6, etc aliases.*
2020-01-04 13:36:20 -05:00
Chris Brown
e10f788cea Internal update: use existing function instead of duplicated code 2020-01-04 10:05:25 -05:00
Chris Brown
c8435c5187 Part 2: Fix auto-detection amongst multiple ngrok processes
Thanks to the generosity of Alan at Ngrok, I've been able to do some additional testing with temporary added features.
Turns out #864 was incomplete. This PR now also loops through the default endpoints in order to find a process matching the passed domain.

Ref: #864
Ref: #145
2019-12-06 23:33:20 -05:00
Chris Brown
6e01bfb5f4 Allow Valet to uninstall itself
`valet uninstall` only displays information about how to manually uninstall and clean up after Valet.

This PR adds a `--force` parameter, which will forcefully remove Valet and the Homebrew services it installs, as well as clean up the config files and log files.
But for a few post-uninstall composer dependencies, cleanup is very thorough.

This brings idempotency to both `valet install` and `valet uninstall --force`

(There may still be edge cases where other Homebrew or composer packages might create interference with install/uninstall, but this makes things much easier to self-troubleshoot.)
2019-12-05 22:19:55 -05:00
Matt Stauffer
d301e4ac11 Merge pull request #856 from drbyte/dnsmasq-customconfig
Use custom dnsmasq.d folder for easier config and support
2019-12-05 15:15:18 -05:00
Matt Stauffer
fea8208eb0 Merge pull request #858 from drbyte/phpfpm-simplify
Move PHP-FPM pool config to separate valet-specific file
2019-12-05 15:14:23 -05:00
Matt Stauffer
5042b9affe Merge pull request #864 from drbyte/ngrok-multiple
Fix auto-detection amongst multiple ngrok processes
2019-12-05 15:13:43 -05:00
Chris Brown
139a916013 Move PHP-FPM config to separate valet-specific file
This allows the valet configuration to stand separately from the default PHP config.
This benefits troubleshooting, makes customization of FPM workers and other settings easer
and allows for easier uninstallation.

Also renames any previously-existing `www.conf` pool config so it doesn't conflict with Valet nor run unnecessary additional processes.
2019-12-05 15:01:11 -05:00
Chris Brown
710fa27651 Fix auto-detection amongst multiple ngrok processes
Ngrok Pro plans allow multiple processes, which means you could be serving several sites simultaneously. This PR allows Valet to correctly identify amongst the active ngrok process URLs.

Fixes #145
2019-12-03 18:34:08 -05:00
David Connolly
5cf4aea612 Cater for filepaths with spaces
Fixes issue where certificates fail to be generated due to a space in the filepath
2019-12-03 22:47:12 +00:00
Chris Brown
02ad7f44ff Dnsmasq allows use of a common config folder, much like nginx and php do.
This PR changes Valet's default config process to empower this feature, which makes installation less intrusive, and easier to identify and remove valet-specific customizations.

This will make for easier troubleshooting
... and easier customizing (such as dropping in a custom logging config, additional TLDs, alternate DNS resolvers, etc)

Also removes old dnsmasq configs used by prior Valet versions
2019-12-02 15:02:56 -05:00
Matt Stauffer
30b0684736 Merge pull request #853 from drbyte/dnsmasq-restart
Include dnsmasq in valet start/restart command
2019-12-01 22:06:27 -05:00
Matt Stauffer
35a5f95abf Convert comma to semicolon 2019-12-01 22:05:54 -05:00
Matt Stauffer
f0a8fb9bb6 Merge pull request #852 from drbyte/patch-4
Display nginx config errors on start
2019-12-01 22:05:21 -05:00
Matt Stauffer
0681437219 Merge pull request #854 from drbyte/valet-unsecure-all
Add --all parameter to valet unsecure command
2019-12-01 14:55:43 -05:00
Matt Stauffer
8eea03f6a2 Merge pull request #835 from jrbarnard/bugfix/parked-merge-overwrite
Do not show sites in parked if they would not be served
2019-12-01 12:57:12 -05:00
Chris Brown
d6f06045fc Add --all parameter to valet unsecure command
This PR allows passing `--all` to `valet unsecure` to have it remove all certificates from all Valet configs AND from the MacOS Keychain.
This effectively cleans up certificate fragments or broken configs, and can help with troubleshooting.
2019-11-30 16:38:48 -05:00
Chris Brown
cfa8c216fa Include dnsmasq in valet start/restart command
While it's rare that the dnsmasq won't be started, it feels incomplete to not include the service when starting/restarting valet, since valet depends on it.
2019-11-30 16:34:08 -05:00
Chris Brown
e046fff6f6 Display nginx config errors on start
While since #268 valet has been checking nginx configs for errors when starting/restarting, the captured errors are never displayed if there is a failure because it's being run using `quietly()`. 
This PR causes the errors to pass through to the console so we can more readily understand why nginx may not be starting or not serving properly.
2019-11-30 16:31:18 -05:00
lee
bfd2f3ea5d Updated SUPPORTED_PHP_VERSIONS and LATEST_PHP_VERSION constants to 7.4 2019-11-29 23:06:20 +01:00
Chris Brown
e8d49c42bf Symfony/Process 4.4.0 compatibility
Process `4.4.0` changed command-line parsing by being more aggressive with substitutions, causing our intended literal `"$NF"` to throw an exception.

https://github.com/symfony/process/compare/v4.3.8...v4.4.0#diff-9a01fc0e340da4c3f1e4a16029a63977R1644-R1653
2019-11-21 12:04:13 -05:00