Установка PHP и настройка модулей — различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
1. Обновите список пакетов: | 1. Обновите список пакетов: | ||
− | < | + | <pre>sudo apt update</pre> |
2. Установите PHP и основные модули: | 2. Установите PHP и основные модули: | ||
− | < | + | <pre>sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-json</pre> |
3. Установите дополнительные полезные модули: | 3. Установите дополнительные полезные модули: | ||
− | < | + | <pre>sudo apt install php-bcmath php-intl php-soap php-xmlrpc php-imagick php-redis php-memcached</pre> |
=== Для CentOS/RHEL/Fedora === | === Для CentOS/RHEL/Fedora === | ||
1. Установите репозиторий Remi: | 1. Установите репозиторий Remi: | ||
− | < | + | <pre>sudo yum install epel-release</pre> |
− | < | + | <pre>sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm</pre> |
2. Установите PHP: | 2. Установите PHP: | ||
− | < | + | <pre>sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-zip</pre> |
== 3. Проверка установки PHP == | == 3. Проверка установки PHP == | ||
1. Проверьте версию PHP: | 1. Проверьте версию PHP: | ||
− | < | + | <pre>php -v</pre> |
2. Проверьте установленные модули: | 2. Проверьте установленные модули: | ||
− | < | + | <pre>php -m</pre> |
3. Создайте тестовый файл: | 3. Создайте тестовый файл: | ||
− | < | + | <pre>echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php</pre> |
4. Откройте в браузере: '''http://ваш-ip-адрес/info.php''' | 4. Откройте в браузере: '''http://ваш-ip-адрес/info.php''' | ||
Строка 46: | Строка 46: | ||
1. Отредактируйте основной файл конфигурации: | 1. Отредактируйте основной файл конфигурации: | ||
− | < | + | <pre>sudo nano /etc/php/8.1/fpm/php.ini</pre> |
2. Настройте основные параметры: | 2. Настройте основные параметры: | ||
− | < | + | <pre>max_execution_time = 300</pre> |
− | < | + | <pre>max_input_time = 300</pre> |
− | < | + | <pre>memory_limit = 256M</pre> |
− | < | + | <pre>post_max_size = 100M</pre> |
− | < | + | <pre>upload_max_filesize = 100M</pre> |
− | < | + | <pre>session.gc_maxlifetime = 1440</pre> |
− | < | + | <pre>session.cookie_lifetime = 0</pre> |
− | < | + | <pre>expose_php = Off</pre> |
− | < | + | <pre>allow_url_fopen = On</pre> |
− | < | + | <pre>allow_url_include = Off</pre> |
=== Настройка пула PHP-FPM === | === Настройка пула PHP-FPM === | ||
1. Отредактируйте конфигурацию пула: | 1. Отредактируйте конфигурацию пула: | ||
− | < | + | <pre>sudo nano /etc/php/8.1/fpm/pool.d/www.conf</pre> |
2. Настройте параметры пула: | 2. Настройте параметры пула: | ||
− | < | + | <pre>pm = dynamic</pre> |
− | < | + | <pre>pm.max_children = 50</pre> |
− | < | + | <pre>pm.start_servers = 5</pre> |
− | < | + | <pre>pm.min_spare_servers = 5</pre> |
− | < | + | <pre>pm.max_spare_servers = 35</pre> |
− | < | + | <pre>pm.max_requests = 1000</pre> |
− | < | + | <pre>listen = /var/run/php/php8.1-fpm.sock</pre> |
− | < | + | <pre>listen.owner = www-data</pre> |
− | < | + | <pre>listen.group = www-data</pre> |
− | < | + | <pre>listen.mode = 0660</pre> |
3. Перезапустите PHP-FPM: | 3. Перезапустите PHP-FPM: | ||
− | < | + | <pre>sudo systemctl restart php8.1-fpm</pre> |
== 5. Установка дополнительных модулей == | == 5. Установка дополнительных модулей == | ||
Строка 85: | Строка 85: | ||
1. Скачайте и установите Composer: | 1. Скачайте и установите Composer: | ||
− | < | + | <pre>curl -sS https://getcomposer.org/installer | php</pre> |
− | < | + | <pre>sudo mv composer.phar /usr/local/bin/composer</pre> |
− | < | + | <pre>sudo chmod +x /usr/local/bin/composer</pre> |
2. Проверьте установку: | 2. Проверьте установку: | ||
− | < | + | <pre>composer --version</pre> |
=== Установка популярных расширений === | === Установка популярных расширений === | ||
1. Установите расширения для разработки: | 1. Установите расширения для разработки: | ||
− | < | + | <pre>sudo apt install php-dev php-pear</pre> |
2. Установите расширения через PECL: | 2. Установите расширения через PECL: | ||
− | < | + | <pre>sudo pecl install redis</pre> |
− | < | + | <pre>sudo pecl install memcached</pre> |
− | < | + | <pre>sudo pecl install imagick</pre> |
3. Добавьте расширения в конфигурацию: | 3. Добавьте расширения в конфигурацию: | ||
− | < | + | <pre>echo "extension=redis.so" | sudo tee -a /etc/php/8.1/fpm/php.ini</pre> |
− | < | + | <pre>echo "extension=memcached.so" | sudo tee -a /etc/php/8.1/fpm/php.ini</pre> |
− | < | + | <pre>echo "extension=imagick.so" | sudo tee -a /etc/php/8.1/fpm/php.ini</pre> |
== 6. Настройка для веб-серверов == | == 6. Настройка для веб-серверов == | ||
Строка 112: | Строка 112: | ||
1. Включите модуль PHP в Apache: | 1. Включите модуль PHP в Apache: | ||
− | < | + | <pre>sudo a2enmod php8.1</pre> |
2. Перезапустите Apache: | 2. Перезапустите Apache: | ||
− | < | + | <pre>sudo systemctl restart apache2</pre> |
=== Настройка для Nginx === | === Настройка для Nginx === | ||
1. Убедитесь, что PHP-FPM запущен: | 1. Убедитесь, что PHP-FPM запущен: | ||
− | < | + | <pre>sudo systemctl start php8.1-fpm</pre> |
− | < | + | <pre>sudo systemctl enable php8.1-fpm</pre> |
2. Настройте Nginx для работы с PHP: | 2. Настройте Nginx для работы с PHP: | ||
− | < | + | <pre>location ~ \.php$ {</pre> |
− | < | + | <pre>include snippets/fastcgi-php.conf;</pre> |
− | < | + | <pre>fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;</pre> |
− | < | + | <pre>}</pre> |
== 7. Оптимизация производительности == | == 7. Оптимизация производительности == | ||
Строка 134: | Строка 134: | ||
1. Убедитесь, что OPcache включен: | 1. Убедитесь, что OPcache включен: | ||
− | < | + | <pre>sudo apt install php-opcache</pre> |
2. Настройте OPcache в php.ini: | 2. Настройте OPcache в php.ini: | ||
− | < | + | <pre>opcache.enable=1</pre> |
− | < | + | <pre>opcache.memory_consumption=128</pre> |
− | < | + | <pre>opcache.interned_strings_buffer=8</pre> |
− | < | + | <pre>opcache.max_accelerated_files=4000</pre> |
− | < | + | <pre>opcache.revalidate_freq=2</pre> |
− | < | + | <pre>opcache.fast_shutdown=1</pre> |
=== Настройка APCu === | === Настройка APCu === | ||
1. Установите APCu: | 1. Установите APCu: | ||
− | < | + | <pre>sudo apt install php-apcu</pre> |
2. Настройте APCu: | 2. Настройте APCu: | ||
− | < | + | <pre>apc.enabled=1</pre> |
− | < | + | <pre>apc.shm_size=128M</pre> |
− | < | + | <pre>apc.ttl=7200</pre> |
− | < | + | <pre>apc.user_ttl=7200</pre> |
== 8. Управление PHP == | == 8. Управление PHP == | ||
Строка 160: | Строка 160: | ||
* '''Запуск PHP-FPM''': | * '''Запуск PHP-FPM''': | ||
− | < | + | <pre>sudo systemctl start php8.1-fpm</pre> |
* '''Остановка PHP-FPM''': | * '''Остановка PHP-FPM''': | ||
− | < | + | <pre>sudo systemctl stop php8.1-fpm</pre> |
* '''Перезапуск PHP-FPM''': | * '''Перезапуск PHP-FPM''': | ||
− | < | + | <pre>sudo systemctl restart php8.1-fpm</pre> |
* '''Проверка статуса''': | * '''Проверка статуса''': | ||
− | < | + | <pre>sudo systemctl status php8.1-fpm</pre> |
* '''Проверка конфигурации''': | * '''Проверка конфигурации''': | ||
− | < | + | <pre>php -m</pre> |
− | < | + | <pre>php --ini</pre> |
== 9. Установка популярных фреймворков == | == 9. Установка популярных фреймворков == | ||
Строка 180: | Строка 180: | ||
1. Установите Laravel через Composer: | 1. Установите Laravel через Composer: | ||
− | < | + | <pre>composer create-project laravel/laravel my-laravel-app</pre> |
2. Настройте права доступа: | 2. Настройте права доступа: | ||
− | < | + | <pre>sudo chown -R www-data:www-data my-laravel-app</pre> |
− | < | + | <pre>sudo chmod -R 755 my-laravel-app</pre> |
=== Установка Symfony === | === Установка Symfony === | ||
1. Установите Symfony CLI: | 1. Установите Symfony CLI: | ||
− | < | + | <pre>curl -sS https://get.symfony.com/cli/installer | bash</pre> |
− | < | + | <pre>sudo mv ~/.symfony/bin/symfony /usr/local/bin/symfony</pre> |
2. Создайте новый проект: | 2. Создайте новый проект: | ||
− | < | + | <pre>symfony new my-symfony-app</pre> |
== 10. Мониторинг и отладка == | == 10. Мониторинг и отладка == | ||
Строка 200: | Строка 200: | ||
* '''Логи ошибок PHP-FPM''': | * '''Логи ошибок PHP-FPM''': | ||
− | < | + | <pre>sudo tail -f /var/log/php8.1-fpm.log</pre> |
* '''Логи ошибок веб-сервера''': | * '''Логи ошибок веб-сервера''': | ||
− | < | + | <pre>sudo tail -f /var/log/nginx/error.log</pre> |
− | < | + | <pre>sudo tail -f /var/log/apache2/error.log</pre> |
=== Настройка отладки === | === Настройка отладки === | ||
1. Включите отображение ошибок (только для разработки): | 1. Включите отображение ошибок (только для разработки): | ||
− | < | + | <pre>display_errors = On</pre> |
− | < | + | <pre>error_reporting = E_ALL</pre> |
− | < | + | <pre>log_errors = On</pre> |
− | < | + | <pre>error_log = /var/log/php_errors.log</pre> |
== 11. Безопасность == | == 11. Безопасность == | ||
Строка 219: | Строка 219: | ||
1. Отключите опасные функции: | 1. Отключите опасные функции: | ||
− | < | + | <pre>disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source</pre> |
2. Настройте ограничения: | 2. Настройте ограничения: | ||
− | < | + | <pre>max_execution_time = 30</pre> |
− | < | + | <pre>max_input_vars = 1000</pre> |
− | < | + | <pre>max_input_time = 60</pre> |
3. Настройте права доступа к файлам: | 3. Настройте права доступа к файлам: | ||
− | < | + | <pre>sudo chown -R www-data:www-data /var/www/</pre> |
− | < | + | <pre>sudo chmod -R 755 /var/www/</pre> |
== 12. Устранение неполадок == | == 12. Устранение неполадок == | ||
Строка 249: | Строка 249: | ||
1. Проверьте синтаксис PHP: | 1. Проверьте синтаксис PHP: | ||
− | < | + | <pre>php -l /path/to/your/file.php</pre> |
2. Проверьте все настройки: | 2. Проверьте все настройки: | ||
− | < | + | <pre>php -i | grep -E "(memory_limit|max_execution_time|upload_max_filesize)"</pre> |
== Заключение == | == Заключение == |
Текущая версия на 10:41, 15 октября 2025
Содержание
- 1 Установка PHP и настройка модулей
- 1.1 1. Подготовка системы
- 1.2 2. Установка PHP
- 1.3 3. Проверка установки PHP
- 1.4 4. Настройка PHP-FPM
- 1.5 5. Установка дополнительных модулей
- 1.6 6. Настройка для веб-серверов
- 1.7 7. Оптимизация производительности
- 1.8 8. Управление PHP
- 1.9 9. Установка популярных фреймворков
- 1.10 10. Мониторинг и отладка
- 1.11 11. Безопасность
- 1.12 12. Устранение неполадок
- 1.13 Заключение
Установка 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):
- [Выделенные серверы](https://ark-hoster.ru/dedicated/) - для высоконагруженных PHP приложений
- [VPS/VDS серверы](https://ark-hoster.ru/vpsgame/) - для небольших и средних проектов
Наши специалисты помогут с настройкой PHP и оптимизацией производительности ваших приложений!