misc/debian/bullseye/php/README.md

97 lines
2.3 KiB
Markdown
Executable File

# PHP
Installing PHP on Debian is easy as...
```
apt install php-fpm php-readline php-mbstring php-gd \
php-curl php-zip php-mysql php-dom php-json php-pdo php-fileinfo \
php-bz2 php-intl php-gmp php-apcu php-pear php-cli php-imagick
```
If you need a newer version, use the sury.org repos, take
a look at [this readme](https://packages.sury.org/php/README.txt) or
use the `php8.1-sury-install.sh` script in this directory...
```
sudo bash php8.1-sury-install.sh
```
---
Now you have php installed you need to copy the `localhost.conf.example`
file (See [notes 1](#Notes)) in this directory to where your php-fpm
pool files are.
**If you have multiple PHP versions installed you'll need to pick the
version you want your site to run on.**
So, for PHP-FPM 7.4 using the example file...
```
cp -v localhost.conf.example /etc/php/7.4/fpm/pool.d/yoursite.com.conf
```
For PHP 8.1...
```
cp -v localhost.conf.example /etc/php/8.1/fpm/pool.d/yoursite.com.conf
```
**You'll need to rename and modify the values (within the copied file)
to match your site. I've left the main things to change at the top
of the config file.**
---
Got your config modified and sorted? Great! Now we need to restart
php-fpm. This varies depending on your version, but just you change
the PHP version number in the command below...
For 7.4...
```
systemctl restart php7.4-fpm
```
And 8.1...
```
systemctl restart php8.1-fpm
```
fpm is now ready to serve your php files via the socket
`/run/php/yoursite.com.sock`. You'll need to configure your webserver to
send any PHP requests along to it. If you're using Caddy with my
Caddyfile you're already set.
TIP: You can use `systemctl status php7.4` to check for errors!
## Disabling configurations & what about `www.conf`?
The included `www.conf` won't hurt and can be left alone, although if
you want to disable it, just rename it to `www.conf.disabled`. You can
do the same for any other configs you don't want used...
```
cd /etc/php/7.4/fpm/pool.d/
mv -v www.conf www.conf.disabled
```
And to enable it again...
```
cd /etc/php/7.4/fpm/pool.d/
mv -v www.conf.disabled www.conf
```
PHP-FPM needs to be reloaded, you can do that with...
```
systemctl reload php7.4-fpm
```
## Notes
[1] It's a symlink to the one I use with 7.4. It works fine on PHP 8.1.