Автор Тема: Проблем с php  (Прочетена 1881 пъти)

angie_bg

  • Напреднали
  • *****
  • Публикации: 842
  • Distribution: Ubuntu 10.04
  • Window Manager: Gnome
    • Профил
    • WWW
Проблем с php
« -: Apr 16, 2008, 12:20 »
Правя опит да понауча PHP, но срещам следния проблем:
- Когато кодът е в .php файл всичко се изпълнява коректно;
- Когато кодът е в .html файл, затворен с тагове <?php и ?>, не се изпълнява.
Вероятно има някаква настройка на php.ini, но не можах да я открия. Проблемът съществува и при директно преписване на примерите от книгите, така и когато кодът е вмъкнат чрез редактор от типа на NVU.

И допълнителен въпрос за Apache:
Когато посоча виртуален хост в поддиректория на /var/www всичко е нормално, когато обаче адресът е на друго място (на втори диск, поради липса на място на основни), получавам съобщение, че нямам права за изпълнение на този файл. Дал съм пълни права за редактиране и изпълнение на директорията, която посочвам във виртуалния хост.

Системата е Kubuntu 7.04 + xampp 1.6.5
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Проблем с php
« Отговор #1 -: Apr 16, 2008, 13:51 »
Можеш да настроиш .html файловете да се интерпретират от php през apache (виж документацията на php за инсталиране от изходен код в apache и по-специално описанието на асоциирането на php с .php файловете). Друг е въпроса, че .html файловете не би следвало да се интерпретират от какъвто и да било script processor.

Относно виртуалните хостове - какво ще рече "пълни права" и важат ли тези права за всички директории по пътя. Т.е. ако примерно искаш виртуалния хост да е в /some/path/outside/var/www/vhost1 има ли достъп до всяка една директория от този път потребителя, с който се изпълнява apache?
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Проблем с php
« Отговор #2 -: Apr 16, 2008, 15:25 »
Казано по друг начин за първия ти въпрос, ако някакъв файл съдържа едновременно php и html, независимо дали php кодът е добавен с тагове или html кодът е добавен с echo, кръщавай файловете с разширение .php, което разширение така и така е описано в конфигурацията на apache за интерпретиране от php.

По втория въпрос, покажи все пак конфигурацията на този виртуален хост.
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

angie_bg

  • Напреднали
  • *****
  • Публикации: 842
  • Distribution: Ubuntu 10.04
  • Window Manager: Gnome
    • Профил
    • WWW
Проблем с php
« Отговор #3 -: Apr 16, 2008, 17:38 »
1. Няма проблем с .php, но все пак
Примерен код
<html>
<body>
start
<br>
<?php
echo 'bla-bla';
?>
<br>
end
</body>
</html>
би трябвало да работи. Вмъкването на html код в php е безпроблемно, но обратното - не.
Ако горният код е във файл test.html резултатът е:
Цитат

start


end

но ако е (без никакви изменения) записан в test.php:
Цитат

start
bla-bla
end

2.
Примерен код
<VirtualHost *:80>
   ServerAdmin [EMAIL=webmaster@php.infp]webmaster@php.infp[/EMAIL]
   DocumentRoot="/var/www/php.info/"
   ServerName php.info
   ServerAlias http://www.php.info
   ErrorLog /var/www/php.info/logs error.log
   CustomLog /var/www/php.info/logs/custom.log combined
</VirtualHost>
и така няколко пъти с различни имена на сървъра. Ако вместо "/var/www" напиша напр. "/media/hda6/test" файлът се открива на адрес http://www.php.info, но получавам съобщение, че нямам права върху него



Активен

teleport

  • Напреднали
  • *****
  • Публикации: 134
    • Профил
Проблем с php
« Отговор #4 -: Apr 16, 2008, 20:03 »
Примерен код
$ cat php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#

LoadModule php5_module modules/libphp5.so

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php



Това е при Centos 5, apache 2.2.3, php 5.1.6. В моя случай е достатъчно да добавя "AddHandler php5-script .html" и да рестартирам apache. Всъщност аз мразя да рестартирам и затова правилния начин  е "killall -HUP httpd".

Имай предвид че има сериозна разлика в тоя синтаксис между apache 1.3, 2.0 и 2.2, както и между php 4 и 5. Също така има и разлика дали php ти е модул или е cgi.
Активен

angie_bg

  • Напреднали
  • *****
  • Публикации: 842
  • Distribution: Ubuntu 10.04
  • Window Manager: Gnome
    • Профил
    • WWW
Проблем с php
« Отговор #5 -: Apr 28, 2008, 11:52 »
Проблемът с изпълнението на  .html файлове с вложен php код се реши с редактиране на /etc/apache2/http.conf (който досега беше празен), с добавяне на реда:
Примерен код
AddType application/x-httpd-php .html
Активен