Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: angie_bg в Apr 16, 2008, 12:20



Титла: Проблем с php
Публикувано от: angie_bg в Apr 16, 2008, 12:20
Правя опит да понауча PHP, но срещам следния проблем:
- Когато кодът е в .php файл всичко се изпълнява коректно;
- Когато кодът е в .html файл, затворен с тагове <?php и ?>, не се изпълнява.
Вероятно има някаква настройка на php.ini, но не можах да я открия. Проблемът съществува и при директно преписване на примерите от книгите, така и когато кодът е вмъкнат чрез редактор от типа на NVU.

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

Системата е Kubuntu 7.04 + xampp 1.6.5


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

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


Титла: Проблем с php
Публикувано от: neter в Apr 16, 2008, 15:25
Казано по друг начин за първия ти въпрос, ако някакъв файл съдържа едновременно php и html, независимо дали php кодът е добавен с тагове или html кодът е добавен с echo, кръщавай файловете с разширение .php, което разширение така и така е описано в конфигурацията на apache за интерпретиране от php.

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


Титла: Проблем с php
Публикувано от: angie_bg в 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 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" файлът се открива на адрес www.php.info, но получавам съобщение, че нямам права върху него





Титла: Проблем с php
Публикувано от: teleport в 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.


Титла: Проблем с php
Публикувано от: angie_bg в Apr 28, 2008, 11:52
Проблемът с изпълнението на  .html файлове с вложен php код се реши с редактиране на /etc/apache2/http.conf (който досега беше празен), с добавяне на реда:
Примерен код
AddType application/x-httpd-php .html