Forum

Minor inconvenience - Wordpress/PHP7.0 - Themes/Plugins installation

Ondrej
4 September 2016, 00:15
First, I would like to thank author of this webserver and all people who contributed and contribute to support. I just finnished installing Wordpress with PHP7.0 and MariaDB. After some experience with Apache/Nginx, I am really thankful for webserver that is BLAZING fast even without WP SuperCache and so easy and LOGICALLY to configure.

My concern (minor) is:

- when I install plugin/theme directly from WP Dashboard, WP says that installation ended in error. But nevertheless the plugin/theme was installed and works. Can someone point me in direction how can I investigate about it?

- Let's Encrypt script for Webroot method does not work (currently) with PHP7.0, there is workaround to install PHP5.6 (on Ubuntu 16.04 from third-party repo) that automatically involves installation of Apache2 etc. Is there any other way around?

Thank you guys.
Kapageridis Stavros
4 September 2016, 00:25
Hi Ondrej, it will be helpful if you provide the error.log and your configuration's(hiawatha.conf & virtual host conf).
Ondrej
4 September 2016, 08:29
Hi, I am using now just hiawatha.conf as this is simple one host testing site.

hiawatha.conf:
# Hiawatha main configuration file
#

# VARIABLES
# With 'set', you can declare a variable. Make sure the name of the
# variable doesn't conflict with any of the configuration options.
# The variables are case-sensitive and cannot be redeclared.
#
set LOCALHOST = 127.0.0.0/8


# GENERAL SETTINGS
#
ServerId = www-data
ConnectionsTotal = 1000
ConnectionsPerIP = 25
SystemLogfile = /var/log/hiawatha/system.log
GarbageLogfile = /var/log/hiawatha/garbage.log


# BINDING SETTINGS
# A binding is where a client can connect to.
#
Binding {
Port = 80
MaxRequestSize = 1000000
MaxUploadSize = 550

}
#
#Binding {
# Port = 443
# TLScertFile = ssl/hiawatha.pem
# Interface = 127.0.0.1
# MaxRequestSize = 2048
# TimeForRequest = 30
#}


# BANNING SETTINGS
# Deny service to clients who misbehave.
#
#BanOnGarbage = 300
#BanOnMaxPerIP = 60
#BanOnMaxReqSize = 300
#KickOnBan = yes
#RebanDuringBan = yes


# COMMON GATEWAY INTERFACE (CGI) SETTINGS
# These settings can be used to run CGI applications.
#
CGIhandler = /usr/bin/perl:pl
CGIhandler = /usr/bin/php-cgi:php
CGIhandler = /usr/bin/python:py
CGIhandler = /usr/bin/ruby:rb
CGIhandler = /usr/bin/ssi-cgi:shtml
CGIextension = cgi
#
FastCGIserver {
FastCGIid = PHP
ConnectTo = /run/php/php7.0-fpm.sock
Extension = php
}


# URL TOOLKIT
# This URL toolkit rule was made for the Banshee PHP framework,
# which can be downloaded from http://www.banshee-php.org/
#
#UrlToolkit {
# ToolkitID = banshee
# RequestURI isfile Return
# Match ^/(css|files|fonts|images|js)($|/) Return
# Match ^/(favicon.ico|robots.txt)$ Return
# Match [^?]*(\?.*)? Rewrite /index.php$1
#}

UrlToolkit {
ToolkitID = wordpress
RequestURI exists Return
Match [^?]*(\?.*)? Rewrite /index.php$1
}

UrlToolkit {
ToolkitID = wp-multi-subdir
Match ^/index\.php$ Return
Match ^/([_0-9a-zA-Z-]+/)?wp-admin$ Redirect /$1wp-admin/
RequestURI exists Return
Match ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) Rewrite /$2
Match ^/([_0-9a-zA-Z-]+/)?(.*\.php)$ Rewrite /$2
Match ^/[_0-9a-zA-Z-]+(/wp-.*) Rewrite /$1 # if not present 404 - error is displayed
Match .* Rewrite /index.php
}



# DIRECTORY SETTINGS
# You can specify some settings per directory.
#
Directory {
DirectoryID = static
Path = /css, /fonts, /images, /js
ExpirePeriod = 2 weeks
}
#
Directory {
DirectoryID = files
Path = /files
ShowIndex = yes
StartFile = index.html
ExecuteCGI = no
}


# DEFAULT WEBSITE
# It is wise to use your IP address as the hostname of the default website
# and give it a blank webpage. By doing so, automated webscanners won't find
# your possible vulnerable website.
#
Hostname = 127.0.0.1
WebsiteRoot = /var/www/hiawatha
StartFile = index.html
AccessLogfile = /var/log/hiawatha/access.log
ErrorLogfile = /var/log/hiawatha/error.log


# VIRTUAL HOSTS
# Use a VirtualHost section for each website you want to host.
#
VirtualHost {
Hostname = test.www.informaix.de
WebsiteRoot = /var/www/test.www.informaix.de/wwwroot
StartFile = index.php
AccessLogfile = /var/www/test.www.informaix.de/log/access.log
ErrorLogfile = /var/www/test.www.informaix.de/log/error.log
TimeForCGI = 5
UseFastCGI = PHP
UseToolkit = wordpress, wp-multi-subdir
UseDirectory = static, files
}


error.log:
79.252.222.210|Sun 04 Sep 2016 08:22:11 +0200|/var/www/test.www.informaix.de/wwwroot/wp-admin/admin-ajax.php|CGI application timeout

That would point me to PHP execution timeout, but those values are set as per recommendation for hiawatha/wordpress from http://dotbalm.org/hosting-wordpress-with-hiawatha/

Also my machine (VPS) is a decent 4-core Xeon E5 with 14GB RAM.
Ondrej
4 September 2016, 09:51
Got it solved - the per directory TimeForCGI was too low (5), setting it 120 does the business
Kapageridis Stavros
4 September 2016, 16:10
Nice to hear this.
Ondrej
4 September 2016, 23:57
Also, there is an ERROR in this configuration ,which I copy-pasted and just customized. If you use WP Multisite install (subdirectories for individual sites in WP network), you should use only "wp-multi-subdir" UrlToolKit, noth both "wp-multi-subdir" and "wordpress". Using both in this scenario leads to rewrite conflicts ending in "HTTP too many redirects" for wp-admin of subsite and broken formating of blogs/pages.
chapchap70
9 September 2016, 15:40
About the Let's Encrypt... I inquired about it here... /forum/topic/2308 My PHP skills are extremely lacking but my guess would be a function was used to make the Let's Encrypt script using PHP 5 that may be deprecated in PHP 7.
This topic has been closed.