PHP

Установка PHP

В CentOS устанавливаем rpm пакеты

yum install php-common php-cli php

Если посмотреть список установленных файлов, то видно, что php устанавливает модуль для Apache /usr/lib/httpd/modules/libphp7.so, а php-cli — интерпретатор /usr/bin/php

Модуль для Apache требует внесения изменений в конфигурацию apache. В CentOS это делается при инсталляции пакета путем добавления файла /etc/httpd/conf.d/php.conf. Примерное содержимое файла

<FilesMatch \.(php|phar)$>
   SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex index.php

Модули в PHP

Интерпретатор php позволяет подключать дополнительные модули, которые расширяют набор доступных в языке функций. Модули могут быть статически скомпилированы в интерпретатор либо подключаться динамически. Из популярных можно упомянуть php-mysql для связи с БД My SQL, php-gd – библиотека обработки изображений, php-mbstring – работа с Unicode.

В CentOS модули можно доустанавливать в соответствии с потребностями

yum install php-mysql

В соответствии с идеологией CentOS конфигурация php для модуля сохраняется в каталоге /etc/php.d/ и содержит строку подключения модуля:

extension=mysql.so

После установки модуля, веб сервер надо перегрузить.

Конфигурационный файл PHP

Общий для всех конфигурационный файл находится в /etc/php.ini

В инструкции по php перечислены параметры, которые можно (PHP_INI_ALL, PHP_INI_PERDIR) и которые нельзя (PHP_INI_SYSTEM) изменить на уровне каталога.

Начиная с версии PHP 5.3.0 в каталоге можно помещать локальный файл настроек .user.ini

Также установки «под себя» можно сделать в файле .htaccess строками подобными следующим

php_value upload_max_filesize 32M
php_value post_max_size 64M

Или в тексте самой программы

<?php
ini_set('memory_limit', '128M');
ini_set('max_input_time', '300');
ini_set('max_execution_time', '300'); // 5 minuites
?>

php_info.php

Простейшая, но очень полезная программа на php. Выдает всю информацию о конфигурации apache и php

<?php
print phpinfo();
?>

Пример подключения к MySQL

<?php
$host='localhost'; $user="user1"; $pass='123';
//Знак @  нужен, чтобы погасить выдачу возможных ошибок подключения на веб страницу
$connection = @mysql_connect($host, $user, $pass, TRUE, 2);
//Установка кодировки для обмена данными в mysql версии > 4.1.0
mysql_query('SET NAMES "utf8"', $connection);
$query ="SELECT * FROM table";
$result = mysql_query($query);
if( $result )
{
   while( $array=mysql_fetch_array($result, MYSQL_ASSOC) );
   print_r($array);
}
?>