mb_string
Новичок
Появилась странная проблема при создании нового LAMP-сервера на CentOs 5.3
Обычно ставил php 5.1, идущий из дефолтных репозиториев и подправлял /etc/httpd/conf.d/php.conf - вместо строк
AddHandler php5-script .php
AddType text/html .php
ставил строки
AddHandler php5-script .php
#AddType text/html .php
AddType application/x-httpd-php .php
и всё работало просто замечательно, даже не думал, что в таком понятном месте могут быть какие-то проблемы.
А потом пришла пора уже переползать на php 5.2 - и я пробовал на нескольких серверах обновляться до 5.2 (через репозиторий atomic, который в общем-то и рекомендуется для поднятия версии php).
И ничего не вышло у меня: почему-то все php-скрипты стали обрабатываться - и выдают в браузер свой код. Т.е. пишу <? echo phpinfo(); ?> - эти строчки и вижу (разумеется /etc/httpd/conf.d/php.conf проверял, что после обновления ничего не слетело)
Эта проблема меня сильно озадачила, я перечитал описания этих двух директив и пошёл тренироваться на чистом свежеустановленном сервере.
Итак, что есть: чистый CentOs c уже установленным apache (ну вот уже поставил хостер туда апач).
Параметры:
cat /etc/redhat-release
CentOs release 5.3 (Final)
httpd –v
Apache/2.2.3
Ок, поставлю только php 5.2 и сразу буду тестироваться. Подключаю атомик ( wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh ) и прописываю exclude = php*5.3*
Ставлю php:
yum install php-5.2.17 php-cli-5.2.17 php-common-5.2.17
Установилось, проверяю:
php -v
PHP 5.2.17 (cli) (built: Jan 7 2011 08:49:48)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
Всё вроде неплохо, пробуем подружить apache с php.
Ищу файл /etc/httpd/conf.d/php.conf - ну да, как обычно вижу:
AddHandler php5-script .php
AddType text/html .php
Заменяю по привычке
AddHandler php5-script .php
#AddType text/html .php
AddType application/x-httpd-php .php
Настраиваю самый простенький виртуалхост с минимальным конфигом, пытаюсь стартовать и посмотреть phpinfo() - не работает, вижу в исходниках html-страницы свой php-код.
Почему не работает - не понимаю совершенно. Всё сделано как обычно, всё сделано по мануалам.
Где ловить ошибку - в корне непонятно. Перерыл уже за последние 4 часа тонну интернета - но так и не нашёл похожей проблемы.
Куда копать?
PS Ну, на всякий случай поподробнее расскажу, как настраивал виртуальный хост. Всё как обычно: расскоментил одну строку в /etc/httpd/conf/httpd.conf
NameVirtualHost 123.123.123.123:80
закинул в /etc/httpd/conf.d conf-файл хоста:
<VirtualHost 123.123.123.123:80>
ServerName rockrist.tudumba.ru
ServerAlias www.rockrist.tudumba.ru
DocumentRoot /home/rockrist.tudumba.ru/www
ErrorLog /home/rockrist.tudumba.ru/logs/rockrist.tudumba.ru.error_log
<Directory "/home/rockrist.tudumba.ru/www">
AllowOverride All
Options +Includes
</Directory>
</VirtualHost>
PPS Пока писал вот какой намёк странный получил. Файл <? echo phpinfo(); ?> не работает (показывает исходный код страницы), а вот файл <?php echo phpinfo(); ?> показывает страницу phpinfo!!! Т.е. я действительно по отдельности и apache и php работают превосходно, но апач не хочет обрабатывать страницы при помощи php. Вот понять бы этот намёк насчёт разницы между <? и <?php - было проще...
Обычно ставил php 5.1, идущий из дефолтных репозиториев и подправлял /etc/httpd/conf.d/php.conf - вместо строк
AddHandler php5-script .php
AddType text/html .php
ставил строки
AddHandler php5-script .php
#AddType text/html .php
AddType application/x-httpd-php .php
и всё работало просто замечательно, даже не думал, что в таком понятном месте могут быть какие-то проблемы.
А потом пришла пора уже переползать на php 5.2 - и я пробовал на нескольких серверах обновляться до 5.2 (через репозиторий atomic, который в общем-то и рекомендуется для поднятия версии php).
И ничего не вышло у меня: почему-то все php-скрипты стали обрабатываться - и выдают в браузер свой код. Т.е. пишу <? echo phpinfo(); ?> - эти строчки и вижу (разумеется /etc/httpd/conf.d/php.conf проверял, что после обновления ничего не слетело)
Эта проблема меня сильно озадачила, я перечитал описания этих двух директив и пошёл тренироваться на чистом свежеустановленном сервере.
Итак, что есть: чистый CentOs c уже установленным apache (ну вот уже поставил хостер туда апач).
Параметры:
cat /etc/redhat-release
CentOs release 5.3 (Final)
httpd –v
Apache/2.2.3
Ок, поставлю только php 5.2 и сразу буду тестироваться. Подключаю атомик ( wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh ) и прописываю exclude = php*5.3*
Ставлю php:
yum install php-5.2.17 php-cli-5.2.17 php-common-5.2.17
Установилось, проверяю:
php -v
PHP 5.2.17 (cli) (built: Jan 7 2011 08:49:48)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
Всё вроде неплохо, пробуем подружить apache с php.
Ищу файл /etc/httpd/conf.d/php.conf - ну да, как обычно вижу:
AddHandler php5-script .php
AddType text/html .php
Заменяю по привычке
AddHandler php5-script .php
#AddType text/html .php
AddType application/x-httpd-php .php
Настраиваю самый простенький виртуалхост с минимальным конфигом, пытаюсь стартовать и посмотреть phpinfo() - не работает, вижу в исходниках html-страницы свой php-код.
Почему не работает - не понимаю совершенно. Всё сделано как обычно, всё сделано по мануалам.
Где ловить ошибку - в корне непонятно. Перерыл уже за последние 4 часа тонну интернета - но так и не нашёл похожей проблемы.
Куда копать?
PS Ну, на всякий случай поподробнее расскажу, как настраивал виртуальный хост. Всё как обычно: расскоментил одну строку в /etc/httpd/conf/httpd.conf
NameVirtualHost 123.123.123.123:80
закинул в /etc/httpd/conf.d conf-файл хоста:
<VirtualHost 123.123.123.123:80>
ServerName rockrist.tudumba.ru
ServerAlias www.rockrist.tudumba.ru
DocumentRoot /home/rockrist.tudumba.ru/www
ErrorLog /home/rockrist.tudumba.ru/logs/rockrist.tudumba.ru.error_log
<Directory "/home/rockrist.tudumba.ru/www">
AllowOverride All
Options +Includes
</Directory>
</VirtualHost>
PPS Пока писал вот какой намёк странный получил. Файл <? echo phpinfo(); ?> не работает (показывает исходный код страницы), а вот файл <?php echo phpinfo(); ?> показывает страницу phpinfo!!! Т.е. я действительно по отдельности и apache и php работают превосходно, но апач не хочет обрабатывать страницы при помощи php. Вот понять бы этот намёк насчёт разницы между <? и <?php - было проще...