Solved

# PHP in Apache server

Posted on 2016-08-12
95 Views
Hi,
I want to configure PHP with Apache server, on Windows 2008 server. Is there a demonstration with details to this?
0
Question by:HuaMinChen

LVL 35

Expert Comment

ID: 41753562
It's all explained nicely here: http://php.net/manual/en/install.windows.legacy.index.php#install.windows.legacy.apache2
Don't skip the note on that page (which has another link there, not here):
Note:
You should read the manual installation steps first!
0

LVL 54

Assisted Solution

Julian Hansen earned 500 total points
ID: 41753575
This describes installation of PHP 5.6.24 on Apache 2.4 (Windows Thread safe version)

This is the process I followed

1. Install PHP (thread safe) version - this will extract to a folder

Add the following reference to the php5apache2_4.dll
LoadModule php5_module "C:\Program Files (x86)\PHP 5.6.24\php5apache2_4.dll"

This goes after the last LoadModule line in the conf file. Modify path to match your environment

3. Modify the default file values - add index.php (on or around line 280 - might vary depending on your installation)

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>


4. Add php handler and set path to PHP ini file
<IfModule php5_module>
PHPIniDir "C:\Program Files (x86)\PHP 5.6.24"
</IfModule>

Change the path to your PHP INI file
I added this at the bottom after the following
<IfModule mime_module>
...
</ifModule>


Save and restart the httpd service.

0

LVL 109

Expert Comment

ID: 41753614
Depending on your exact needs, you may find that a virtual machine can save you a lot of time.  I've had good experiences with the prepackaged Bitnami stacks.
https://bitnami.com/stacks
0

LVL 10

Author Comment

ID: 41755923
Many thanks all.
Julian,

What should I put, right after

<IfModule mime_module>
...
</ifModule>


And I've created relevant Inbound rule on port 8080, but I've got

C:\setup\Apache httpd-2.4.23-x86-vc14\Apache24\bin>httpd
is normally permitted.  : AH00072: make_sock: could not bind to address [::]:808
0
is normally permitted.  : AH00072: make_sock: could not bind to address 0.0.0.0:
8080
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

0

LVL 54

Assisted Solution

Julian Hansen earned 500 total points
ID: 41755966
What should I put, right after
This - I was trying to say I put the following code directly after the <IfModule mime_module>...</ifModule>
<IfModule php5_module>
PHPIniDir "C:\Program Files (x86)\PHP 5.6.24"
</IfModule>


The error is telling you you have another service listening on 8080 - try a different port for Apache.

It sounds like the server you are setting this up on already has a web server running on it - IIS most likely. What is the reason for installing Apache as well?
0

LVL 10

Author Comment

ID: 41755980
I choose port 8081 and get
C:\setup\Apache httpd-2.4.23-x86-vc14\Apache24\bin>httpd
is normally permitted.  : AH00072: make_sock: could not bind to address [::]:443

is normally permitted.  : AH00072: make_sock: could not bind to address 0.0.0.0:
443
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

Yes, IIS is running on this server
0

LVL 54

Expert Comment

ID: 41756019
443 is the SSL port - this means that something (probably IIS) is using that port as well.

You should still be able to browse to

http://yourservername:8081

As Apache appears to be successfully listening on that port.

Again I ask why you need Apache on the same server as one running IIS?
0

LVL 10

Author Comment

ID: 41756026
To your last question, I do 're-use' the same server, for further deploying PHP pages by Apache. What to adjust, due to current 443 port conflict?
0

LVL 54

Expert Comment

ID: 41756035
Why not load PHP on IIS - why set them both up on the server when it is just going to result in conflict.

What to adjust, due to current 443 port conflict?
This is not the right question - you can either ignore the error - if you are not going to use SSL - if you are and you are also using SSL on the IIS server then you don't have a solution - hence my original question about why you want to run two HTTP servers on a single box.

Why can you not use IIS to do what you want to?
0

LVL 10

Author Comment

ID: 41756130
I now use one Win 2012 server instead, which is not running any Web server. I get no response to this

C:\setup\Apache httpd-2.4.23-x86-vc14\Apache24\bin>httpd

why?
0

LVL 54

Expert Comment

ID: 41756146
Are we starting from the begining now?

I have no idea why you are getting no response on Win2012 - you have not provided enough information to say what you have done.

But if that does not go anywhere I am certain that there are other similar resources online that can take you through the process.

Maybe follow that and post back any specific issues you come across - the more information you provide the more we will be able to assist.

Given the parameters of the question have changed somewhat - you might want to consider closing this question off (if you don't succeed with the above) and opening another to get access to more experts. This thread has become TLDR which means your new issue will not be seen by anyone new to this thread.
0

LVL 10

Author Comment

ID: 41757304
Yes, I'm re-doing the same within Win 2012.

I've un-zipped these
Apache httpd-2.4.23-x86-vc14
php-5.6.24-Win32-VC11-x86

into c:\setup and then run

cd C:\setup\Apache httpd-2.4.23-x86-vc14\Apache24\bin
httpd

and have got no response.
0

LVL 54

Expert Comment

ID: 41757411
Is there anything in the logs?

0

LVL 54

Expert Comment

ID: 41757413
When you say there is nothing - do you mean
a) The command prompt returns immediately with nothing displayed on the screen

OR

b) The command prompt does NOT return and there is nothing on the screen.

If there are no errors then Apache will start and you won't see anything displayed on the screen. See screenshot below
httpd is running - no output but the prompt has not returned - this is because httpd is successfully running in the foreground.

After running httpd - can you browse to the server from the server - on the SAME port you have configured in your httpd.conf
0

LVL 10

Author Comment

ID: 41757445
Within Windows, how to ensure relevant folder is pathed, and files can be picked up by server, when I call the relevant PHP file like

http://localhostname/PHPfile
0

LVL 54

Accepted Solution

Julian Hansen earned 500 total points
ID: 41757476
The PHP file needs to be in the ServerRoot
OR
You can setup an alias to another folder

For example - if you want to setup a project
http://localhostname/myproject/index.php
Then in your httpd.conf you create an alias entry like so
<IfModule alias_module>
...
Alias /myproject "C:/projects/myproject"
...
<Directory "C:/projects">
AllowOverride All
Require all granted
</Directory>
...
</ifModule>

0

LVL 10

Author Comment

ID: 41757619
Many thanks.
I've created the relevant alias for the folder inside which the .php file resides. But I cannot go to

http://win-q1a2sh6377h:8080/proj0/info5.php

while win-q1a2sh6377h is the server name. Here is what I've got
0

LVL 54

Expert Comment

ID: 41757653
Need to see your httpd.conf file.
0

LVL 10

Author Comment

ID: 41758078
Hi Julian,
I sent you the file already.
0

LVL 54

Assisted Solution

Julian Hansen earned 500 total points
ID: 41758119
I took your httpd.conf - changed the servername and paths and it works fine here so the configuration is correct.

What happens when you browse to

http://localhost:8080/proj0

Can you create the following file
pi.php
<?php
phpinfo();

And save this to
c:\setup\proj0\pi.php

And then attempt to go to
http://localhost:8080/proj0/pi.php

What do you see.
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you are a web developer, you would be aware of the <iframe> tag in HTML. The <iframe> stands for inline frame and is used to embed another document within the current HTML document. The embedded document could be even another website.
Get to know the ins and outs of building a web-based ERP system for your enterprise. Development timeline, technology, and costs outlined.
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…