PHP 8.3 Setup for Debian
Add PHP Repository
Add Sury PHP repository for latest PHP versions:
# Download and set up GPG key
curl -fsSL https://packages.sury.org/php/apt.gpg | sudo gpg --dearmor -o /usr/share/keyrings/sury-php.gpg
# Add repository
echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
# Update package lists
sudo apt update
Install PHP and Extensions
Install PHP 8.3 with common extensions:
sudo apt install \
php8.3 \
php8.3-cli \
php8.3-fpm \
php8.3-common \
php8.3-mysql \
php8.3-zip \
php8.3-gd \
php8.3-mbstring \
php8.3-curl \
php8.3-xml \
php8.3-bcmath \
php8.3-pdo \
php8.3-tokenizer \
php8.3-json
Configure PHP-FPM
Edit PHP-FPM configuration:
sudo nano /etc/php/8.3/fpm/php.ini
Recommended settings:
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 180
max_input_vars = 3000
Set Up PHP-FPM Pool
Configure PHP-FPM pool settings:
sudo nano /etc/php/8.3/fpm/pool.d/www.conf
Recommended pool configuration:
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 25
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 10
Start and Enable Services
# Start PHP-FPM
sudo systemctl start php8.3-fpm
# Enable auto-start
sudo systemctl enable php8.3-fpm
# Check status
sudo systemctl status php8.3-fpm
Verify Installation
# Check PHP version
php -v
# Check installed modules
php -m
# Check PHP-FPM status
sudo systemctl status php8.3-fpm