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

Nuno_Martins

Problema com PHP e Apache

16 mensagens neste tópico

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 é.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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)??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pelo menos por agora está a funcionar.

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora