|
@@ -0,0 +1,81 @@
|
|
|
+---
|
|
|
+title: OCD Benefits
|
|
|
+slug: ocd-benefits
|
|
|
+description: Today I learned how some mild OCD tendencies tend to help with computers.
|
|
|
+<!--- authors:
|
|
|
+ - name: David Windham
|
|
|
+ title: Something Else
|
|
|
+ url: https://davidawindham.com
|
|
|
+ image_url: https://davidawindham.com/wp-content/themes/daw/img/opengraph_image.jpg -->
|
|
|
+tags: [ocd, php, ovid]
|
|
|
+image: https://davidawindham.com/wp-content/themes/daw/img/opengraph_image.jpg
|
|
|
+hide_table_of_contents: true
|
|
|
+---
|
|
|
+
|
|
|
+Today I learned how some mild OCD tendencies tend to help me with computers.
|
|
|
+
|
|
|
+<!--truncate-->
|
|
|
+
|
|
|
+In my last post @ [/posts/mariadb-meltdown](/posts/mariadb-meltdown), I upgraded MySQL to version 8.3 and because, for whatever reason... perhaps some mild OCD ( obsessive-compulsive disorder ), I also thought it'd be nice to match up my MySQL and PHP versions since it's rare to share the same numerical version for the latest stable releases. Yes, it may seem like somewhat absurd reasoning, but it makes sense in my brain 🧠.
|
|
|
+
|
|
|
+I'd been on v8.1 for a bit now and I generally like to make major version jumps to save the time and effort of constant upgrades. In the process I also went ahead and matched up my server types because I'd noticed a nagging error in my `logs` about the Apache mpm_event module not playing nice with the compiled PHP version.
|
|
|
+
|
|
|
+```bash
|
|
|
+david@ovid🏛 :/opt/homebrew/etc/httpd(master○) » apachectl configtest
|
|
|
+[Thu Jul 18 06:27:21.715896 2024] [php7:crit] [pid 43726:tid 8420412416] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. Homebrew PHP does not support a thread-safe php binary. To use the PHP apache sapi please change your httpd config to use the prefork MPM
|
|
|
+AH00013: Pre-configuration failed
|
|
|
+```
|
|
|
+
|
|
|
+Yes, I don't really need the `mpm_event` or `http2` on my localhost, but again.. the OCD says make it match my servers exactly so the development environment is **exactly** the same. I run http2 on localhost anyway.
|
|
|
+
|
|
|
+```bash title="/opt/homebrew/etc/httpd/httpd.conf"
|
|
|
+Protocols h2 h2c http/1.1
|
|
|
+LoadModule mpm_event_module lib/httpd/modules/mod_mpm_event.so
|
|
|
+#LoadModule mpm_prefork_module lib/httpd/modules/mod_mpm_prefork.so
|
|
|
+```
|
|
|
+
|
|
|
+If you're following along or came here from some search term, the solution is to compile a thread-safe version.
|
|
|
+
|
|
|
+```bash
|
|
|
+brew tap shivammathur/php
|
|
|
+brew install shivammathur/php/php@8.3-zts
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+I just set my ports to match the version under port 9000.
|
|
|
+
|
|
|
+```bash title="/opt/homebrew/etc/php/8.3/php-fpm.d/www.conf"
|
|
|
+listen = 127.0.0.1:9083
|
|
|
+```
|
|
|
+
|
|
|
+And then I can just use that port 👇🏼 to specify the PHP version per project.
|
|
|
+
|
|
|
+```bash title="/opt/homebrew/etc/httpd/extra/httpd-vhosts.conf"
|
|
|
+<FilesMatch "\.php$">
|
|
|
+ SetHandler "proxy:fcgi://localhost:9083/"
|
|
|
+</FilesMatch>
|
|
|
+```
|
|
|
+
|
|
|
+I leave the command line @ 8.3 and now they match 👏🏼.
|
|
|
+
|
|
|
+```bash
|
|
|
+david@ovid🏛 :/opt/homebrew/etc/httpd(master○) » php -v
|
|
|
+PHP 8.3.9 (cli) (built: Jul 2 2024 14:10:14) (NTS)
|
|
|
+david@ovid🏛 :/opt/homebrew/etc/httpd(master○) » pecl list
|
|
|
+Installed packages, channel pecl.php.net:
|
|
|
+=========================================
|
|
|
+Package Version State
|
|
|
+imagick 3.7.0 stable
|
|
|
+redis 5.3.4 stable
|
|
|
+xdebug 3.3.2 stable
|
|
|
+david@ovid🏛 :/opt/homebrew/etc/httpd(master○) » mysql --version
|
|
|
+mysql Ver 8.3.0 for macos14.2 on arm64 (Homebrew)
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+Managing a bunch of computers and software is not easy unless you tend to be organized. I had someone ask me at lunch yesterday about my schedule... "if it was rigorous?". And although I hadn't ever put much thought into it... Indeed it is. Does my localhost match my servers? Do all of my dotfiles match between machines? Do all my editor themes match? Do my syntax highlighting themes match? Did I go so far as to create my own [development inspector to match](https://davidawindham.com/chrome-devtools-theme/)? Do all of my config files match? Does my editor match my live sites?
|
|
|
+
|
|
|
+![](/img/ocd.png)
|
|
|
+
|
|
|
+**YES** to all of these. So yes... a little OCD kinda works for me.
|