I suggest you remove the php stuff from Apache, switch it over to php-fpm (which basically turns it into an appserver). If you do so, consider changing your MPM over to either event or worker at that point.
Rick Houser
Web Administration
> -----Original Message-----
> From: Marc Chamberlin [mailto:marc@marcchamberlin.com ]
> Sent: Wednesday, April 19, 2017 15:58
> To: users@xxxxxxxxxxxxxxxx
> Subject: Virtual hosts, include php.conf, DirectoryIndex failure
>
> EXTERNAL EMAIL
>
>
> Hi - While I have a work-around for this issue, I thought I would post
> it here to see what, if any, feedback I might get. Perhaps I am doing
> something wrong? I run a rather complex server environment where I use
> both Apache HTTPD and Apache Tomcat servers in combination and host a
> number of virtual hosts (named and all using the same IP address) On one
> of my virtual hosts I recently installed WordPress and this required me
> to also add in PHP support, since WordPress uses mostly PHP scripts.
> Since this is only needed on one of my virtual hosts, I tried to
> configure just that virtual host to include the additional stuff needed
> to support PHP. My attempts to do so failed and the workaround was to
> include the PHP configuration stuff (php7.conf) at a global level that
> will affect all the virtual hosts that I am supporting. For now, that is
> OK and won't bother anything but I am wondering why my initial approach
> failed and if there is something that I am missing or don't understand.
>
> Basically, the symptoms, of what happened, was that the DirectoryIndex
> index.php setting fails when I just included the php7.conf file in the
> configuration file for the virtual host. But when I included the
> php7.file in the global http.conf or in the global default-server.conf
> files then it works! Error logs do not show anything other than the fact
> that an index file could not be found when referencing a directory that
> does indeed have an index.php file in it. I will show the pertinent
> config files (urls obscured) below in the configuration that fails, and
> I hope this is not overwhelming. First here is the version info for
> Apache just so we are all on the same page -
>
> httpd -V
> Server version: Apache/2.4.23 (Linux/SUSE)
> Server built: 2017-03-22 14:54:04.000000000 +0000
> Server's Module Magic Number: 20120211:61
> Server loaded: APR 1.5.1, APR-UTIL 1.5.3
> Compiled using: APR 1.5.1, APR-UTIL 1.5.3
> Architecture: 64-bit
> Server MPM: prefork
> threaded: no
> forked: yes (variable process count)
> Server compiled with....
> -D APR_HAS_SENDFILE
> -D APR_HAS_MMAP
> -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
> -D APR_USE_PROC_PTHREAD_SERIALIZE
> -D APR_USE_PTHREAD_SERIALIZE
> -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
> -D APR_HAS_OTHER_CHILD
> -D AP_HAVE_RELIABLE_PIPED_LOGS
> -D DYNAMIC_MODULE_LIMIT=256
> -D HTTPD_ROOT="/srv/www"
> -D SUEXEC_BIN="/usr/sbin/suexec"
> -D DEFAULT_PIDLOG="/run/httpd.pid"
> -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
> -D DEFAULT_ERRORLOG="/var/log/apache2/error_log"
> -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
> -D SERVER_CONFIG_FILE="/etc/apache2/httpd.conf"
>
> ------------------------------------------------------------ --------
>
> Here is php7.conf that I am including -
>
> cat php7.conf
> <IfModule mod_php7.c>
> <FilesMatch "\.ph(p[345]?|tml)$">
> SetHandler application/x-httpd-php
> </FilesMatch>
> <FilesMatch "\.php[345]?s$">
> SetHandler application/x-httpd-php-source
> </FilesMatch>
> DirectoryIndex index.php4
> DirectoryIndex index.php5
> DirectoryIndex index.php
> </IfModule>
>
> ------------------------------------------------------------ --------
>
> And this is my virtual host configuration (comments removed and URLs
> obscured)-
>
> cat myvirtualhost.conf
> <VirtualHost *:80>
> ServerAdmin me@xxxxxxxxxxxx
> ServerName www.myvirtualhost.org
> ServerAlias myvirtualhost.org
> DocumentRoot "/srv/tomcat/myvirtualhost_webapps/ROOT"
> ErrorLog "/var/log/apache2/myvirtualhost.org-error_log"
> TransferLog "/var/log/apache2/myvirtualhost.org-access_log"
> HostnameLookups Off
> UseCanonicalName Off
> ServerSignature On
> <IfModule mod_rewrite.c>
> RewriteEngine On
> RewriteCond %{HTTPS} off
> RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
> </IfModule>
>
> # THIS INCLUDE STATEMENT AND/OR THE DIRECTIVES IN PHP7.CONF FAILS
> FOR SOME UNKNOWN REASON!
> Include /etc/apache2/conf.d/php7.conf
>
> Alias / /srv/tomcat/myvirtualhost_webapps/ROOT/
> <IfModule mod_jk.c>
> JkMount / tomcatWorker1
> JkMount /* tomcatWorker1
> JkUnMount /*.html tomcatWorker1
> JkUnMount /*.php tomcatWorker1
> JkUnMount /*.css tomcatWorker1
> JkUnMount /*.js tomcatWorker1
> JkUnMount /*.jpg tomcatWorker1
> JkUnMount /*.png tomcatWorker1
> JkUnMount /*.gif tomcatWorker1
> </IfModule>
> ScriptAlias /cgi-bin/ "/srv/tomcat/myvirtualhost_webapps/ROOT/cgi-bin/"
> <Directory "/srv/tomcat/ahoa_webapps/ROOT/cgi-bin">
> AllowOverride None
> Options +ExecCGI -Includes
> <IfModule !mod_access_compat.c>
> Require all granted
> </IfModule>
> <IfModule mod_access_compat.c>
> Order allow,deny
> Allow from all
> </IfModule>
> </Directory>
> <IfModule mod_userdir.c>
> UserDir public_html
> Include /etc/apache2/mod_userdir.conf
> </IfModule>
>
> <Directory "/srv/tomcat/myvirtualhost_webapps/ROOT">
> Options +Indexes +FollowSymLinks
> AllowOverride None
> <IfModule !mod_access_compat.c>
> Require all granted
> </IfModule>
> <IfModule mod_access_compat.c>
> Order allow,deny
> Allow from all
> </IfModule>
> <IfModule sapi_apache2.c>
> php_admin_flag engine on
> </IfModule>
> <IfModule mod_php7.c>
> php_admin_flag engine on
> </IfModule>
> </Directory>
> </VirtualHost>
>
> as I said, if I move the "Include /etc/apache2/conf.d/php7.conf"
> statement to a global configuration file, then everything works OK. Any
> kind guru got an explanation, I don't grok this one... Perhaps this is
> a bug? Thanks in advance... Marc..
>
> --
> "The Truth is out there" - Spooky
>
>
> ------------------------------------------------------------ ---------
> To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx