Page 1 of 21

Web UI in PHP - support thread

PostPosted: Tue Feb 14, 2012 5:06 am
by mpemberton5
Introducing the Revised version of the Web UI in PHP console! Many users benefited from a great app written by AcidumIrae and we owe him a great deal of gratitude. I've taken his hard work and revised it to include new features that Zip has included in Serviio. With great advice from Xmantium, this release includes a number of enhancements that will make this product shine.

Head over to the official Web UI in PHP Wiki page for more details and download location.

Thanks and enjoy!

Re: Web UI in PHP (revised)

PostPosted: Tue Feb 14, 2012 6:29 am
by Cerberus
wiki article ;) will set a section up for third party consoles :)


EDIT: http://wiki.serviio.org/doku.php?id=phpwebui (empty for now till you release :)

Re: Web UI in PHP (revised)

PostPosted: Tue Feb 14, 2012 2:37 pm
by mpemberton5
Cerberus wrote:wiki article ;) will set a section up for third party consoles


Fantastic! Thanks Cerberus!

Re: Web UI in PHP (revised)

PostPosted: Tue Feb 14, 2012 2:42 pm
by Xmantium
Oh no dont thank me! Im the lucky one who had the chance to test this updated Web UI before everyone else! :P

This is definately my Web UI of choice and cannot wait for it be released.
Im pretty sure everyone will be blown away for the work you put in

Thankyou for putting up with me with my demands and suggestions!
And thanks for the amazing efforts you put in. ;)

Re: Web UI in PHP (revised)

PostPosted: Tue Feb 14, 2012 5:52 pm
by Cerberus
mpemberton5 wrote:
Cerberus wrote:wiki article ;) will set a section up for third party consoles


Fantastic! Thanks Cerberus!


dont thank me your one that has to keep it updated ;)

Re: Web UI in PHP (revised)

PostPosted: Mon Feb 27, 2012 8:31 am
by will
Installed, so far it looks very good. I personally prefer having it slightly seperate as I already have a webserver for svn/websvn and a few other things.

How are you planning on dealing with new additions to the API? I assume you have the same problem that any new fields in a response that you don't know about (and therefore don't include in any replys) get set back to their defaults by the server when it gets your reply.

Re: Web UI in PHP (revised)

PostPosted: Mon Feb 27, 2012 10:44 am
by Xmantium
Yes! An official release! Christmas has come early! :)

Hope everyone enjoys it as much I do. Works wonders!
Just tested it on iPad Safari and ICS tablet - looks amazing!
On the iPad it looks like a native iOS app with the cool iOS styled buttons you put in.

Thanks Mark for your hard work you put in.

Re: Web UI in PHP (revised)

PostPosted: Mon Feb 27, 2012 11:25 am
by Cerberus
stickie posts aint needed update your wiki!!

Re: Web UI in PHP (revised)

PostPosted: Mon Mar 26, 2012 8:05 pm
by fredricz
Well, nice gui.

But the wiki, please. Make it better for all the noobs out there. There is some big steps before actually being able to use the gui with apatche. If you can't, at least post some links!

Re: Web UI in PHP (revised)

PostPosted: Mon Mar 26, 2012 8:17 pm
by mpemberton5
fredricz wrote:Well, nice gui.

But the wiki, please. Make it better for all the noobs out there. There is some big steps before actually being able to use the gui with apatche. If you can't, at least post some links!


Totally agree and I blame myself for that. Will update ASAP. Thanks for the note!

Re: Web UI in PHP (revised)

PostPosted: Tue Mar 27, 2012 2:51 am
by jhb50
Nice Job! Copied into www and ran it! Who needs a wiki?

Can you tell me the purpose of the check boxes on the left? The console has them for enabling but you have separate enable boxes?

Re: Web UI in PHP (revised)

PostPosted: Tue Mar 27, 2012 4:26 am
by mpemberton5
jhb50 wrote:Nice Job! Copied into www and ran it! Who needs a wiki?

Can you tell me the purpose of the check boxes on the left? The console has them for enabling but you have separate enable boxes?


Thanks for the kind words. It would be nice to have a little more info on the wiki, but as you found out, there isn't much to the setup. :)

The check boxes on the left are simply for selection. All the lists are purposefully consistent, with the check boxes to the left. If any are selected, you can remove the one(s) selected, or specifically on the Library Tab under Online Sources you can edit the selection.

Hope you find it useful. I welcome any feedback.

Re: Web UI in PHP (revised)

PostPosted: Sun Apr 01, 2012 5:26 pm
by npuser
mpemberton5 - First of all thank you for a such good tool. However, i run into small glitch. I have a feeling, it has something to do with my my php curl extension. For some reason, i get timeout pop error (attached screenshot) when i modify anything and hit save. Any changes i try to save via webgui won't stick. Any way to enable a log and see what is going on?

Windows 7 64 bit
Java 1_7_0_03
Apache 2.0.64/PHP 5.2.17

thanks

NPuser

Re: Web UI in PHP (revised)

PostPosted: Thu Apr 05, 2012 2:35 am
by npuser
I got it working by changing php://memory to php://temp, and a file handle to 'r+' instead of 'rw'. I believe 'memory' limited to fixed memory whereas temp uses all available memory plus temp file, if necessary.

****Fix****
If you receive a timeout error or a parser error, please modify following in <webfolder>\serviioweb\lib\RestRequest.inc.php

from
  Code:
$fh = fopen('php://memory', 'rw');

to
  Code:
$fh = fopen('php://temp', 'r+');


Note: There are two occurrences of php://memory, be sure to modify both.

thanks
NPuser

Re: Web UI in PHP (revised)

PostPosted: Thu Apr 05, 2012 3:10 am
by mpemberton5
npuser wrote:I got it working by changing php://memory to php://temp, and a file handle to 'r+' instead of 'rw'. I believe 'memory' limited to fixed memory whereas temp uses all available memory plus temp file, if necessary.

****Fix****
If you receive a timeout error or a parser error, please modify following in <webfolder>\serviioweb\lib\RestRequest.inc.php

from
  Code:
$fh = fopen('php://memory', 'rw');

to
  Code:
$fh = fopen('php://temp', 'r+');


Note: There are two occurrences of php://memory, be sure to modify both.

thanks
NPuser


Good detective work NPuser! After some review, I'm questioning why there was a need to move the data into an I/O stream before sending it out. Can't find a reason why. I failed to review this library "thinking" it was a tried-and-true library. Total egg on my face. Will definitely look into this library.

Cheers!

Re: Web UI in PHP (revised)

PostPosted: Wed Apr 11, 2012 11:44 pm
by thtung1
jhb50 wrote:Nice Job! Copied into www and ran it! Who needs a wiki?

Can you tell me the purpose of the check boxes on the left? The console has them for enabling but you have separate enable boxes?


First of all, sorry for being n00b, I know nothing about PHP :D

I have just install Serviio on my MyBook Live (followed this guide http://wiki.serviio.org/doku.php?id=install_wd), and I want to setup this Web UI but still don't know how!!!

What do you mean by "www"? I found a "www" folder in MyBook Live at " /var/www/", is that it?

And how can I "run it"? Type an adress in Firefox?

Do I have to configure anything else?

Thank you!!

Re: Web UI in PHP (revised)

PostPosted: Thu Apr 12, 2012 2:23 am
by mpemberton5
thtung1 wrote:
jhb50 wrote:Nice Job! Copied into www and ran it! Who needs a wiki?

Can you tell me the purpose of the check boxes on the left? The console has them for enabling but you have separate enable boxes?


First of all, sorry for being n00b, I know nothing about PHP :D

I have just install Serviio on my MyBook Live (followed this guide http://wiki.serviio.org/doku.php?id=install_wd), and I want to setup this Web UI but still don't know how!!!

What do you mean by "www"? I found a "www" folder in MyBook Live at " /var/www/", is that it?

And how can I "run it"? Type an adress in Firefox?

Do I have to configure anything else?

Thank you!!

Forgive me of not being familiar with MyBook Live, but does it have an Apache server on it with PHP? I don't think it is included, but may be hacked to get it installed. Web UI requires an Apache server and PHP to run.

Re: Web UI in PHP (revised)

PostPosted: Thu Apr 12, 2012 2:25 pm
by thtung1
mpemberton5 wrote:
thtung1 wrote:
jhb50 wrote:Nice Job! Copied into www and ran it! Who needs a wiki?

Can you tell me the purpose of the check boxes on the left? The console has them for enabling but you have separate enable boxes?


First of all, sorry for being n00b, I know nothing about PHP :D

I have just install Serviio on my MyBook Live (followed this guide http://wiki.serviio.org/doku.php?id=install_wd), and I want to setup this Web UI but still don't know how!!!

What do you mean by "www"? I found a "www" folder in MyBook Live at " /var/www/", is that it?

And how can I "run it"? Type an adress in Firefox?

Do I have to configure anything else?

Thank you!!

Forgive me of not being familiar with MyBook Live, but does it have an Apache server on it with PHP? I don't think it is included, but may be hacked to get it installed. Web UI requires an Apache server and PHP to run.


Does it mean Apache server and PHP are installed?
  Code:
MyBookLive:~# apache2 -V
Server version: Apache/2.2.9 (Debian)
Server built:   Nov 15 2009 15:21:12
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_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=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

MyBookLive:~# php -v
PHP 5.2.6-1+lenny9 with Suhosin-Patch 0.9.6.2 (cli) (built: Aug  4 2010 06:30:43)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

Re: Web UI in PHP (revised)

PostPosted: Fri Apr 13, 2012 3:32 pm
by mpemberton5
Does it mean Apache server and PHP are installed?

Yep, looks good. Next step is to find out what the path is for the DocumentRoot in Apache. Some use /srv/www/htdocs/, others use /var/www, so if it doesn't stand out, then look in the /etc/apache2/apache2.conf file which should tell you the path. Look for DocumentRoot.

Once you find that, then extract the contents of the Web UI zip file in that folder. It should create it in a subdirectory called serviioweb. So from your browser you will now be able to navigate to http://(your WD IP address)/serviioweb. If you altered any settings of Serviio, you may need to alter the config file for Web UI located in the serviioweb folder called config.php.

I hope this helps direct you. Would love to hear how it goes!

Re: Web UI in PHP (revised)

PostPosted: Sat Apr 14, 2012 10:14 am
by thtung1
mpemberton5 wrote:Yep, looks good. Next step is to find out what the path is for the DocumentRoot in Apache. Some use /srv/www/htdocs/, others use /var/www, so if it doesn't stand out, then look in the /etc/apache2/apache2.conf file which should tell you the path. Look for DocumentRoot.


Thanks for your reply,

I found the file apache2.conf in the folder /etc/apache2/, but there isn't any DocumentRoot!! Any suggestion? Should I just add it?

  Code:
MyBookLive:~# cat /etc/apache2/apache2.conf
#
# Based upon the NCSA server configuration files originally by Rob McCool.
#
# This is the main Apache server configuration file.  It contains the
# configuration directives that give the server its instructions.
# See http://httpd.apache.org/docs/2.2/ for detailed information about
# the directives.
#
# 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. 
#
# The configuration directives are grouped into three basic sections:
#  1. Directives that control the operation of the Apache server process as a
#     whole (the 'global environment').
#  2. Directives that define the parameters of the 'main' or 'default' server,
#     which responds to requests that aren't handled by a virtual host.
#     These directives also provide default values for the settings
#     of all virtual hosts.
#  3. Settings for virtual hosts, which allow Web requests to be sent to
#     different IP addresses or hostnames and have them handled by the
#     same Apache server process.
#
# 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 "/var/log/apache2/foo.log"
# with ServerRoot set to "" will be interpreted by the
# server as "//var/log/apache2/foo.log".
#

### Section 1: Global Environment
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
#

#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# NOTE!  If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation (available
# at <URL:http://httpd.apache.org/docs-2.1/mod/mpm_common.html#lockfile>);
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
#
ServerRoot "/etc/apache2"

#
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
#
#<IfModule !mpm_winnt.c>
#<IfModule !mpm_netware.c>
LockFile /var/lock/apache2/accept.lock
#</IfModule>
#</IfModule>

#
# PidFile: The file in which the server should record its process
# identification number when it starts.
# This needs to be set in /etc/apache2/envvars
#
PidFile ${APACHE_PID_FILE}

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15

##
## Server-Pool Size Regulation (MPM specific)
##

# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          50
    MaxRequestsPerChild   0
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

# These need to be set in /etc/apache2/envvars
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}

#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#

AccessFileName .htaccess

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

#
# DefaultType is 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


#
# HostnameLookups: Log the names of clients or just their IP addresses
# e.g., www.apache.org (on) or 204.62.129.132 (off).
# The default is off because it'd be overall better for the net if people
# had to knowingly turn this feature on, since enabling it means that
# each client request will result in AT LEAST one lookup request to the
# nameserver.
#
HostnameLookups Off

# 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 /var/log/apache2/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

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:
Include /etc/apache2/httpd.conf

# Include ports listing
Include /etc/apache2/ports.conf

#
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
# If you are behind a reverse proxy, you might want to change %h into %{X-Forwarded-For}i
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

#
# Define an access log for VirtualHosts that don't define their own logfile
#CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

#
# 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
#

#
# Putting this all together, we can internationalize error responses.
#
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
# our collection of by-error message multi-language collections.  We use
# includes to substitute the appropriate text.
#
# You can modify the messages' appearance without changing any of the
# default HTTP_<error>.html.var files by adding the line:
#
#   Alias /error/include/ "/your/include/path/"
#
# which allows you to create your own set of files by starting with the
# /usr/share/apache2/error/include/ files and copying them to /your/include/path/,
# even on a per-VirtualHost basis.  The default include files will display
# your Apache version number and your ServerAdmin email address regardless
# of the setting of ServerSignature.
#
# The internationalized error documents require mod_alias, mod_include
# and mod_negotiation.  To activate them, uncomment the following 30 lines.

#    Alias /error/ "/usr/share/apache2/error/"
#
#    <Directory "/usr/share/apache2/error">
#        AllowOverride None
#        Options IncludesNoExec
#        AddOutputFilter Includes html
#        AddHandler type-map var
#        Order allow,deny
#        Allow from all
#        LanguagePriority en cs de es fr it nl sv pt-br ro
#        ForceLanguagePriority Prefer Fallback
#    </Directory>
#
#    ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
#    ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
#    ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
#    ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
#    ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
#    ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
#    ErrorDocument 410 /error/HTTP_GONE.html.var
#    ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
#    ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
#    ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
#    ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
#    ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
#    ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
#    ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
#    ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
#    ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
#    ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var



# Include of directories ignores editors' and dpkg's backup files,
# see README.Debian for details.

# Include generic snippets of statements
Include /etc/apache2/conf.d/

# update header version to 1.2 as requested by Golla on 11/1/2011
Header add X-Orion-Version "1.2"

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/
## ITR-34519: Hide apache server version and PHP version number in server response.
## This is item captured form Plynt security recommendation.
## Add (at the bottom of the file) following in apache config file (/etc/apache2/apache2.conf).
ServerTokens ProductOnly
ServerSignature Off