/
Apache

Apache

Installation

Apache

yum install httpd

Mod SSL, http2, headers

yum install mod_ssl mod_headers mod_http2

MINIMAL (REQUIRED) APACHE MODULES

alias_module (shared)       - ''Alias'' and ''ScriptAlias'' directives
authz_host_module (shared)  - ''Allow'' and ''Deny'' directives
autoindex_module (shared)   - Generates directory indexes, automatically
core_module (static)        - The core Apache module
dir_module (shared)         - ''DirectoryIndex'' directive
env_module (shared)         - Modifies the environment
http_module (static)        - Handles HTTP protocol
log_config_module (shared)  - Enables logging configuration
logio_module (shared)       - Enables log writing/reading
mime_module (shared)        - Enables MIME (file type) alteration and interpretation
mpm_prefork_module (static) - Implements a non-threaded, pre-forking (multiprocess) web server
negotiation_module (shared) - Provides for content negotiation (parsing of Headers)
php5_module (shared)        - Enables PHP5 interpreter
rewrite_module (shared)     - Rule-based (regex) url rewriting engine
setenvif_module (shared)    - Enables ''BrowserMatch'' and ''SetEnvIf'' directives
so_module (static)          - Enables modules
status_module (shared)      - Provides information on server activity and performance
version_module (shared)     - Allows Version dependent configuration
vhost_alias_module (shared) - Enable virtual hosts.

Configuration

Apache configuration for PCR-360 is typically done with a Virtual Host and is stored in /etc/httpd/conf.d/pcr360.conf

Create the new apache configuration file.

cd /etc/httpd/conf.d
vi pcr360.conf

This example shows standard configuration for http port 80

ServerName pcr360.customeraddress.com
Protocols h2 h2c http/1.1

## PROTECT FILES ##
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

## HEADERS FOR MS EDGE ##
<IfModule headers_module>
     Header Set X-UA-Compatible: IE=Edge
</IfModule>

## LIMIT UPLOAD FILE SIZE TO PROTECT AGAINST DOS ATTACK ##
LimitRequestBody 10240000
#bytes, 0-2147483647(2GB)

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# this is production
<VirtualHost *:80>
    ServerName pcr360.pcr.com
    DocumentRoot /var/www/pcr360/prod/public

RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
    RewriteRule .* - [F]

SetEnv APPLICATION_ENV "prod"
    SetEnv APPLICATION_INI "/var/www/pcr360/configs/pcr360.ini"
    SetEnv APPLICATION_ENVDEBUG 0
    SetEnv APPLICATION_ENVPCR 0

<Directory /var/www/pcr360/prod/public>
        Options -Indexes
        DirectoryIndex index.php
        AllowOverride None
        Include /var/www/pcr360/prod/public/.htaccess
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

This example shows standard configuration for https port 443

ServerName pcr360.customeraddress.com
Protocols h2 h2c http/1.1
Header always set Strict-Transport-Security max-age=31536000

## PROTECT FILES ##
<FilesMatch "\.(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

## HEADERS FOR MS EDGE ##
<IfModule headers_module>
     Header Set X-UA-Compatible: IE=Edge
</IfModule>

## LIMIT UPLOAD FILE SIZE TO PROTECT AGAINST DOS ATTACK ##
LimitRequestBody 10240000
#bytes, 0-2147483647(2GB)

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

<VirtualHost *:80>
    ServerName pcr360.pcr.com
    DocumentRoot /var/www/pcr360/prod/public

RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

<VirtualHost *:443>
    ServerName pcr360.pcr.com
    DocumentRoot /var/www/pcr360/prod/public

ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    LogLevel warn

SSLEngine on
    # TLS 1.2 is currently considered the only secure transport type at this time
    SSLProtocol -all +TLSv1.2
    SSLCipherSuite HIGH:MEDIUM:!aNULL:+SHA1:+MD5:+HIGH:+MEDIUM
    SSLCertificateFile /etc/pki/tls/certs/pcr360.pcr.com.cert
    SSLCertificateKeyFile /etc/pki/tls/private/pcr360.pcr.com.key

SetEnv APPLICATION_ENV "prod"
    SetEnv APPLICATION_INI "/var/www/pcr360/configs/pcr360.ini"
    SetEnv APPLICATION_ENVDEBUG 0
    SetEnv APPLICATION_ENVPCR 0

<Directory /var/www/pcr360/prod/public>
        Options -Indexes
        DirectoryIndex index.php
        AllowOverride None
        Include /var/www/pcr360/prod/public/.htaccess
        Order allow,deny
        Allow from all
    </Directory>

<Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
    </Files>
</VirtualHost>

Set Apache to Start on Boot

1. Add it to chkconfig

sudo /sbin/chkconfig --add httpd

2. Make sure it is in the chkconfig.

sudo /sbin/chkconfig --list httpd

3. Set it to autostart

sudo /sbin/chkconfig httpd on




Related content

Apache
More like this
(v1) Apache
More like this
(2024.2 2) Apache
(2024.2 2) Apache
More like this
(2024.1) Apache
(2024.1) Apache
More like this
(v1) RHEL 7-9 Install Guide
(v1) RHEL 7-9 Install Guide
More like this
(v1) PCR-360
More like this

Help Desk Portal - Email: help@pcr.com - Phone: 616.259.9242