Установка PHP и настройка модулей — различия между версиями

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

Версия 20:02, 14 октября 2025

Установка 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 и оптимизацией производительности ваших приложений!