- Php value allow call time pass reference
- Какая версия PHP работает на хостинге?
- Можно ли на разных сайтах использовать PHP разных версий?
- Как узнать текущие установки PHP?
- Какой путь к исполняемому файлу интерпретатора PHP?
- PHP установлен как модуль Apache или как CGI?
- PHP на вашем хостинге работает в режиме Safe Mode?
- Как заставить html-страницы обрабатывать PHP код?
- Установлен ли у вас модуль РНР сURL?
- Как выключить отображение ошибок PHP?
- Какой размер оперативной памяти используется под PHP-приложения?
- Как увеличить объем загружаемого файла через скрипты?
- Почему вместо результатов работы PHP-скрипта я вижу лишь пустую белую страницу?
- Почему вместо результатов работы PHP-скрипта скачивается файл index.php?
- Можно ли устанавливать собственные настройки php.ini?
- Какие директивы php.ini можно настроить с помощью .htaccess?
- Как включить параметр allow_call_time_pass_reference?
- Как включить параметр register_globals?
- Возможно ли использовать функции для работы с IMAP в PHP?
- У вас установлен модуль ionCube?
- Как изменить часовой пояс на сайте?
- Как запустить PHP в режиме CGI?
- Request for Comments: allow_call_time_pass_reference
- History
- Reality Check
- Future
- Proposal
- References
- Comments
Php value allow call time pass reference
PHP или Hypertext Preprocessor — один из языков программирования для создания динамических страниц. Его инструкции встраиваются непосредственно в текст HTML-страниц. PHP, на настоящий момент, одно из самых популярных средств создания динамических сайтов и веб-приложений.
Какая версия PHP работает на хостинге?
Для работы доступно несколько версий интерпретатора PHP: 7.2, 7.3 и 7.4, а также устаревшие 5.2-7.1. Но они больше не поддерживаются разработчиками PHP и могут иметь уязвимости. Используйте их на свой страх и риск, и только если у вас есть код, который не работает с более новыми версиями. На всех новых аккаунтах по умолчанию включена версия 7.2, однако вы можете в любой момент переключиться на другую версию. Мы рекомендуем всегда использовать новейшую из доступных версий. Переключение между версиями происходит через контрольную панель в разделе «Хостинг / Управление / Настройки веб-сервера». Вы можете устанавливать версию PHP отдельно для каждого домена, привязанного к сервису.
Можно ли на разных сайтах использовать PHP разных версий?
Да, вы можете установить отдельную версию PHP для каждого домена в разделе «Хостинг / Управление / Настройки веб-сервера / Настройки PHP». Для всех новых доменов PHP 7.2 является версией по умолчанию. Поддомены используют ту же версию, что и основной домен. Если на определенном поддомене необходима другая версия, привяжите его к аккаунту как самостоятельный домен в разделе «Хостинг / Домены / Управление доменами».
Как узнать текущие установки PHP?
Узнать текущие установки PHP на вашем аккаунте можно, написав простой PHP-скрипт и обратившись к нему из браузера:
Какой путь к исполняемому файлу интерпретатора PHP?
PHP установлен как модуль Apache или как CGI?
На нашем хостинге PHP работает и как модуль веб-сервера Apache, и через CGI. Наиболее полно функциональность и удобство PHP раскрываются в случае работы с ним, как с модулем: можно использовать переменные окружения Apache, создавать собственную HTTP-авторизацию и т. д. Обратите внимание, что для работы с PHP через CGI нужно подключить услугу «Поддержка скриптовых языков» *. Услуга «Поддержка PHP» при этом не требуется. См. также: Как запустить PHP в режиме CGI? * Если ваш аккаунт создан до 25.10.2021 г., то вам нужно вместо услуги «Поддержка скриптовых языков» подключить услугу «Поддержка CGI».
PHP на вашем хостинге работает в режиме Safe Mode?
Как заставить html-страницы обрабатывать PHP код?
По умолчанию PHP-скриптами считаются лишь файлы с расширением .php и .phtml. Чтобы включить обработку PHP-кода в файлах с расширением .html или .htm, нужно добавить в файл .htaccess следующую директиву:
AddType application/x-httpd-php .html .htm
Если в нужной папке нет файла .htaccess, создайте его. Действие директив этого файла распространяется и на все вложенные папки.
Установлен ли у вас модуль РНР сURL?
Как выключить отображение ошибок PHP?
Для вашего удобства на серверах хостинга «Джино» по умолчанию включен вывод ошибок в PHP-скриптах в браузер. Чтобы отключить отображение ошибок, создайте в своей домашней директории, в папке домена или в папке со скриптом файл .htaccess и добавьте в него следующую строку:
php_flag display_errors off
Какой размер оперативной памяти используется под PHP-приложения?
Как увеличить объем загружаемого файла через скрипты?
Чтобы увеличить объем загружаемого файла через скрипты, создайте файл .htaccess в папке скрипта или папке домена и поместите в него следующие директивы:
php_value upload_max_filesize 15M php_value post_max_size 15M
Вместо 15 укажите нужный вам объем загружаемого файла. Примечание: Максимальный объем загружаемого файла 100 Мбайт.
Почему вместо результатов работы PHP-скрипта я вижу лишь пустую белую страницу?
Скорее всего, в процессе работы скрипта произошла какая-то ошибка, а в файле .htaccess отключен вывод ошибок на экран. Чтобы его включить, добавьте в этот файл (обычно он находится в вашей домашней директории, папке домена или папке с вашим скриптом) строку:
php_flag display_errors on
или исправьте существующую. После завершения отладки скрипта настоятельно рекомендуется снова выключить отображение ошибок.
Почему вместо результатов работы PHP-скрипта скачивается файл index.php?
Это значит, что у вас не подключена услуга «Поддержка PHP», и обработка PHP-скриптов на вашем аккаунте не работает. Подключить услугу можно через контрольную панель в разделе «Хостинг / Услуги».
Можно ли устанавливать собственные настройки php.ini?
У нас PHP работает как модуль Apache, и поэтому невозможно использовать свой php.ini. Для использования собственного php.ini вы можете запустить PHP в режиме CGI. Однако большую часть настроек можно изменить, не запуская PHP в режиме CGI — с помощью .htaccess и через раздел «Хостинг / Управление / Настройки веб сервера / Настройки PHP» в контрольной панели вашего аккаунта.
Какие директивы php.ini можно настроить с помощью .htaccess?
На сайте php.net приведён список директив php.ini, которые вы можете использовать в файле .htaccess. Примечение: вы можете использовать лишь те директивы, которые обозначены параметрами PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL. Некоторые из директив категории PHP_INI_SYSTEM можно изменить в разделе «Управление / Настройки веб-сервера» контрольной панели. Например, если вам необходимо включить функцию «magic_quotes_gpc», то надо прописать директиву функции в файле .htaccess, который надо создать в папке сайта или в папке скрипта:
php_flag magic_quotes_gpc on
php_flag output_buffering off
php_flag register_globals off
Все приведенные выше параметры прописаны через директиву php_flag, поскольку они могут принимать только бинарные значения — on/off (1/0). Если же значение прописываемого параметра может быть отлично от нуля или единицы (т. е. от on или off), то следует использовать директиву php_value. Например:
php_value upload_max_filesize 15M php_value post_max_size 15M
Как включить параметр allow_call_time_pass_reference?
Бывает, что при установке некоторые CMS и другие скрипты (типичный пример — «1С-Битрикс».) требуют включить параметр php.ini allow_call_time_pass_reference. Для этого создайте в нужной папке (например, в той папке, куда вы устанавливаете скрипт) файл .htaccess и поместите в него такую директиву:
php_flag allow_call_time_pass_reference on
Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.
Как включить параметр register_globals?
Некоторые скрипты (обычно написанные для ранних версий PHP) требуют включения данной директивы. Для этого в папке скрипта или в папке домена создайте файл .htaccess и поместите в него следующую директиву:
php_flag register_globals on
Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.
Возможно ли использовать функции для работы с IMAP в PHP?
У вас установлен модуль ionCube?
Как изменить часовой пояс на сайте?
php_value date.timezone 'Europe/Moscow'
Как запустить PHP в режиме CGI?
- Подключить услугу «Поддержка скриптовых языков» * (услугу «Поддержка PHP» можно отключить).
- Создать файл php.cgi:
#!/bin/bash /usr/local/bin/php-cgi -n или #!/bin/bash /usr/local/bin/php-cgi -c /путь/к/файлу/php.ini
Action php-cgi /php.cgi AddHandler php-cgi .php
Теперь файлы с расширением .php будут обрабатываться PHP интерпретатором в CGI-режиме.
Недостатки такого способа: низкая скорость работы, недоступность некоторых функций модуля и потенциальная небезопасность: если ваш скрипт взломают, это может иметь более серьезные последствия, чем если бы PHP работал как модуль Apache. Поэтому мы не рекомендуем запускать PHP через CGI без особой на то необходимости.
* Если ваш аккаунт создан до 25.10.2021 г., то вам нужно вместо услуги «Поддержка скриптовых языков» подключить услугу «Поддержка CGI».
- Общие вопросы о «Джино»
- Основные вопросы о «Джино»
- Оплата услуг
- Основные вопросы по хостингу
- Управление сайтом
- Работа с файлами
- FTP-доступ
- Задания по расписанию (cron)
- Доступ по SSH
- PHP
- CGI
- MySQL
- Общие вопросы по MySQL
- phpMyAdmin
- Joomla!
- osCommerce
- Invision Power Board
- MODX
- WordPress
- Основные вопросы по доменам
- Регистрация доменов
- Перенос доменов
- Домены .рф
- Основные вопросы
- Редактирование сайта
- Основные вопросы
- Настройка почтовых клиентов
- Почтовый интерфейс (WebMail)
Request for Comments: allow_call_time_pass_reference
This RFC aims to clarify the situation with call-time pass-by-ref in PHP 5.3.
History
Before PHP 4.0 was released, allow_call_time_pass_reference was introduced as a means of retaining back compatibility with PHP 3, at the point where returning by reference from a function declaration became possible [1]. By default, the INI switch has been On since inception [2]. The warning (formerly E_COMPILE_WARNING but currently E_DEPRECATED ) is only thrown if the INI switch is Off. You therefore need to explicitly switch off the directive in order to discover that the behaviour is deprecated.
At the time allow_call_time_pass_reference was introduced, php.ini-recommended was interestingly referred to as ‘php.ini-optimized’. Over the years, it has become fairly standard to regard php.ini-recommended as ‘production settings’; things like display_errors=Off and log_errors=On have helped this perception along. From inception, allow_call_time_pass_reference was switched Off in php.ini-recommended but On in php.ini-dist and by default. For the last 8 years, therefore, the first anyone is likely to have known about their code being less than kosher is when it went live.
Even in the current php.ini-recommended, the switch is attributed only to ‘Code cleanliness’. The full entry in the heading about changed settings reads:
; - allow_call_time_pass_reference = Off [Code cleanliness] ; It's not possible to decide to force a variable to be passed by reference ; when calling a function. The PHP 4 [sic] style to do this is by making the ; function require the relevant argument by reference.
In fact, allowing values to be passed by reference is the default behaviour in PHP, and has been from PHP 4.0 beta right up to PHP 5.3.
Reality Check
In some circumstances, on some platforms, passing values by reference can actually speed up your code. In most cases, though — and for all when it comes to large arrays — it carries a performance penalty. If you make use of by-ref for performance reasons on a given platform, that optimization will not be portable.
Future
The directive is completely gone from CVS HEAD [3]. The effect of this originally was that a new-to-many E_STRICT would be thrown when values are passed by reference. However, it’s been moved to E_DEPRECATED recently. In either case, it will no longer be possible to turn the warning off.
Proposal
Switch allow_call_time_pass_reference off by default in PHP_5_3 branch. At present there is no warning when running PHP under default settings, whereas in PHP 6 there will be a ‘deprecated’ warning given and no means of turning it off.
References
Comments
currently allow_call_time_pass_reference is set to Off in both php.ini-production and php.ini-development for 5.3, and Call-time pass-by-reference was removed from 5.4, so this RFC is implemented/obsolete.