PDA

View Full Version : Should I use PHP extension instead of html?



ptrcao
Jan 2nd, 2011, 02:24 PM
You could just rename your pages to yourpage.php instead of yourpage.html, but you already have incoming links or search engine ranking so you don't want to change the file name. What can you do?

First let me preface this by saying that if you are creating a new file anyway, you may as well use .php.

from http://php.about.com/od/advancedphp/p/html_php.htm

Is he/she saying a file with a PHP extension works exactly like a file with a html extension, except it can can ALSO be used as a PHP script file? So in this sense I may as well rename all my html file extensions to PHP if I plan to run PHP scripts on them? Even if there is an offchance I might run PHP script on my html files, there really is nothing to lose by naming them as .php, it just keeps your options open?

abduraooft
Jan 2nd, 2011, 04:43 PM
By default, the apache server needs a file with .php extension to parse the PHP code inside it. Though, if you wish, you may configure your server, by adding a single line to the configuration file, to use files with any extension with PHP code inside it.


it just keeps your options open?
Yes!

ptrcao
Jan 2nd, 2011, 06:45 PM
By default, the apache server needs a file with .php extension to parse the PHP code inside it. Though, if you wish, you may configure your server, by adding a single line to the configuration file, to use files with any extension with PHP code inside it.


Yes!


Cool, I see.

Does calling a PHP script require configuration of the server to allow the calling by a html file?

Apostropartheid
Jan 2nd, 2011, 08:41 PM
Don't bother. If you decide to use PHP in the future, you can set your server to parse HTML documents as PHP documents.

ptrcao
Jan 3rd, 2011, 02:22 PM
Don't bother. If you decide to use PHP in the future, you can set your server to parse HTML documents as PHP documents.

Do any of you guys have Apache and PHP set up on your home computer for script-testing purposes?

http://www.thesitewizard.com/php/install-php-5-apache-windows.shtml

http://httpd.apache.org/docs/1.3/howto/ssi.html

Where do I find the XBitHack option? It's not already there in the httpd config file. Can I just stick it in anywhere?

Edit: Also, when does the chance arise to use


chmod +x pagename.html
?

PS: I'm using Apache 2 on XP. I do have access to Ubuntu if you think it's much easier to set up/use Apache on Linux?

abduraooft
Jan 3rd, 2011, 03:04 PM
PS: I'm using Apache 2 on XP. I do have access to Ubuntu if you think it's much easier to set up/use Apache on Linux? I use xampp (http://www.apachefriends.org/en/xampp.html) to setup an apache+mysql server.

teedoff
Jan 3rd, 2011, 04:54 PM
I use wamp but if you're gonna use Apache server on a windows environment that has IIS running as well, you will either need to disable IIS or configure Apache to run on a different port, since both are by default configured to run on port 80.

ptrcao
Jan 4th, 2011, 02:54 AM
I use wamp but if you're gonna use Apache server on a windows environment that has IIS running as well, you will either need to disable IIS or configure Apache to run on a different port, since both are by default configured to run on port 80.

Apparently Skype was also interfering in this way:

http://senese.wordpress.com/2007/06/06/installing-apache-on-windows-vista/

For some weird reason, I had to close Skype to be able to run Apache.

What does Port 80 refer to?

ptrcao
Jan 4th, 2011, 03:00 AM
I use xampp (http://www.apachefriends.org/en/xampp.html) to setup an apache+mysql server.

Can somebody please provide clear-cut instructions on how to enable parsing of html, using XBitHack preferrably

I've read tens of documents online but they're all so insensitive and written from the point of view of people who know what they're doing.

They don't explcitly tell you were to insert XBitHack and in another variant of the solution they don't even tell you were to put, find or create .htaccess.

They invoke things out of nowhere. It's bad documentation practice. Grrr! Will somebody please fill in the gaps and tell me how to enable parsing of html the XBitHack way. I'm using Xaamp now.

Excavator
Jan 4th, 2011, 03:03 AM
All I do is add one line to my .htaccess file - AddHandler application/x-httpd-php5 .php .html .htm

With that line .php/.html.htm all know to include php files.

ptrcao
Jan 4th, 2011, 03:06 AM
All I do is add one line to my .htaccess file - AddHandler application/x-httpd-php5 .php .html .htm

With that line .php/.html.htm all know to include php files.

Where is the .htaccess file located? Do I have to create it? If so where should it go? Thanks.

Excavator
Jan 4th, 2011, 03:10 AM
Where is the .htaccess file located? Do I have to create it? If so where should it go? Thanks.

You probably? already have one. It would be in the root directory of your site.
Look here for some more info (http://www.javascriptkit.com/howto/htaccess.shtml).

ptrcao
Jan 4th, 2011, 03:17 AM
You probably? already have one. It would be in the root directory of your site.
Look here for some more info (http://www.javascriptkit.com/howto/htaccess.shtml).

I have never seen a .htaccess file before, anywhere...

Shall I just assume it is an originally empty file created by the user?
I will then just input your suggested line, in this empty file?

ptrcao
Jan 4th, 2011, 03:33 AM
I tried that and no luck...

ptrcao
Jan 4th, 2011, 03:37 AM
Inside
C:\xampp\apache\conf

Is httpd.conf

Which by default looks like this

#
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.2> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.2/mod/directives.html>
# for a discussion of each configuration directive.
#
# Do NOT simply read the instructions in here without understanding
# what they do. They're here only as hints or reminders. If you are unsure
# consult the online docs. You have been warned.
#
# Configuration and logfile names: If the filenames you specify for many
# of the server's control files begin with "/" (or "drive:/" for Win32), the
# server will use that explicit path. If the filenames do *not* begin
# with "/", the value of ServerRoot is prepended -- so "logs/foo.log"
# with ServerRoot set to "C:/xampp/apache" will be interpreted by the
# server as "C:/xampp/apache/logs/foo.log".
#
# NOTE: Where filenames are specified, you must use forward slashes
# instead of backslashes (e.g., "c:/apache" instead of "c:\apache").
# If a drive letter is omitted, the drive on which httpd.exe is located
# will be used by default. It is recommended that you always supply
# an explicit drive letter in absolute paths to avoid confusion.

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to point the LockFile directive
# at a local disk. If you wish to share the same ServerRoot for multiple
# httpd daemons, you will need to change at least LockFile and PidFile.
#
ServerRoot "C:/xampp/apache"

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses.
#
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80

#
# 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 auth_digest_module modules/mod_auth_digest.so
#LoadModule authn_alias_module modules/mod_authn_alias.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
##LoadModule autoindex_module modules/mod_autoindex.so # replaced with autoindex_color_module
#LoadModule bucketeer_module modules/mod_bucketeer.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule case_filter_module modules/mod_case_filter.so
#LoadModule case_filter_in_module modules/mod_case_filter_in.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule disk_cache_module modules/mod_disk_cache.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule echo_module modules/mod_echo.so
LoadModule env_module modules/mod_env.so
#LoadModule example_module modules/mod_example.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
LoadModule headers_module modules/mod_headers.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so

#
# 3rd party modules
#
LoadModule autoindex_color_module modules/mod_autoindex_color.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User daemon
Group daemon

</IfModule>
</IfModule>

# 'Main' server configuration
#
# The directives in this section set up the values used by the 'main'
# server, which responds to any requests that aren't handled by a
# <VirtualHost> definition. These values also provide defaults for
# any <VirtualHost> containers you may define later in the file.
#
# All of these directives may appear inside <VirtualHost> containers,
# in which case these default settings will be overridden for the
# virtual host being defined.
#

#
# ServerAdmin: Your address, where problems with the server should be
# e-mailed. This address appears on some server-generated pages, such
# as error documents. e.g. [email protected]
#
ServerAdmin [email protected]

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost:80

#
# 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:/xampp/htdocs"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

#
# Note that from this point forward you must specifically allow
# particular features to be enabled - so if something's not working as
# you might expect, make sure that you have specifically enabled it
# below.
#

#
# This should be changed to whatever you set DocumentRoot to.
#
<Directory "C:/xampp/htdocs">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks Includes ExecCGI

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all

</Directory>

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here. If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error.log"

#ScriptLog "logs/cgi.log"

#
# LogLevel: Control the number of messages logged to the error_log.
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
</IfModule>

#
# The location and format of the access logfile (Common Logfile Format).
# If you do not define any access logfiles within a <VirtualHost>
# container, they will be logged here. Contrariwise, if you *do*
# define per-<VirtualHost> access logfiles, transactions will be
# logged therein and *not* in this file.
#
#CustomLog "logs/access.log" common

#
# If you prefer a logfile with access, agent, and referer information
# (Combined Logfile Format) you can use the following directive.
#
CustomLog "logs/access.log" combined
</IfModule>

<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to
# exist in your server's namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://localhost/bar

#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a <Directory> section to allow access to
# the filesystem path.

#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ "C:/xampp/cgi-bin/"

</IfModule>

<IfModule cgid_module>
#
# ScriptSock: On threaded servers, designate the path to the UNIX
# socket used to communicate with the CGI daemon of mod_cgid.
#
#Scriptsock "logs/cgi.sock"
</IfModule>

#
# "C:/xampp/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "C:/xampp/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

#
# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value. If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#
DefaultType text/plain

<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig "conf/mime.types"

#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

#
# AddHandler allows you to map certain file extensions to "handlers":
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add "ExecCGI" to the "Options" directive.)
#
AddHandler cgi-script .cgi .pl .asp

# For type maps (negotiated resources):
#AddHandler type-map var

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add "Includes" to the "Options" directive.)
#
AddType text/html .html
AddOutputFilter INCLUDES .html
</IfModule>

<IfModule mime_magic_module>
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
MIMEMagicFile "conf/magic"
</IfModule>

#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://localhost/subscription_info.html
#

#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall is used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
#EnableMMAP off
#EnableSendfile off

# Supplemental configuration
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as
# necessary.

# XAMPP specific settings
Include "conf/extra/httpd-xampp.conf"

# Perl settings
Include "conf/extra/perl.conf"

# Server-pool management (MPM specific)
Include "conf/extra/httpd-mpm.conf"

# Multi-language error messages
Include "conf/extra/httpd-multilang-errordoc.conf"

# Fancy directory listings
Include "conf/extra/httpd-autoindex.conf"

# Language settings
Include "conf/extra/httpd-languages.conf"

# User home directories
Include "conf/extra/httpd-userdir.conf"

# Real-time info on requests and configuration
Include "conf/extra/httpd-info.conf"

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"

# Distributed authoring and versioning (WebDAV)
Include "conf/extra/httpd-dav.conf"

# Implements a proxy/gateway for Apache.
Include "conf/extra/httpd-proxy.conf"

# Various default settings
Include "conf/extra/httpd-default.conf"

# Secure (SSL/TLS) connections
Include "conf/extra/httpd-ssl.conf"
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
SSLSessionCache "shmcb:logs/ssl.scache(512000)"
SSLSessionCacheTimeout 300
</IfModule>


My html test files (containing php includes) are in the default directory

C:\xampp\htdocs

What must be done to enable parsing for html?

abduraooft
Jan 4th, 2011, 08:38 AM
My html test files (containing php includes) are in the default directory Make a subdirectory inside htdocs and then create a file named .htacess inside it. The rules written inside this htacess will be applicable to the files and folders inside that particular folder.

ptrcao
Jan 4th, 2011, 08:44 AM
Make a subdirectory inside htdocs and then create a file named .htacess inside it. The rules written inside this htacess will be applicable to the files and folders inside that particular folder.

Obviously I didn't do it correctly, as I tried that earlier. I think the problem is what to put inside .htaccess exactly and then further to that what changes are required in the main httpd config file to make this solution work... Any more explicit instructions about the editing changes would be appreciated. :)

Apostropartheid
Jan 4th, 2011, 05:27 PM
Obviously I didn't do it correctly, as I tried that earlier. I think the problem is what to put inside .htaccess exactly and then further to that what changes are required in the main httpd config file to make this solution work... Any more explicit instructions about the editing changes would be appreciated. :)

Put what Excavator said in the .htaccess. I'm unsure how this could be confusing. There should be no other content. XAMPP doesn't, by default, create one, I think; you will have to first enable showing all file extensions in Windows Explorer. Then save a file containing what Excavator said in a Notepad file and save it as "a.txt". Then rename this to ".htaccess".

There are no changes required in httpd.conf either.

ptrcao
Jan 4th, 2011, 06:48 PM
Put what Excavator said in the .htaccess. I'm unsure how this could be confusing. There should be no other content. XAMPP doesn't, by default, create one, I think; you will have to first enable showing all file extensions in Windows Explorer. Then save a file containing what Excavator said in a Notepad file and save it as "a.txt". Then rename this to ".htaccess".

There are no changes required in httpd.conf either.

Hmm...I think I've followed instructions correctly but I could be wrong so, let's take this thru one step at a time.

My goal is to run a php include in a html file, so I have designed a test to test this.

Xaamp is installed.

I created a file ".htaccess" and put it in the same folder as the other test files. In it contains the text

AddHandler application/x-httpd-php5 .php .html .htm

A positive control test file called "test.php":

<?php
include("header.php")
?>

A negative control test file called "test.html":

<?php
include("header.php")
?>

A php script which is called upon: "header.php":

<?php
if(1+1==2) echo "I am now parsing a html file. Regards, Apache 2.";
?>

I opened Xaamp Control Panel and started Apache.

If I load the page at http://localhost/test.php (http://localhost/test.php)
Result: "I am now parsing a html file. Regards, Apache 2."

If I load the page at http://localhost/test.html (http://localhost/test.php)
Result: blank page

So Apache will parse php files, but not html files. Edit: I meant "So Apache will parse php in php files, but not php in html files".

What are your thoughts, friends?

teedoff
Jan 4th, 2011, 06:55 PM
So Apache will parse php files, but not html files.



Well I wouldn't think thats true. Apache is a web server just like Microsoft's IIS, and probably the most popular depending on where you find the statistics and what year it is..lol

I run whole static html sights in my wamp server, which runs Apache web server and I also run php sites there as well.

I think the issue is you're trying to run a page with .html extension that has php script on it. I cant comment on whether this is possible or not, since I'm not sure, but I thought, by reading back through, that several ppl have suggested how to do this.

ptrcao
Jan 4th, 2011, 07:01 PM
Well I wouldn't think thats true. Apache is a web server just like Microsoft's IIS, and probably the most popular depending on where you find the statistics and what year it is..lol

I run whole static html sights in my wamp server, which runs Apache web server and I also run php sites there as well.

I think the issue is you're trying to run a page with .html extension that has php script on it. I cant comment on whether this is possible or not, since I'm not sure, but I thought, by reading back through, that several ppl have suggested how to do this.

Yeah, I'm led to believe it is definitely possible to configure Apache to parse html files with php code in it. By unamimous consensus, no less. The problem seems to be configuring Apache correctly to allow php parsing of html files... I'll see what the others have to say...

teedoff
Jan 4th, 2011, 07:08 PM
Yeah, I'm led to believe it is definitely possible to configure Apache to parse html files with php code in it. By unamimous consensus, no less. The problem seems to be configuring Apache correctly to allow php parsing of html files... I'll see what the others have to say...

hmm Well again, when I downloaded wamp, I didn't need to configure anything to run html files. The only thing I did, as I mentioned in a previous reply to this thread, was configure Apache and IIS to run on the same machine. If both web servers are running at the same time, your pages will through an error. IIS runs I think by default on vista and 7 and maybe xp, I cant remember. You can disable that windows service, or as I did, change the port number in your httpd.config file to port 80. IIS runs on 8080 I think.

ptrcao
Jan 4th, 2011, 07:14 PM
hmm Well again, when I downloaded wamp, I didn't need to configure anything to run html files. The only thing I did, as I mentioned in a previous reply to this thread, was configure Apache and IIS to run on the same machine. If both web servers are running at the same time, your pages will through an error. IIS runs I think by default on vista and 7 and maybe xp, I cant remember. You can disable that windows service, or as I did, change the port number in your httpd.config file to port 80. IIS runs on 8080 I think.

Sorry, I think i see what you're saying now, I've changed my wording above to make my conclusion less ambiguous. I didn't mean to say that Apache wouldn't run html files - it can run html files fine. In my conclusion to the test I ran, I meant:
"So (the way it was configured) Apache will parse php in php files, but not php in html files".

teedoff
Jan 4th, 2011, 07:28 PM
Yes I thought that was what you were trying to do. When you said something about configuring apache to run html files, I guess I took that literally and thought you might be confuseing issues..lol

teedoff
Jan 4th, 2011, 07:30 PM
Make a subdirectory inside htdocs and then create a file named .htacess inside it. The rules written inside this htacess will be applicable to the files and folders inside that particular folder.

Now again this seems to be what abduraooft is saying. Run html files on apache with php script included. Havent tried it myself, but seems its possible.

Excavator
Jan 4th, 2011, 07:56 PM
ptrcao,
Running .html files that have .php includes is exactly what I'm doing with that single line in an .htaccess file.

At the very root of my hosting directory is this .htaccess file:

RewriteEngine on
# the addhandler line below is needed for
# .html pages which contain PHP.
# AddHandler application/x-httpd-php5 .php .html .htm
AddHandler application/x-httpd-php5 .php .html .htm

<Files 403.shtml>
order allow,deny
allow from all
</Files>

# note: guestbook spamming bot
deny from 84.246.64.87

Obviously, the # lines are comments.

I did not know what abduraooft told you a few posts back, that an .htaccess file can go in other directories and affect any below it. I just have mine in the root to affect all files on my serverspace.

ptrcao
Jan 5th, 2011, 03:01 AM
ptrcao,
Running .html files that have .php includes is exactly what I'm doing with that single line in an .htaccess file.

At the very root of my hosting directory is this .htaccess file:

RewriteEngine on
# the addhandler line below is needed for
# .html pages which contain PHP.
# AddHandler application/x-httpd-php5 .php .html .htm
AddHandler application/x-httpd-php5 .php .html .htm

<Files 403.shtml>
order allow,deny
allow from all
</Files>

# note: guestbook spamming bot
deny from 84.246.64.87

Obviously, the # lines are comments.

I did not know what abduraooft told you a few posts back, that an .htaccess file can go in other directories and affect any below it. I just have mine in the root to affect all files on my serverspace.

I'm totally defeated. At first I thought you guys were missing something along the lines of:


(Note: you must have "AllowOverride Options" in effect to permit the use of the "Options" directive in .htaccess files.)
According to:
http://httpd.apache.org/docs/1.3/howto/htaccess.html#how

I went through and set the value to "All" for each occurrence of the AllowOverride in the main httpd config file. No luck.

I even duplicated Excavator's .htaccess file verbatim, and put it in my htdocs directory where all my php and html test files were contained.

Somewhere somebody must be missing something, right...? I mean myself included of course, but I think I've been reasonably thorough if you've been following this thread. I'd like to see abduraooft's httpd and .htaccess file if he/she wouldn't mind, since he/she is using Xaamp as well.

(The httpd file for Xammp is somewhat a stripped-down version of the one that comes directly from Apache. It had very conservative defaults and doesn't allow most things. In my amateur opinion, I think the key to the solution lies in permission settings...)

Edit: Options may be irrelavant the way you guys are doing it. Still, with or without options enabled, no luck. :(

ptrcao
Jan 5th, 2011, 05:02 AM
ptrcao,
Running .html files that have .php includes is exactly what I'm doing with that single line in an .htaccess file.

At the very root of my hosting directory is this .htaccess file:

RewriteEngine on
# the addhandler line below is needed for
# .html pages which contain PHP.
# AddHandler application/x-httpd-php5 .php .html .htm
AddHandler application/x-httpd-php5 .php .html .htm

<Files 403.shtml>
order allow,deny
allow from all
</Files>

# note: guestbook spamming bot
deny from 84.246.64.87

Obviously, the # lines are comments.

I did not know what abduraooft told you a few posts back, that an .htaccess file can go in other directories and affect any below it. I just have mine in the root to affect all files on my serverspace.

Hey Excav, you know what the problem was? Apache didn't like your


AddHandler application/x-httpd-php5 .php .html .htm

Is it because I am somehow not using version 5 of PHP? I wouldn't know if PHP5 was enabled/installed, my installation was set on Xaamp defaults all around. What's the deal with the "5"?

Excavator
Jan 5th, 2011, 05:06 AM
Hey Excav, you know what the problem was? Apache didn't like your


AddHandler application/x-httpd-php5 .php .html .htm

Is it because I am somehow not using version 5 of PHP? I wouldn't know if PHP5 was enabled/installed, my installation was set on Xaamp defaults all around. What's the deal with the "5"?

I did not think of that. A lot of hosts have not upgraded to v5 yet maybe. What version is your server running? It should tell you somewhere on the cotrol panel they give you.

ptrcao
Jan 5th, 2011, 05:12 AM
I did not think of that. A lot of hosts have not upgraded to v5 yet maybe. What version is your server running? It should tell you somewhere on the cotrol panel they give you.

Oh, this is just my home desktop acting as a webserver for script-testing purposes only. Bizarre, because it says in my Xaamp Controller:


###### Apache Friends XAMPP (Basis Package) version 1.7.3 ######

+ Apache 2.2.14 (IPV6 enabled)
+ MySQL 5.1.41 (Community Server) with PBXT engine 1.0.09-rc
+ PHP 5.3.1 (PEAR, Mail_Mime, MDB2, Zend)
+ Perl 5.10.1 (Bundle::Apache2, Apache2::Request, Bundle::Apache::ASP, Bundle::Email, Bundle::DBD::mysql, DBD::SQlite, Randy Kobes PPM)
+ XAMPP Control Version 2.5.8 (ApacheFriends Edition)
...

Xaamp uses PHP5...how could that be?

abduraooft
Jan 5th, 2011, 09:21 AM
Let me ask another question: What's you motive behind getting everything inside .html files? Why would you just use .php pages and forget all these things for the time being?

ptrcao
Jan 5th, 2011, 09:37 AM
Let me ask another question: What's you motive behind getting everything inside .html files? Why would you just use .php pages and forget all these things for the time being?

I was so nearly going to do that. But then I did some reading and the consensus seems to be that once you've established your website on Google, you shouldn't mess around with your file extensions and go renaming things. It's also a bit of an inconvenience for your visitors, who've say, already bookmarked pages. Thirdly, I would have to update numerous pre-existing links scattered throughout all of my pages. :( I'm afraid such changes would disrupt my site, generate problems to existing pages, and set me back on my Google standing... :(

I've managed to get Apache to parse the php in html files now. Your help is appreciated abduraooft - I can thankfully now turn my attention to other problems. :)

abduraooft
Jan 5th, 2011, 09:51 AM
Isn't your site is still in the development stage? Or are you just enhancing the pages now?

ptrcao
Jan 5th, 2011, 10:03 AM
Isn't your site is still in the development stage? Or are you just enhancing the pages now?

I feel like my site will always be in the development stage. I mean if I were some people I'd have called it a day already; it's got all the basic features, home page, menu; it looks pretty homely - it has nothing to makes it stand out and I'm not content to let it be. But to answer your question, my site some way from being complete in the sense that as much work as I've already done, it's of textbook proportions. It's a research-intensive website, and everything I put up has to be cross-verified for correctness. Also, the process of rendering math symbols adds days to what already takes a long time to do. I would like it to be competitive with the world's best sites in its class one day which get 9 million views per month. Right now I have a modest 2000 views.

If your point is that I could still get away with renaming html to php, you're probability right. But I'm a stubborn fool sometimes, and I don't like to give up on things that ought to be possible! :o Besides Apache is parsing now and I'm php-ing. :)

abduraooft
Jan 5th, 2011, 10:33 AM
Besides Apache is parsing now and I'm php-ing Apache is good, but it's not a good thing to overload the server without a "proper" reason :). The server will need to look and obey the .htaccess file each time when some one requests (apart from the unavoidable rules written in the main conf file)

ptrcao
Jan 5th, 2011, 10:37 AM
Apache is good, but it's not a good thing to overload the server without a "proper" reason :)

Do you mean it would be less work for Apache, perhaps faster from a retrieval and display point of view, if my pages were all changed to php extensions?

abduraooft
Jan 5th, 2011, 10:41 AM
Do you mean it would be less work for Apache, perhaps faster from a retrieval and display point of view, if my pages were all changed to php extensions?
There'd be a line in the main config file to tell the server that files with which extension is to be parsed. Having a second line to override the default rule will be an additional task.

Someone may come and correct, if I'm wrong.

Apostropartheid
Jan 5th, 2011, 01:59 PM
There'd be a line in the main config file to tell the server that files with which extension is to be parsed. Having a second line to override the default rule will be an additional task.

Someone may come and correct, if I'm wrong.

Some administration software, like cPanel, allows you to set this graphically, as well.

Listen, XAMPP was never really meant to be a production server anyway. Have you tried doing this live, on a web host?

ptrcao
Jan 5th, 2011, 03:28 PM
Some administration software, like cPanel, allows you to set this graphically, as well.

Listen, XAMPP was never really meant to be a production server anyway. Have you tried doing this live, on a web host?

Not yet, soon. Do you expect that in the live environment, that extra step needed to tell the server to parse files with html extension will lead to a noticeable slowing down of retrieval?