Updates for unified.diff
This commit is contained in:
parent
b2803aac2d
commit
bfb67e4010
1 changed files with 104 additions and 20 deletions
|
@ -4,7 +4,7 @@ footer: oliverdavies.uk
|
||||||
---
|
---
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
section {
|
section {
|
||||||
place-content: start;
|
place-content: start;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ section {
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
ont-size: 2rem;
|
font-size: 2rem;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -36,17 +36,48 @@ https://www.oliverdavies.uk
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
section {
|
||||||
|
place-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
# Nix for ~~PHP Developers~~ everyone
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
|
||||||
|
Oliver Davies (opdavies)
|
||||||
|
|
||||||
|
https://www.oliverdavies.uk
|
||||||
|
|
||||||
|
<!--
|
||||||
|
PHP examples, but apply to other languages.
|
||||||
|
Replace PHP with your language of choice
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!-- _paginate: false -->
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# About Me
|
# About Me
|
||||||
|
|
||||||
- PHP since 2007.
|
- PHP since 2007
|
||||||
- Drupal since 2008.
|
- Drupal since 2008
|
||||||
- Full-time Linux since ~2015.
|
- Full-time Linux since ~2015
|
||||||
- Nix/NixOS since 2022.
|
- Nix/NixOS since 2022
|
||||||
|
- Gave my first presentation at unified.diff in September 2012
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
PHP and Drupal Development. Linux-based infrastructure and systems administration. Automation.
|
PHP and Drupal Development. Linux-based infrastructure and systems administration. Automation.
|
||||||
|
|
||||||
Vagrant, Puppet, Ansible.
|
Vagrant, Puppet, Ansible.
|
||||||
|
|
||||||
|
This is talk #107
|
||||||
-->
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -153,6 +184,15 @@ Ecosystem of tools. Home Manager for user home configuration, nix-darwin for man
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# What is Nix?
|
||||||
|
|
||||||
|
- Package manager
|
||||||
|
- Build tool
|
||||||
|
- Operating system
|
||||||
|
- Language
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
@ -257,31 +297,32 @@ $ which php
|
||||||
|
|
||||||
$ php -v
|
$ php -v
|
||||||
|
|
||||||
PHP 8.3.6 (cli) (built: Jul 14 2025 18:30:55)
|
PHP 8.3.6
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!--
|
||||||
|
One version of PHP installed globally.
|
||||||
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Running PHP with Nix
|
# Running PHP with Nix
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ nix run nixpkgs#php \
|
$ nix run nixpkgs#php -- -v
|
||||||
--extra-experimental-features 'nix-command flakes' \
|
|
||||||
-- -v
|
|
||||||
|
|
||||||
PHP 8.4.11 (cli) (built: Jul 29 2025 15:30:21)
|
PHP 8.4.11
|
||||||
```
|
```
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
$ nix shell nixpkgs#php \
|
$ nix shell nixpkgs#php
|
||||||
--extra-experimental-features 'nix-command flakes'
|
|
||||||
|
|
||||||
$ which php
|
$ which php
|
||||||
/nix/store/s4kv9bzqawhqcyjg9xm2hji3jap6d6kd-php-with-extensions-8.4.11/bin/php
|
/nix/store/s4kv9bzqawhqcyjg9xm2hji3jap6d6kd-php-with-extensions-8.4.11/bin/php
|
||||||
|
|
||||||
$ php -v
|
$ php -v
|
||||||
|
|
||||||
PHP 8.4.11 (cli) (built: Jul 29 2025 15:30:21)
|
PHP 8.4.11
|
||||||
```
|
```
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
@ -294,6 +335,24 @@ Arbitrary commands and ephemeral shells.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
# Running PHP with Nix
|
||||||
|
|
||||||
|
```
|
||||||
|
$ nix run nixpkgs#php83 -- -v
|
||||||
|
|
||||||
|
PHP 8.3.25
|
||||||
|
```
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
```
|
||||||
|
$ nix run nixpkgs#php82 -- -v
|
||||||
|
|
||||||
|
PHP 8.2.29
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Using a `shell.nix` file
|
# Using a `shell.nix` file
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
|
@ -412,7 +471,7 @@ inputs = {
|
||||||
```
|
```
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
You can have multiple versions of Nix installed at once.
|
You can have multiple versions of Nix and applications installed at once.
|
||||||
|
|
||||||
Pin to a stable version of nixpkgs or a specific commit.
|
Pin to a stable version of nixpkgs or a specific commit.
|
||||||
|
|
||||||
|
@ -585,6 +644,12 @@ h1 {
|
||||||
|
|
||||||
# Nix is like `nvm`<br> for everything
|
# Nix is like `nvm`<br> for everything
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If there are multiple versions in nixpkgs, like PHP, you can pick the version you need.
|
||||||
|
|
||||||
|
If needed you can pin nixpkgs to a specific version for that project.
|
||||||
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# My ideal environment
|
# My ideal environment
|
||||||
|
@ -598,13 +663,13 @@ $ cd ~/my-project
|
||||||
|
|
||||||
$ php -v
|
$ php -v
|
||||||
|
|
||||||
PHP 8.4.10 (cli) (built: Jul 2 2025 02:22:42)
|
PHP 8.4.10
|
||||||
|
|
||||||
$ cd ~/another-project
|
$ cd ~/another-project
|
||||||
|
|
||||||
$ php -v
|
$ php -v
|
||||||
|
|
||||||
PHP 8.3.24 (cli) (built: Jul 29 2025 15:48:33)
|
PHP 8.3.24
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -717,6 +782,10 @@ php.buildComposerProject2 (finalAttrs: {
|
||||||
# ...
|
# ...
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Existing builders for PHP, node, Go, etc, and functions to download source code from GitHub, GitLab or any remote URL.
|
||||||
|
-->
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Packaging PHP for Nix
|
# Packaging PHP for Nix
|
||||||
|
@ -763,7 +832,6 @@ nix build
|
||||||
└── index.md
|
└── index.md
|
||||||
```
|
```
|
||||||
|
|
||||||
<!--
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Building Nix packages
|
# Building Nix packages
|
||||||
|
@ -787,7 +855,24 @@ This derivation produced the following outputs:
|
||||||
|
|
||||||
Phpactor 2025.03.28.0
|
Phpactor 2025.03.28.0
|
||||||
```
|
```
|
||||||
-->
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Not sure?
|
||||||
|
|
||||||
|
Want to try it, but you're not sure?
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ docker run --rm -it nixos/nix
|
||||||
|
```
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ podman run --rm -it nixos/nix
|
||||||
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -798,6 +883,5 @@ Phpactor 2025.03.28.0
|
||||||
- https://wiki.nixos.org/wiki/PHP
|
- https://wiki.nixos.org/wiki/PHP
|
||||||
- https://nixos.org/manual/nixpkgs/stable/#ssec-building-php-projects
|
- https://nixos.org/manual/nixpkgs/stable/#ssec-building-php-projects
|
||||||
- https://code.oliverdavies.uk/opdavies/lab
|
- https://code.oliverdavies.uk/opdavies/lab
|
||||||
- https://code.oliverdavies.uk/opdavies/drupal-nix-flake-example
|
|
||||||
- https://code.oliverdavies.uk/opdavies/nix-config (laptop and home server)
|
- https://code.oliverdavies.uk/opdavies/nix-config (laptop and home server)
|
||||||
- https://books.oliverdavies.uk/nix-for-php-developers (book, in progress)
|
- https://books.oliverdavies.uk/nix-for-php-developers (book, in progress)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue