Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Nuno_Martins

Problema com PHP e Apache

Recommended Posts

Nuno_Martins

Boas,

Eu queria começar a fazer uma BD em MySQL e um site em php para interagir com a mesma. Para tal arranjei um livro (Beginning PHP5 Apache and MySQL Web Development) e estou a seguir os passos para a instalação.

Instalei o Apache HTTP Server e fiz as seguintes alterações no ficheiro httpd:

Adicionei isto:

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

e isto:

LoadModule php5_module "c:/php/php5apache2_2.dll"

De inicio estava só a usar o ficheiro php5apache2.dll mas quando reiniciava o Apache dava erro, então adicionei o que coloquei em cima. Só que agora quando tento abrir a página que fiz em php não dá. Em HTML consigo abrir mas em php não. Dá erro 404 not found.

Também alterei o nome do ficheiro php.ini-dist para php.ini e fiz uma cópia para a pasta do Windows.

Compiei também o ficheiro php5ts.dll para a pasta system32

Alguém pode dar uma ajuda?

Share this post


Link to post
Share on other sites
The Loser

Estás a colocar os ficheiros no directório correcto?

Que directório tens configurado como DocumentRoot no ficheiro de configuração do apache?

Configuraste o doc_root no php.ini para apontar para o mesmo directório que o apache tem?

Como estás a tentar aceder ao ficheiro?


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites
Nuno_Martins

Estás a colocar os ficheiros no directório correcto?

Que directório tens configurado como DocumentRoot no ficheiro de configuração do apache?

Configuraste o doc_root no php.ini para apontar para o mesmo directório que o apache tem?

Como estás a tentar aceder ao ficheiro?

Eu estou a seguir o tal livro, criei uma pasta "test" para colocar as páginas lá e alterei as duas localizações no httpd.conf para essa nova directoria.

Em relação ao que dizes do do_root no php.ini não mexi nada, sinceramente também não sei o que é preciso fazer nem como se faz, podes ajudar?

Estou a tentar aceder ao ficheiro no browser colocando: http://localhost/phptest.php'>http://localhost/phptest.php

Se eu colocar só http://localhost abre logo uma página de teste HTML que lá tenho, mas em php é que não...

Share this post


Link to post
Share on other sites
The Loser

Nessa pasta que criaste chamada "test", tens lá algum ficheiro HTML?

O que me parece é que configuraste mal o httpd.conf.


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites
Nuno_Martins

Nessa pasta que criaste chamada "test", tens lá algum ficheiro HTML?

O que me parece é que configuraste mal o httpd.conf.

Sim tenho, um ficheiro de texto .html

Pois, segui à risca o livro e já andei a procurar na net, mas não acho grande coisa para resolver isto...

Não sabes ao certo o que possa ser?

Share this post


Link to post
Share on other sites
The Loser

Sim tenho, um ficheiro de texto .html

Pois, segui à risca o livro e já andei a procurar na net, mas não acho grande coisa para resolver isto...

Não sabes ao certo o que possa ser?

Hmm..

Com tão pouca informação não consigo fazer muito. :P

Diz-me todos os passos que fizeste desde a instalação do Apache até ao fim da configuração do PHP.


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites
Nuno_Martins

Cá vai.

No apache_2.0.50-win32-x86-no_ssl fiz a instalação em modo tipico, com a porta 80.

Após a instalação fiz http://localhost e deu uma mensagem de sucesso: "It Works"

Depois no ficheiro httpd.conf alterei:

#

# AddType allows you to add to or override the MIME configuration

# file specified in TypesConfig for specific file types.

#

#AddType application/x-gzip .tgz

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

------------------------------------------------------------------------------------------

#

# Dynamic Shared Object (DSO) Support

#

# To be able to use the functionality of a module which was built as a DSO you

# have to place corresponding `LoadModule' lines at this location so the

# directives contained in it are actually available _before_ they are used.

# Statically compiled modules (those listed by `httpd -l') do not need

# to be loaded here.

#

# Example:

# LoadModule foo_module modules/mod_foo.so

#

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

.

.

.

.

.

.

.

.

.

LoadModule php5_module "c:/php/php5apache2_2.dll"

Ai pelo meio estão os outros modulos que não mexi em nada, só adicionei isto no final.

------------------------------------------------------------------------------------

#

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

#

DocumentRoot "C:/Programas/Apache Software Foundation/Apache2.2/test"

.

.

.

.

.

.

.

#

# This should be changed to whatever you set DocumentRoot to.

#

<Directory "C:/Programas/Apache Software Foundation/Apache2.2/test">

A negrito estão todas as alterações que fiz.

No PHP fiz o download da ultima versão, o ficheiro ZIP, extrai-o para C:\php

Renomeei o ficheiro php.ini-dist para php.ini e fiz uma cópia dele e coloquei na pasta do windows.

Coloquei também o ficheiro php5ts.dll na pasta system32.

No final disto tudo abri o notepad e coloquei este código:

<HTML>
<HEAD>
<TITLE>PHP Testing</TITLE>
</HEAD>
<BODY>
<?php
echo “If this works, we <i>really</i> did it!”;
?>
</BODY>
</HTML>

Gravei o ficheiro com o nome phptest.php dentro da pasta test que tinha criado na directoria do apache. Fiz http://localhost/phptest.php e dá o erro 404 not found

E penso que não me esqueci de nada. Espero que percebas o que expliquei.

Share this post


Link to post
Share on other sites
The Loser

Hmm isso é realmente estranho..

Dizes então que criaste um ficheiro index.html aí, e ao escreveres http://localhost/ ele carrega-te esse ficheiro que criaste, no entanto se fizeres http://localhost/phptest.php ele dá-te um 404?

Se for isso, é deveras estranho e não faz muito sentido, porque mesmo que o PHP não estivesse funcional ele ia-te solicitar um download..

Olhando para os passos que fizeste não vejo razões para não funcionar.. e sendo que o servidor arranca e carrega 1 dos fichieros.. Weird. :P


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites
Nuno_Martins

Exacto, tenho lá um index.html e abre.

Diz-me só uma coisa. Quando se cria um ficheiro de texto .html e se grava ele depois aparece com o ícone do browser, no meu caso o Firefox. No PHP não deveria aparecer o mesmo? Eu quando gravo o ficheiro phptest.php ele aparece-me como um simples ficheiro de texto e até no nome aparece a extensão (.php) e no outro não aparece o .html  :P

Share this post


Link to post
Share on other sites
scorch

Vai às opções de pastas e -> Ver:

Se a checkbox "Ocultar extensões para tipos de ficheiros conhecidos." estiver seleccionada, clica nela para esta não ficar seleccionada.

Depois vê a extensão do ficheiro php e diz-nos qual é.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Share this post


Link to post
Share on other sites
cgoncalves

Exacto, tenho lá um index.html e abre.

Diz-me só uma coisa. Quando se cria um ficheiro de texto .html e se grava ele depois aparece com o ícone do browser, no meu caso o Firefox. No PHP não deveria aparecer o mesmo? Eu quando gravo o ficheiro phptest.php ele aparece-me como um simples ficheiro de texto e até no nome aparece a extensão (.php) e no outro não aparece o .html  :P

De certeza que o teu ficheiro não está como phptest.php.txt (ou seja, é um ficheiro do tipo TXT com o nome phptest.php) em vez de phptest.php (ficheiro do tipo PHP)??


"Great coders aren't born. They're compiled and released"

"Expert coders do not need a keyboard. They just throw magnets at the RAM

Share this post


Link to post
Share on other sites
Nuno_Martins

Parece que já está resolvido  :D

Tirei o visto nas opções das pastas e realmente o ficheiro estava como phptest.php.txt  :P

Bem agora falta só configurar o MySQL e começar a tentar fazer alguma coisa.

Obrigado a todos pela ajuda  ;)

Share this post


Link to post
Share on other sites
djthyrax

Não sei se ainda é preciso, mas no tempo em que eu ainda configurava o PHP no Apache era preciso especeficar também a PHPIniDir, algo assim.


Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Share this post


Link to post
Share on other sites
Nuno_Martins

Pelo menos por agora está a funcionar.

Agora tou é com problemas com o MySQL não me deixa iniciar o serviço  :wallbash:

Share this post


Link to post
Share on other sites
n3lThon

Verifica se a porta está a ser utilizada por outro programa.


dreams.each do |dream|

   dream.make_it_happen

end

Share this post


Link to post
Share on other sites
The Loser

Não sei se ainda é preciso, mas no tempo em que eu ainda configurava o PHP no Apache era preciso especeficar também a PHPIniDir, algo assim.

Yup, mas o PHP funciona na mesma, though com grandes limitações (I think).

Nuno_Martins, como o djthyrax disse, adiciona a directiva:

PHPIniDir "C:/php"

No httpd.conf

Pelo menos por agora está a funcionar.

Agora tou é com problemas com o MySQL não me deixa iniciar o serviço  :wallbash:

Dá-te algum erro especifico?


I intend to live forever. So far so good.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.