*DEPRECATED* Apache Web Server for unRAID 6.2


Recommended Posts

it is can not run yet when upgrade to 2016.10.24

 

/var/log/httpd/error_log show

"PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/extensions/gd.so' - libharfbuzz.so.0: cannot open shared object file: No such file or directory in Unknown on line 0"

Thanks. I figured it out. Harfbuzz wasn't getting installed. I updated and tested. Should work for you now.

Link to comment
  • 3 months later...

I'm trying to get this to work and are very close.  The server appears to be running.  I've edited the /boot/config/plugins/apache/httpd/httpd.conf file and modifed the following.

 

ServerRoot "/mnt/user/web"

(I've created the web folder and it is empty).

 

Set

DocumentRoot "/mnt/user/web"
<Directory "/mnt/user/web">

 

Save/Restart.  When I try to connect, I get Forbidden You don't have permission to access / on this server.

 

I must be missing a config somewhere?  Do I need to set rights for the Apache Daemon to access a share?

 

I've tried to change the Run as User to be Root, but its greyed out, even if I disable the daemon.

 

Edited by jeffreywhunter
Link to comment
1 hour ago, jeffreywhunter said:

I'm trying to get this to work and are very close.  The server appears to be running.  I've edited the /boot/config/plugins/apache/httpd/httpd.conf file and modifed the following.

 

ServerRoot "/mnt/user/web"

(I've created the web folder and it is empty).

 

Set

DocumentRoot "/mnt/user/web"
<Directory "/mnt/user/web">

 

Save/Restart.  When I try to connect, I get Forbidden You don't have permission to access / on this server.

 

I must be missing a config somewhere?  Do I need to set rights for the Apache Daemon to access a share?

 

I've tried to change the Run as User to be Root, but its greyed out, even if I disable the daemon.

 

I don't use this plugin myself, I'm an nginx letsencrypt man, but you can't run as root.  As it says on the first page....

 

Quote

Run as User:

 

The user you wish to run plugin as (nobody or other unRAID user cannot be root)

 

So it might be worth checking the directory permissions on /mnt/user/web/ 

Edited by CHBMB
Link to comment
I'm trying to get this to work and are very close.  The server appears to be running.  I've edited the /boot/config/plugins/apache/httpd/httpd.conf file and modifed the following.
 
ServerRoot "/mnt/user/web"
(I've created the web folder and it is empty).
 
Set
DocumentRoot "/mnt/user/web"

 
Save/Restart.  When I try to connect, I get Forbidden You don't have permission to access / on this server.
 
I must be missing a config somewhere?  Do I need to set rights for the Apache Daemon to access a share?
 
I've tried to change the Run as User to be Root, but its greyed out, even if I disable the daemon.
 

I thought the plugin copied the default index.html but I guess it doesn't. I'll check it out. But you just need to put something in your web directory and it will work. If it's empty, there's no webpage to serve. Here's the default index.html.
It works!

Link to comment
I've made the changes as recommended.  The Status of the server continues to remain Stopped.  Looking through the log shows a lot of things that shouldn't be.  Not up to speed enough to interpret.  Syslog attached.  Obviously, I'm doing it wrong.  Assessment/recommendations appreciated!
 
hunternas-diagnostics-20170222-1420.zip

In your httpd.conf the ServerRoot needs to be "/usr". It can't find the php modules in /mnt/user/web/lib64/httpd/modules/ because they are in /usr/lib64/httpd/modules/. The DocumentRoot needs to be "/srv/httpd/htdocs" because I symlink that directory to your docroot directory from the plugin settings (/mnt/user/web). Just make sure that index.html is in /mnt/user/web.
Link to comment
Thanks!  That worked!
 
What displays is the Index of /
Page and the files.
How do I setup the index.html to load?
If I want to build multiple websites under this, how do I do that?
Additional symlinks?

It should display the index.html automatically with the default config. I just tested with a new install. All I did was copy the index.html into /mnt/user/web. You might have changed something. Here's the default httpd.conf
## This is the main Apache HTTP server configuration file.  It contains the# configuration directives that give the server its instructions.# See  for detailed information.# In particular, see # # 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/access_log"# with ServerRoot set to "/usr/local/apache2" will be interpreted by the# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as '/logs/access_log'.## 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 specify a local disk on the# Mutex directive, if file-based mutexes are used.  If you wish to share the# same ServerRoot for multiple httpd daemons, you will need to change at# least PidFile.#ServerRoot "/usr"## Mutex: Allows you to set the mutex mechanism and mutex file directory# for individual mutexes, or change the global defaults## Uncomment and change the directory if mutexes are file-based and the default# mutex file directory is not on a local disk or is not appropriate for some# other reason.## Mutex default:/var/run## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the # directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78: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 authn_file_module lib64/httpd/modules/mod_authn_file.so#LoadModule authn_dbm_module lib64/httpd/modules/mod_authn_dbm.so#LoadModule authn_anon_module lib64/httpd/modules/mod_authn_anon.so#LoadModule authn_dbd_module lib64/httpd/modules/mod_authn_dbd.so#LoadModule authn_socache_module lib64/httpd/modules/mod_authn_socache.soLoadModule authn_core_module lib64/httpd/modules/mod_authn_core.soLoadModule authz_host_module lib64/httpd/modules/mod_authz_host.soLoadModule authz_groupfile_module lib64/httpd/modules/mod_authz_groupfile.soLoadModule authz_user_module lib64/httpd/modules/mod_authz_user.so#LoadModule authz_dbm_module lib64/httpd/modules/mod_authz_dbm.so#LoadModule authz_owner_module lib64/httpd/modules/mod_authz_owner.so#LoadModule authz_dbd_module lib64/httpd/modules/mod_authz_dbd.soLoadModule authz_core_module lib64/httpd/modules/mod_authz_core.so#LoadModule authnz_ldap_module lib64/httpd/modules/mod_authnz_ldap.soLoadModule access_compat_module lib64/httpd/modules/mod_access_compat.soLoadModule auth_basic_module lib64/httpd/modules/mod_auth_basic.so#LoadModule auth_form_module lib64/httpd/modules/mod_auth_form.so#LoadModule auth_digest_module lib64/httpd/modules/mod_auth_digest.so#LoadModule allowmethods_module lib64/httpd/modules/mod_allowmethods.so#LoadModule file_cache_module lib64/httpd/modules/mod_file_cache.so#LoadModule cache_module lib64/httpd/modules/mod_cache.so#LoadModule cache_disk_module lib64/httpd/modules/mod_cache_disk.so#LoadModule cache_socache_module lib64/httpd/modules/mod_cache_socache.soLoadModule socache_shmcb_module lib64/httpd/modules/mod_socache_shmcb.so#LoadModule socache_dbm_module lib64/httpd/modules/mod_socache_dbm.so#LoadModule socache_memcache_module lib64/httpd/modules/mod_socache_memcache.so#LoadModule watchdog_module lib64/httpd/modules/mod_watchdog.so#LoadModule macro_module lib64/httpd/modules/mod_macro.so#LoadModule dbd_module lib64/httpd/modules/mod_dbd.so#LoadModule dumpio_module lib64/httpd/modules/mod_dumpio.so#LoadModule echo_module lib64/httpd/modules/mod_echo.so#LoadModule buffer_module lib64/httpd/modules/mod_buffer.so#LoadModule data_module lib64/httpd/modules/mod_data.so#LoadModule ratelimit_module lib64/httpd/modules/mod_ratelimit.soLoadModule reqtimeout_module lib64/httpd/modules/mod_reqtimeout.so#LoadModule ext_filter_module lib64/httpd/modules/mod_ext_filter.so#LoadModule request_module lib64/httpd/modules/mod_request.so#LoadModule include_module lib64/httpd/modules/mod_include.soLoadModule filter_module lib64/httpd/modules/mod_filter.so#LoadModule reflector_module lib64/httpd/modules/mod_reflector.so#LoadModule substitute_module lib64/httpd/modules/mod_substitute.so#LoadModule sed_module lib64/httpd/modules/mod_sed.so#LoadModule charset_lite_module lib64/httpd/modules/mod_charset_lite.so#LoadModule deflate_module lib64/httpd/modules/mod_deflate.soLoadModule xml2enc_module lib64/httpd/modules/mod_xml2enc.soLoadModule proxy_html_module lib64/httpd/modules/mod_proxy_html.soLoadModule mime_module lib64/httpd/modules/mod_mime.so#LoadModule ldap_module lib64/httpd/modules/mod_ldap.soLoadModule log_config_module lib64/httpd/modules/mod_log_config.so#LoadModule log_debug_module lib64/httpd/modules/mod_log_debug.so#LoadModule log_forensic_module lib64/httpd/modules/mod_log_forensic.so#LoadModule logio_module lib64/httpd/modules/mod_logio.soLoadModule env_module lib64/httpd/modules/mod_env.so#LoadModule mime_magic_module lib64/httpd/modules/mod_mime_magic.so#LoadModule expires_module lib64/httpd/modules/mod_expires.soLoadModule headers_module lib64/httpd/modules/mod_headers.so#LoadModule usertrack_module lib64/httpd/modules/mod_usertrack.so#LoadModule unique_id_module lib64/httpd/modules/mod_unique_id.soLoadModule setenvif_module lib64/httpd/modules/mod_setenvif.soLoadModule version_module lib64/httpd/modules/mod_version.so#LoadModule remoteip_module lib64/httpd/modules/mod_remoteip.soLoadModule proxy_module lib64/httpd/modules/mod_proxy.soLoadModule proxy_connect_module lib64/httpd/modules/mod_proxy_connect.soLoadModule proxy_ftp_module lib64/httpd/modules/mod_proxy_ftp.soLoadModule proxy_http_module lib64/httpd/modules/mod_proxy_http.soLoadModule proxy_fcgi_module lib64/httpd/modules/mod_proxy_fcgi.soLoadModule proxy_scgi_module lib64/httpd/modules/mod_proxy_scgi.so#LoadModule proxy_fdpass_module lib64/httpd/modules/mod_proxy_fdpass.soLoadModule proxy_wstunnel_module lib64/httpd/modules/mod_proxy_wstunnel.soLoadModule proxy_ajp_module lib64/httpd/modules/mod_proxy_ajp.so#LoadModule proxy_balancer_module lib64/httpd/modules/mod_proxy_balancer.soLoadModule proxy_express_module lib64/httpd/modules/mod_proxy_express.so#LoadModule session_module lib64/httpd/modules/mod_session.so#LoadModule session_cookie_module lib64/httpd/modules/mod_session_cookie.so#LoadModule session_dbd_module lib64/httpd/modules/mod_session_dbd.so#LoadModule slotmem_shm_module lib64/httpd/modules/mod_slotmem_shm.so#LoadModule slotmem_plain_module lib64/httpd/modules/mod_slotmem_plain.soLoadModule ssl_module lib64/httpd/modules/mod_ssl.so#LoadModule dialup_module lib64/httpd/modules/mod_dialup.soLoadModule lbmethod_byrequests_module lib64/httpd/modules/mod_lbmethod_byrequests.soLoadModule lbmethod_bytraffic_module lib64/httpd/modules/mod_lbmethod_bytraffic.soLoadModule lbmethod_bybusyness_module lib64/httpd/modules/mod_lbmethod_bybusyness.so#LoadModule lbmethod_heartbeat_module lib64/httpd/modules/mod_lbmethod_heartbeat.soLoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.soLoadModule unixd_module lib64/httpd/modules/mod_unixd.so#LoadModule heartbeat_module lib64/httpd/modules/mod_heartbeat.so#LoadModule heartmonitor_module lib64/httpd/modules/mod_heartmonitor.so#LoadModule dav_module lib64/httpd/modules/mod_dav.soLoadModule status_module lib64/httpd/modules/mod_status.soLoadModule autoindex_module lib64/httpd/modules/mod_autoindex.so#LoadModule asis_module lib64/httpd/modules/mod_asis.so#LoadModule info_module lib64/httpd/modules/mod_info.so#LoadModule cgid_module lib64/httpd/modules/mod_cgid.so#LoadModule cgi_module lib64/httpd/modules/mod_cgi.so#LoadModule dav_fs_module lib64/httpd/modules/mod_dav_fs.so#LoadModule dav_lock_module lib64/httpd/modules/mod_dav_lock.so#LoadModule vhost_alias_module lib64/httpd/modules/mod_vhost_alias.so#LoadModule negotiation_module lib64/httpd/modules/mod_negotiation.soLoadModule dir_module lib64/httpd/modules/mod_dir.so#LoadModule actions_module lib64/httpd/modules/mod_actions.so#LoadModule speling_module lib64/httpd/modules/mod_speling.so#LoadModule userdir_module lib64/httpd/modules/mod_userdir.soLoadModule alias_module lib64/httpd/modules/mod_alias.so#LoadModule rewrite_module lib64/httpd/modules/mod_rewrite.so## 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 apache#Group apache# '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#  definition.  These values also provide defaults for# any  containers you may define later in the file.## All of these directives may appear inside  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 www.example.com:80## Deny access to the entirety of your server's filesystem. You must# explicitly permit access to web content directories in other #  blocks below.#   AllowOverride none   Require all denied## 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.### 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 "/srv/httpd/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.4/mod/core.html#options   # for more information.   #   Options Indexes FollowSymLinks   #   # AllowOverride controls what directives may be placed in .htaccess files.   # It can be "All", "None", or any combination of the keywords:   #   AllowOverride FileInfo AuthConfig Limit   #   AllowOverride None   #   # Controls who can get stuff from this server.   #   Require all granted## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#   DirectoryIndex index.html## The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. #   Require all denied## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be# logged here.  If you *do* define an error logfile for a # container, that host's errors will be logged there and not here.#ErrorLog "/var/log/httpd/error_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   #   # 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     # 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   #   # The location and format of the access logfile (Common Logfile Format).   # If you do not define any access logfiles within a    # container, they will be logged here.  Contrariwise, if you *do*   # define per- access logfiles, transactions will be   # logged therein and *not* in this file.   #   CustomLog "/var/log/httpd/access_log" common   #   # If you prefer a logfile with access, agent, and referer information   # (Combined Logfile Format) you can use the following directive.   #   #CustomLog "/var/log/httpd/access_log" combined   #   # 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://www.example.com/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  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/ "/srv/httpd/cgi-bin/"   #   # ScriptSock: On threaded servers, designate the path to the UNIX   # socket used to communicate with the CGI daemon of mod_cgid.   #   #Scriptsock cgisock## "/srv/httpd/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#   AllowOverride None   Options None   Require all granted   #   # TypesConfig points to the file containing the list of mappings from   # filename extension to MIME-type.   #   TypesConfig /etc/httpd/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   # 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 .shtml   #AddOutputFilter INCLUDES .shtml## 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 /etc/httpd/magic## 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://www.example.com/subscription_info.html### MaxRanges: Maximum number of Ranges in a request before# returning the entire resource, or one of the special# values 'default', 'none' or 'unlimited'.# Default setting is to accept 200 Ranges.#MaxRanges unlimited## EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be 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.# Defaults: EnableMMAP On, EnableSendfile Off##EnableMMAP off#EnableSendfile on# Supplemental configuration## The configuration files in the /etc/httpd/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.# Server-pool management (MPM specific)#Include /etc/httpd/extra/httpd-mpm.conf# Multi-language error messages#Include /etc/httpd/extra/httpd-multilang-errordoc.conf# Fancy directory listings#Include /etc/httpd/extra/httpd-autoindex.conf# Language settings#Include /etc/httpd/extra/httpd-languages.conf# User home directories#Include /etc/httpd/extra/httpd-userdir.conf# Real-time info on requests and configuration#Include /etc/httpd/extra/httpd-info.conf# Virtual hosts#Include /boot/config/plugins/apache/httpd-vhosts.conf# Local access to the Apache HTTP Server Manual#Include /etc/httpd/extra/httpd-manual.conf# Distributed authoring and versioning (WebDAV)#Include /etc/httpd/extra/httpd-dav.conf# Various default settings#Include /etc/httpd/extra/httpd-default.conf# Configure mod_proxy_html to understand HTML4/XHTML1Include /etc/httpd/extra/proxy-html.conf# Secure (SSL/TLS) connections#Include /boot/config/plugins/apache/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.#SSLRandomSeed startup builtinSSLRandomSeed connect builtin## uncomment out the below to deal with user agents that deliberately# violate open standards by misusing DNT (DNT *must* be a specific# end-user choice)###BrowserMatch "MSIE 10.0;" bad_DNT###RequestHeader unset DNT env=bad_DNT## Uncomment the following line to enable PHP:#Include /etc/httpd/mod_php.conf# Uncomment the following lines (and mod_dav above) to enable svn support:##LoadModule dav_svn_module lib64/httpd/modules/mod_dav_svn.so#LoadModule authz_svn_module lib64/httpd/modules/mod_authz_svn.so# Uncomment the following to include Reverse proxy for apps#Include /boot/config/plugins/apache/proxiedhosts



I'm not really an expert on setting up apache and I've been using nginx lately so I might confuse somethings. But when I was using apache I had other web pages setup in my docroot. I used /mnt/cache/www and had a few different web pages like /mnt/cache/www/phpMyAdmin and /mnt/cache/www/phpvirtualbox. I would access then through http://server:8088/phpMyAdmin. I also have proxiedhosts uncommented at the bottom of the config and edited proxiedhosts to match my apps. In the past I also have change the unRAID gui port in my go file to port 88 and ran apache on port 80 then reverse proxied unRAID.

Link to comment
1 hour ago, dmacias said:


It should display the index.html automatically with the default config. I just tested with a new install. All I did was copy the index.html into /mnt/user/web. You might have changed something. Here's the default httpd.conf

 


## This is the main Apache HTTP server configuration file.  It contains the# configuration directives that give the server its instructions.# See  for detailed information.# In particular, see # # 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/access_log"# with ServerRoot set to "/usr/local/apache2" will be interpreted by the# server as "/usr/local/apache2/logs/access_log", whereas "/logs/access_log" # will be interpreted as '/logs/access_log'.## 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 specify a local disk on the# Mutex directive, if file-based mutexes are used.  If you wish to share the# same ServerRoot for multiple httpd daemons, you will need to change at# least PidFile.#ServerRoot "/usr"## Mutex: Allows you to set the mutex mechanism and mutex file directory# for individual mutexes, or change the global defaults## Uncomment and change the directory if mutexes are file-based and the default# mutex file directory is not on a local disk or is not appropriate for some# other reason.## Mutex default:/var/run## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, instead of the default. See also the # directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses.##Listen 12.34.56.78: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 authn_file_module lib64/httpd/modules/mod_authn_file.so#LoadModule authn_dbm_module lib64/httpd/modules/mod_authn_dbm.so#LoadModule authn_anon_module lib64/httpd/modules/mod_authn_anon.so#LoadModule authn_dbd_module lib64/httpd/modules/mod_authn_dbd.so#LoadModule authn_socache_module lib64/httpd/modules/mod_authn_socache.soLoadModule authn_core_module lib64/httpd/modules/mod_authn_core.soLoadModule authz_host_module lib64/httpd/modules/mod_authz_host.soLoadModule authz_groupfile_module lib64/httpd/modules/mod_authz_groupfile.soLoadModule authz_user_module lib64/httpd/modules/mod_authz_user.so#LoadModule authz_dbm_module lib64/httpd/modules/mod_authz_dbm.so#LoadModule authz_owner_module lib64/httpd/modules/mod_authz_owner.so#LoadModule authz_dbd_module lib64/httpd/modules/mod_authz_dbd.soLoadModule authz_core_module lib64/httpd/modules/mod_authz_core.so#LoadModule authnz_ldap_module lib64/httpd/modules/mod_authnz_ldap.soLoadModule access_compat_module lib64/httpd/modules/mod_access_compat.soLoadModule auth_basic_module lib64/httpd/modules/mod_auth_basic.so#LoadModule auth_form_module lib64/httpd/modules/mod_auth_form.so#LoadModule auth_digest_module lib64/httpd/modules/mod_auth_digest.so#LoadModule allowmethods_module lib64/httpd/modules/mod_allowmethods.so#LoadModule file_cache_module lib64/httpd/modules/mod_file_cache.so#LoadModule cache_module lib64/httpd/modules/mod_cache.so#LoadModule cache_disk_module lib64/httpd/modules/mod_cache_disk.so#LoadModule cache_socache_module lib64/httpd/modules/mod_cache_socache.soLoadModule socache_shmcb_module lib64/httpd/modules/mod_socache_shmcb.so#LoadModule socache_dbm_module lib64/httpd/modules/mod_socache_dbm.so#LoadModule socache_memcache_module lib64/httpd/modules/mod_socache_memcache.so#LoadModule watchdog_module lib64/httpd/modules/mod_watchdog.so#LoadModule macro_module lib64/httpd/modules/mod_macro.so#LoadModule dbd_module lib64/httpd/modules/mod_dbd.so#LoadModule dumpio_module lib64/httpd/modules/mod_dumpio.so#LoadModule echo_module lib64/httpd/modules/mod_echo.so#LoadModule buffer_module lib64/httpd/modules/mod_buffer.so#LoadModule data_module lib64/httpd/modules/mod_data.so#LoadModule ratelimit_module lib64/httpd/modules/mod_ratelimit.soLoadModule reqtimeout_module lib64/httpd/modules/mod_reqtimeout.so#LoadModule ext_filter_module lib64/httpd/modules/mod_ext_filter.so#LoadModule request_module lib64/httpd/modules/mod_request.so#LoadModule include_module lib64/httpd/modules/mod_include.soLoadModule filter_module lib64/httpd/modules/mod_filter.so#LoadModule reflector_module lib64/httpd/modules/mod_reflector.so#LoadModule substitute_module lib64/httpd/modules/mod_substitute.so#LoadModule sed_module lib64/httpd/modules/mod_sed.so#LoadModule charset_lite_module lib64/httpd/modules/mod_charset_lite.so#LoadModule deflate_module lib64/httpd/modules/mod_deflate.soLoadModule xml2enc_module lib64/httpd/modules/mod_xml2enc.soLoadModule proxy_html_module lib64/httpd/modules/mod_proxy_html.soLoadModule mime_module lib64/httpd/modules/mod_mime.so#LoadModule ldap_module lib64/httpd/modules/mod_ldap.soLoadModule log_config_module lib64/httpd/modules/mod_log_config.so#LoadModule log_debug_module lib64/httpd/modules/mod_log_debug.so#LoadModule log_forensic_module lib64/httpd/modules/mod_log_forensic.so#LoadModule logio_module lib64/httpd/modules/mod_logio.soLoadModule env_module lib64/httpd/modules/mod_env.so#LoadModule mime_magic_module lib64/httpd/modules/mod_mime_magic.so#LoadModule expires_module lib64/httpd/modules/mod_expires.soLoadModule headers_module lib64/httpd/modules/mod_headers.so#LoadModule usertrack_module lib64/httpd/modules/mod_usertrack.so#LoadModule unique_id_module lib64/httpd/modules/mod_unique_id.soLoadModule setenvif_module lib64/httpd/modules/mod_setenvif.soLoadModule version_module lib64/httpd/modules/mod_version.so#LoadModule remoteip_module lib64/httpd/modules/mod_remoteip.soLoadModule proxy_module lib64/httpd/modules/mod_proxy.soLoadModule proxy_connect_module lib64/httpd/modules/mod_proxy_connect.soLoadModule proxy_ftp_module lib64/httpd/modules/mod_proxy_ftp.soLoadModule proxy_http_module lib64/httpd/modules/mod_proxy_http.soLoadModule proxy_fcgi_module lib64/httpd/modules/mod_proxy_fcgi.soLoadModule proxy_scgi_module lib64/httpd/modules/mod_proxy_scgi.so#LoadModule proxy_fdpass_module lib64/httpd/modules/mod_proxy_fdpass.soLoadModule proxy_wstunnel_module lib64/httpd/modules/mod_proxy_wstunnel.soLoadModule proxy_ajp_module lib64/httpd/modules/mod_proxy_ajp.so#LoadModule proxy_balancer_module lib64/httpd/modules/mod_proxy_balancer.soLoadModule proxy_express_module lib64/httpd/modules/mod_proxy_express.so#LoadModule session_module lib64/httpd/modules/mod_session.so#LoadModule session_cookie_module lib64/httpd/modules/mod_session_cookie.so#LoadModule session_dbd_module lib64/httpd/modules/mod_session_dbd.so#LoadModule slotmem_shm_module lib64/httpd/modules/mod_slotmem_shm.so#LoadModule slotmem_plain_module lib64/httpd/modules/mod_slotmem_plain.soLoadModule ssl_module lib64/httpd/modules/mod_ssl.so#LoadModule dialup_module lib64/httpd/modules/mod_dialup.soLoadModule lbmethod_byrequests_module lib64/httpd/modules/mod_lbmethod_byrequests.soLoadModule lbmethod_bytraffic_module lib64/httpd/modules/mod_lbmethod_bytraffic.soLoadModule lbmethod_bybusyness_module lib64/httpd/modules/mod_lbmethod_bybusyness.so#LoadModule lbmethod_heartbeat_module lib64/httpd/modules/mod_lbmethod_heartbeat.soLoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.soLoadModule unixd_module lib64/httpd/modules/mod_unixd.so#LoadModule heartbeat_module lib64/httpd/modules/mod_heartbeat.so#LoadModule heartmonitor_module lib64/httpd/modules/mod_heartmonitor.so#LoadModule dav_module lib64/httpd/modules/mod_dav.soLoadModule status_module lib64/httpd/modules/mod_status.soLoadModule autoindex_module lib64/httpd/modules/mod_autoindex.so#LoadModule asis_module lib64/httpd/modules/mod_asis.so#LoadModule info_module lib64/httpd/modules/mod_info.so#LoadModule cgid_module lib64/httpd/modules/mod_cgid.so#LoadModule cgi_module lib64/httpd/modules/mod_cgi.so#LoadModule dav_fs_module lib64/httpd/modules/mod_dav_fs.so#LoadModule dav_lock_module lib64/httpd/modules/mod_dav_lock.so#LoadModule vhost_alias_module lib64/httpd/modules/mod_vhost_alias.so#LoadModule negotiation_module lib64/httpd/modules/mod_negotiation.soLoadModule dir_module lib64/httpd/modules/mod_dir.so#LoadModule actions_module lib64/httpd/modules/mod_actions.so#LoadModule speling_module lib64/httpd/modules/mod_speling.so#LoadModule userdir_module lib64/httpd/modules/mod_userdir.soLoadModule alias_module lib64/httpd/modules/mod_alias.so#LoadModule rewrite_module lib64/httpd/modules/mod_rewrite.so## 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 apache#Group apache# '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#  definition.  These values also provide defaults for# any  containers you may define later in the file.## All of these directives may appear inside  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 www.example.com:80## Deny access to the entirety of your server's filesystem. You must# explicitly permit access to web content directories in other #  blocks below.#   AllowOverride none   Require all denied## 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.### 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 "/srv/httpd/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.4/mod/core.html#options   # for more information.   #   Options Indexes FollowSymLinks   #   # AllowOverride controls what directives may be placed in .htaccess files.   # It can be "All", "None", or any combination of the keywords:   #   AllowOverride FileInfo AuthConfig Limit   #   AllowOverride None   #   # Controls who can get stuff from this server.   #   Require all granted## DirectoryIndex: sets the file that Apache will serve if a directory# is requested.#   DirectoryIndex index.html## The following lines prevent .htaccess and .htpasswd files from being # viewed by Web clients. #   Require all denied## ErrorLog: The location of the error log file.# If you do not specify an ErrorLog directive within a # container, error messages relating to that virtual host will be# logged here.  If you *do* define an error logfile for a # container, that host's errors will be logged there and not here.#ErrorLog "/var/log/httpd/error_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   #   # 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     # 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   #   # The location and format of the access logfile (Common Logfile Format).   # If you do not define any access logfiles within a    # container, they will be logged here.  Contrariwise, if you *do*   # define per- access logfiles, transactions will be   # logged therein and *not* in this file.   #   CustomLog "/var/log/httpd/access_log" common   #   # If you prefer a logfile with access, agent, and referer information   # (Combined Logfile Format) you can use the following directive.   #   #CustomLog "/var/log/httpd/access_log" combined   #   # 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://www.example.com/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  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/ "/srv/httpd/cgi-bin/"   #   # ScriptSock: On threaded servers, designate the path to the UNIX   # socket used to communicate with the CGI daemon of mod_cgid.   #   #Scriptsock cgisock## "/srv/httpd/cgi-bin" should be changed to whatever your ScriptAliased# CGI directory exists, if you have that configured.#   AllowOverride None   Options None   Require all granted   #   # TypesConfig points to the file containing the list of mappings from   # filename extension to MIME-type.   #   TypesConfig /etc/httpd/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   # 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 .shtml   #AddOutputFilter INCLUDES .shtml## 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 /etc/httpd/magic## 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://www.example.com/subscription_info.html### MaxRanges: Maximum number of Ranges in a request before# returning the entire resource, or one of the special# values 'default', 'none' or 'unlimited'.# Default setting is to accept 200 Ranges.#MaxRanges unlimited## EnableMMAP and EnableSendfile: On systems that support it, # memory-mapping or the sendfile syscall may be 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.# Defaults: EnableMMAP On, EnableSendfile Off##EnableMMAP off#EnableSendfile on# Supplemental configuration## The configuration files in the /etc/httpd/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.# Server-pool management (MPM specific)#Include /etc/httpd/extra/httpd-mpm.conf# Multi-language error messages#Include /etc/httpd/extra/httpd-multilang-errordoc.conf# Fancy directory listings#Include /etc/httpd/extra/httpd-autoindex.conf# Language settings#Include /etc/httpd/extra/httpd-languages.conf# User home directories#Include /etc/httpd/extra/httpd-userdir.conf# Real-time info on requests and configuration#Include /etc/httpd/extra/httpd-info.conf# Virtual hosts#Include /boot/config/plugins/apache/httpd-vhosts.conf# Local access to the Apache HTTP Server Manual#Include /etc/httpd/extra/httpd-manual.conf# Distributed authoring and versioning (WebDAV)#Include /etc/httpd/extra/httpd-dav.conf# Various default settings#Include /etc/httpd/extra/httpd-default.conf# Configure mod_proxy_html to understand HTML4/XHTML1Include /etc/httpd/extra/proxy-html.conf# Secure (SSL/TLS) connections#Include /boot/config/plugins/apache/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.#SSLRandomSeed startup builtinSSLRandomSeed connect builtin## uncomment out the below to deal with user agents that deliberately# violate open standards by misusing DNT (DNT *must* be a specific# end-user choice)###BrowserMatch "MSIE 10.0;" bad_DNT###RequestHeader unset DNT env=bad_DNT## Uncomment the following line to enable PHP:#Include /etc/httpd/mod_php.conf# Uncomment the following lines (and mod_dav above) to enable svn support:##LoadModule dav_svn_module lib64/httpd/modules/mod_dav_svn.so#LoadModule authz_svn_module lib64/httpd/modules/mod_authz_svn.so# Uncomment the following to include Reverse proxy for apps#Include /boot/config/plugins/apache/proxiedhosts
 



I'm not really an expert on setting up apache and I've been using nginx lately so I might confuse somethings. But when I was using apache I had other web pages setup in my docroot. I used /mnt/cache/www and had a few different web pages like /mnt/cache/www/phpMyAdmin and /mnt/cache/www/phpvirtualbox. I would access then through http://server:8088/phpMyAdmin. I also have proxiedhosts uncommented at the bottom of the config and edited proxiedhosts to match my apps. In the past I also have change the unRAID gui port in my go file to port 88 and ran apache on port 80 then reverse proxied unRAID.

 

Perfect thanks!  All working now.  I need to fiddle with the proxy thing, but that's for another day.

Link to comment
 
Perfect thanks!  All working now.  I need to fiddle with the proxy thing, but that's for another day.

Glad you got it working. This is unrelated to this plugin but I forgot to mention you had this spamming in your log.
"crond[6966]: chdir failed: root Console and webGui login account". It happens in the middle of installing my command line plugin but there's no cron involved with that plugin. So it's something else that ran at the same time as that install and then it keeps repeating.
Link to comment
8 hours ago, dmacias said:


Glad you got it working. This is unrelated to this plugin but I forgot to mention you had this spamming in your log.
"crond[6966]: chdir failed: root Console and webGui login account". It happens in the middle of installing my command line plugin but there's no cron involved with that plugin. So it's something else that ran at the same time as that install and then it keeps repeating.

 

Thanks, I saw that, not sure what's going on, I've only done two things lately, added ProFTPd and the Apache server.  That's next on my list!

Link to comment
On 2/22/2017 at 11:17 PM, dmacias said:

Glad you got it working. This is unrelated to this plugin but I forgot to mention you had this spamming in your log.
"crond[6966]: chdir failed: root Console and webGui login account". It happens in the middle of installing my command line plugin but there's no cron involved with that plugin. So it's something else that ran at the same time as that install and then it keeps repeating.

 

dmacias - I'm trying to work through this issue you identified and not having any luck.  There's another issue with cache_dirs trying to cache deleted shares.  Not sure if its related or not.  To your point (happens in the middle of installing my command line plugin), how can I determine what this is?  I've posted another topic on this problem if you care to join in https://forums.lime-technology.com/topic/55170-unknown-app-spamming-log/ - thanks in advance for your perspective...

Link to comment
 
dmacias - I'm trying to work through this issue you identified and not having any luck.  There's another issue with cache_dirs trying to cache deleted shares.  Not sure if its related or not.  To your point (happens in the middle of installing my command line plugin), how can I determine what this is?  I've posted another topic on this problem if you care to join in https://forums.lime-technology.com/topic/55170-unknown-app-spamming-log/ - thanks in advance for your perspective...

I'll reply in the other thread.
Link to comment
  • 8 months later...

Is there any way to enable HTTP/Request2.php?

 

[Mon Nov 20 16:51:18.939136 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Warning: require_once(HTTP/Request2.php): failed to open stream: No such file or directory in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3
[Mon Nov 20 16:51:18.939150 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Fatal error: require_once(): Failed opening required 'HTTP/Request2.php' (include_path='.:/usr/lib64/php') in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3

 

Edited by spencers
Link to comment
Is there any way to enable HTTP/Request2.php?
 
[Mon Nov 20 16:51:18.939136 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Warning: require_once(HTTP/Request2.php): failed to open stream: No such file or directory in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3[Mon Nov 20 16:51:18.939150 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Fatal error: require_once(): Failed opening required 'HTTP/Request2.php' (include_path='.:/usr/lib64/php') in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3

 

This plugin is kind of dead. That's part of PEAR or an add-on. I don't remember if that's included. Have you tried an apache docker or nginx?
Link to comment
40 minutes ago, dmacias said:
6 hours ago, spencers said:
Is there any way to enable HTTP/Request2.php?
 


[Mon Nov 20 16:51:18.939136 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Warning: require_once(HTTP/Request2.php): failed to open stream: No such file or directory in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3[Mon Nov 20 16:51:18.939150 2017] [:error] [pid 21498:tid 47421790107392] [client 192.168.9.246:61237] PHP Fatal error: require_once(): Failed opening required 'HTTP/Request2.php' (include_path='.:/usr/lib64/php') in /mnt/cache/apps/apache/www/WeatherDisplayServer/iweather.php on line 3
 

 

This plugin is kind of dead. That's part of PEAR or an add-on. I don't remember if that's included. Have you tried an apache docker or nginx?

Sigh. It all seems to be dead. Nginx docker is way too old to have http2 and no way to update it. 

 

The Apache docker is no longer supported. While this docker container works, I have to drop into bash and kill cron every time I restart, otherwise the log file fills up. No support to troubleshoot the issue. 

 

Surely there’s a better way. Just trying to get a wunderground api-based weather website to display on some e-ink displays. Nothing complicated. 

Edited by spencers
Link to comment
4 hours ago, spencers said:

Sigh. It all seems to be dead. Nginx docker is way too old to have http2 and no way to update it. 

 

The Apache docker is no longer supported. While this docker container works, I have to drop into bash and kill cron every time I restart, otherwise the log file fills up. No support to troubleshoot the issue. 

 

Surely there’s a better way. Just trying to get a wunderground api-based weather website to display on some e-ink displays. Nothing complicated. 

 

From nginx.com it says http/2 was included in 1.9.5. Our nginx container should have version 1.12.2.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.