Установка PHP и настройка модулей

Материал из ARK-HOSTER.RU | Документация хостинга
Перейти к: навигация, поиск

Установка PHP и настройка модулей

1. Подготовка системы

  • Войдите в систему под учетной записью с правами root или пользователя с правами sudo.
  • Обновите систему до последней версии пакетов.

2. Установка PHP

Для Ubuntu/Debian

1. Обновите список пакетов:

sudo apt update

2. Установите PHP и основные модули:

sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-json

3. Установите дополнительные полезные модули:

sudo apt install php-bcmath php-intl php-soap php-xmlrpc php-imagick php-redis php-memcached

Для CentOS/RHEL/Fedora

1. Установите репозиторий Remi:

sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

2. Установите PHP:

sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip

3. Проверка установки PHP

1. Проверьте версию PHP:

php -v

2. Проверьте установленные модули:

php -m

3. Создайте тестовый файл:

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

4. Откройте в браузере: http://ваш-ip-адрес/info.php

4. Настройка PHP-FPM

Основная конфигурация

1. Отредактируйте основной файл конфигурации:

sudo nano /etc/php/8.1/fpm/php.ini

2. Настройте основные параметры:

max_execution_time = 300
max_input_time = 300
memory_limit = 256M
post_max_size = 100M
upload_max_filesize = 100M
session.gc_maxlifetime = 1440
session.cookie_lifetime = 0
expose_php = Off
allow_url_fopen = On
allow_url_include = Off

Настройка пула PHP-FPM

1. Отредактируйте конфигурацию пула:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

2. Настройте параметры пула:

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1000
listen = /var/run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660

3. Перезапустите PHP-FPM:

sudo systemctl restart php8.1-fpm

5. Установка дополнительных модулей

Установка Composer

1. Скачайте и установите Composer:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer

2. Проверьте установку:

composer --version

Установка популярных расширений

1. Установите расширения для разработки:

sudo apt install php-dev php-pear

2. Установите расширения через PECL:

sudo pecl install redis
sudo pecl install memcached
sudo pecl install imagick

3. Добавьте расширения в конфигурацию:

echo "extension=redis.so" | sudo tee -a /etc/php/8.1/fpm/php.ini
echo "extension=memcached.so" | sudo tee -a /etc/php/8.1/fpm/php.ini
echo "extension=imagick.so" | sudo tee -a /etc/php/8.1/fpm/php.ini

6. Настройка для веб-серверов

Настройка для Apache

1. Включите модуль PHP в Apache:

sudo a2enmod php8.1

2. Перезапустите Apache:

sudo systemctl restart apache2

Настройка для Nginx

1. Убедитесь, что PHP-FPM запущен:

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

2. Настройте Nginx для работы с PHP:

location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}

7. Оптимизация производительности

Настройка OPcache

1. Убедитесь, что OPcache включен:

sudo apt install php-opcache

2. Настройте OPcache в php.ini:

opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=2
opcache.fast_shutdown=1

Настройка APCu

1. Установите APCu:

sudo apt install php-apcu

2. Настройте APCu:

apc.enabled=1
apc.shm_size=128M
apc.ttl=7200
apc.user_ttl=7200

8. Управление PHP

Основные команды управления

  • Запуск PHP-FPM:
sudo systemctl start php8.1-fpm
  • Остановка PHP-FPM:
sudo systemctl stop php8.1-fpm
  • Перезапуск PHP-FPM:
sudo systemctl restart php8.1-fpm
  • Проверка статуса:
sudo systemctl status php8.1-fpm
  • Проверка конфигурации:
php -m
php --ini

9. Установка популярных фреймворков

Установка Laravel

1. Установите Laravel через Composer:

composer create-project laravel/laravel my-laravel-app

2. Настройте права доступа:

sudo chown -R www-data:www-data my-laravel-app
sudo chmod -R 755 my-laravel-app

Установка Symfony

1. Установите Symfony CLI:

curl -sS https://get.symfony.com/cli/installer | bash
sudo mv ~/.symfony/bin/symfony /usr/local/bin/symfony

2. Создайте новый проект:

symfony new my-symfony-app

10. Мониторинг и отладка

Просмотр логов PHP

  • Логи ошибок PHP-FPM:
sudo tail -f /var/log/php8.1-fpm.log
  • Логи ошибок веб-сервера:
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/apache2/error.log

Настройка отладки

1. Включите отображение ошибок (только для разработки):

display_errors = On
error_reporting = E_ALL
log_errors = On
error_log = /var/log/php_errors.log

11. Безопасность

Настройки безопасности

1. Отключите опасные функции:

disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

2. Настройте ограничения:

max_execution_time = 30
max_input_vars = 1000
max_input_time = 60

3. Настройте права доступа к файлам:

sudo chown -R www-data:www-data /var/www/
sudo chmod -R 755 /var/www/

12. Устранение неполадок

Частые проблемы

1. Ошибка "Class not found":

  • Проверьте автозагрузку Composer
  • Убедитесь, что расширения установлены

2. Ошибка "Permission denied":

  • Проверьте права доступа к файлам
  • Убедитесь, что пользователь веб-сервера имеет доступ

3. Ошибка "Memory limit exceeded":

  • Увеличьте memory_limit в php.ini
  • Оптимизируйте код приложения

Проверка конфигурации

1. Проверьте синтаксис PHP:

php -l /path/to/your/file.php

2. Проверьте все настройки:

php -i | grep -E "(memory_limit|max_execution_time|upload_max_filesize)"

Заключение

PHP успешно установлен и настроен! Теперь вы можете разрабатывать и запускать PHP приложения.

Для размещения ваших PHP проектов на надежном хостинге рекомендуем воспользоваться услугами [ARK-HOSTER.RU](https://ark-hoster.ru):

Наши специалисты помогут с настройкой PHP и оптимизацией производительности ваших приложений!