Nn web site building blocks
Wiki Main Page | User Page of Ted | Google search engine
Web Site Building Blocks
first article on Neela Nurseries' wiki, 2017 June
The following tools and web and programming frameworks are all part of Ted's volunteer efforts with ASI web site, and in-progress study of how to configure and customize shopping carts, article and document management pages, and easy-to-read easy-to-adjust web page layouts using CSS and third party, open source frameworks:
- Linux package selection for constrained systems
Contents
^ MYSQL database server and client
- MYSQL data base install and config (set up)
- MYSQL query syntax and examples
- MYSQL show variables, show status
- MYSQL command-line tool, also called MYSQL shell
- MYSQL shell user guide
- string quoting in MYSQL, multiple ways of quoting
- mysqldump of database information_schema requires
--skip-lock-tables
option - MYSQL database back-ups and cron
An important MYSQL database access recovery step is to reset the database server's root password in cases where that is lost. The following statement run in a mysqld_safe --skip-grant-tables
session works, while some of the more standard and MYSQL 5.7 documented password change statements fail due to a bug in MYSQL . . .
mysql> update mysql.user set authentication_string=password('MyNewPass') where user='root';
- PHP set up
^ Apache2 web server configuration
When setting up apache2 on Ubuntu 16.04.3 LTS host, following messages captures from this package and some PHP enabling modules:
Excerpt x -
. . . Selecting previously unselected package ssl-cert. Preparing to unpack .../ssl-cert_1.0.37_all.deb ... Unpacking ssl-cert (1.0.37) ... Selecting previously unselected package apache2-dbg. Preparing to unpack .../apache2-dbg_2.4.18-2ubuntu3.5_amd64.deb ... Unpacking apache2-dbg (2.4.18-2ubuntu3.5) ... Processing triggers for libc-bin (2.23-0ubuntu10) ... Processing triggers for man-db (2.7.5-1) ... Processing triggers for systemd (229-4ubuntu21.1) ... Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for ufw (0.35-0ubuntu2) ... Setting up libaprutil1-dbd-sqlite3:amd64 (1.5.4-1build1) ... Setting up libaprutil1-ldap:amd64 (1.5.4-1build1) ... Setting up liblua5.1-0:amd64 (5.1.5-8ubuntu1) ... Setting up apache2-bin (2.4.18-2ubuntu3.5) ... Setting up apache2-utils (2.4.18-2ubuntu3.5) ... Setting up apache2-data (2.4.18-2ubuntu3.5) ... Setting up apache2 (2.4.18-2ubuntu3.5) ... Enabling module mpm_event. Enabling module authz_core. Enabling module authz_host. Enabling module authn_core. Enabling module auth_basic. Enabling module access_compat. Enabling module authn_file. Enabling module authz_user. Enabling module alias. Enabling module dir. Enabling module autoindex. Enabling module env. Enabling module mime. Enabling module negotiation. Enabling module setenvif. Enabling module filter. Enabling module deflate. Enabling module status. Enabling conf charset. Enabling conf localized-error-pages. Enabling conf other-vhosts-access-log. Enabling conf security. Enabling conf serve-cgi-bin. Enabling site 000-default. Setting up apache2-doc (2.4.18-2ubuntu3.5) ... apache2_invoke: Enable configuration apache2-doc Setting up libapache2-mod-php7.0 (7.0.25-0ubuntu0.16.04.1) ... Creating config file /etc/php/7.0/apache2/php.ini with new version php_invoke: Enable module xml for apache2 SAPI php_invoke: Enable module dom for apache2 SAPI php_invoke: Enable module tidy for apache2 SAPI php_invoke: Enable module simplexml for apache2 SAPI php_invoke: Enable module shmop for apache2 SAPI php_invoke: Enable module posix for apache2 SAPI php_invoke: Enable module iconv for apache2 SAPI php_invoke: Enable module ftp for apache2 SAPI php_invoke: Enable module phar for apache2 SAPI php_invoke: Enable module ctype for apache2 SAPI php_invoke: Enable module sockets for apache2 SAPI php_invoke: Enable module xsl for apache2 SAPI php_invoke: Enable module opcache for apache2 SAPI php_invoke: Enable module gettext for apache2 SAPI php_invoke: Enable module tokenizer for apache2 SAPI php_invoke: Enable module fileinfo for apache2 SAPI php_invoke: Enable module wddx for apache2 SAPI php_invoke: Enable module pdo for apache2 SAPI php_invoke: Enable module mysqli for apache2 SAPI php_invoke: Enable module exif for apache2 SAPI php_invoke: Enable module pdo_mysql for apache2 SAPI php_invoke: Enable module sysvshm for apache2 SAPI php_invoke: Enable module sysvmsg for apache2 SAPI php_invoke: Enable module mysqlnd for apache2 SAPI php_invoke: Enable module readline for apache2 SAPI php_invoke: Enable module xmlwriter for apache2 SAPI php_invoke: Enable module calendar for apache2 SAPI php_invoke: Enable module xmlreader for apache2 SAPI php_invoke: Enable module json for apache2 SAPI php_invoke: Enable module sysvsem for apache2 SAPI Module mpm_event disabled. Enabling module mpm_prefork. apache2_switch_mpm Switch to prefork apache2_invoke: Enable module php7.0 Setting up libapache2-mod-php (1:7.0+35ubuntu6.1) ... Setting up libapache2-mod-svn (1.9.3-2ubuntu1.1) ... apache2_invoke: Enable module dav_svn apache2_invoke: Enable module authz_svn Setting up ssl-cert (1.0.37) ... Setting up apache2-dbg (2.4.18-2ubuntu3.5) ... Processing triggers for libc-bin (2.23-0ubuntu10) ... Processing triggers for systemd (229-4ubuntu21.1) ... Processing triggers for ureadahead (0.100.0-19) ... Processing triggers for ufw (0.35-0ubuntu2) ... Press Return to continue.
Apache2 and setting up virtual hosts, web sites:
SSL certificates and SSL redirection
- https://wiki.apache.org/httpd/RedirectSSL redirect http to https URLs
- Install and config
- Back-up and restore steps
- Troubleshooting
^ Cascading Style Sheets (CSS)
- Learnlayout dot com, flexbox example
- CSS flexbox, old versus new syntax at css-tricks.com
- Codepen dot io, Chris Coyier example of fixed and fluid block elements
- https://www.w3schools.com/tags/canvas_lineto.asp
- https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial/Getting_started_with_WebGL
- 2018-01-15 MON -
^ 2017-11-27 - Web Page Fonts
- custom web page fonts, Mozilla developers' article
- https://www.w3schools.com/charsets/ref_utf_arrows.asp . . . HTML special characters, arrows * http://www.starr.net/is/type/htmlcodes.html
^ 2017-11-28 - Javascript tutorials, examples and frameworks
-
Javascript frameworks . . .
- Mithril Javascript framework, simple application
- Mochikit framework . . . found 2017-12-07 in translate.google.com page source
Javascript tutorials and examples . . .
These are the first topics on which Ted wants to gather together notes. Hard to remember all details regarding pitfalls encountered, solutions found, and ideas for improving the configuration and use experience of these softwares . . . - TMH
PHP Libraries
Programmer James Heinrich has written a PHP library to thumbnail and manipulate image files in other ways. James' PHP library project is available at both GitHub and SourceForge,
To obtain a copy of this project,
$ git clone https://github.com/JamesHeinrich/phpThumb ./phpThumb
Chosen directory for downloaded instance of phpThumb is outside of web doc root. Will see whether this works . . . running in the 'demo' directory of phpThumb find that PHP's usable memory is set to -1, a seeming default value which likely won't allow phpThumb to work properly. Have per instructions installed ImageMagick utilities as available through Ubuntu 16.04.x LTS package list. The configuration checking script phpThumb/demo/phpThumb.demo.check.php
so far reports that no ImageMagick program found.
Also noticed that config checker says phpThumb cache directory present, readable but not writable. Created a /var/cache/phpThumb directory and amended file phpThumb/phpThumb.config.php
. Cache directory yet reported 'not writable'. Changed ownership on this directory from root:root to www-data:www-data. Ok now writable . . . and now ImageMagick also found! Hmm, interesting.
Demo files are a little hard to parse at first glance, which hashes of hashes set up to hold multiple demos shown in a single web document. The following phpThumb demo file at SourceForge is also part of our download. This looks like best starting point to get started and running with basic thumb-nailing of images:
http://phpthumb.sourceforge.net/index.php?source=phpThumb.demo.object.simple.php
About phpThumb file caching, this project file has important info starting at about line 135:
https://github.com/JamesHeinrich/phpThumb/blob/master/docs/phpthumb.readme.txt
"Note: phpThumb.php is where the caching code is located, if you instantiate your own phpThumb() object that code is bypassed and it's up to you to handle the reading and writing of cached files."
When using single object to process multiple images:
http://phpthumb.sourceforge.net/index.php?source=phpThumb.demo.object.php
Summary - phpThumb file edits to get simple demo working
We place phpThumb project files in <web_document_root>/lib/phpThumb. Here we edit two files, those named phpthumb.config.php
and phpthumb.class.php
. In the config file we set phpThumb's high security password to something non-null and long, non-dictionary word string:
45 $PHPTHUMB_CONFIG['high_security_password'] = '...';
In the class file we amend line 70 to name a relative path to a cache directory for phpThumb:
70 public $config_cache_directory = './cache'; // null;
We still can't make work the phpThumb.demo.demo.php
script. We seem unable to make a successful call to the primary script with HTTP 'get' type parameters. This is the script which manages thumbnail caching, the script named phpThumb.php
. . .
- 2018-03-06 TUE -
Excerpt from phpThumb.config.php:
222 // * Compatability settings 223 $PHPTHUMB_CONFIG['disable_pathinfo_parsing'] = true; // if true, $_SERVER[PATH_INFO] is not parsed. May be needed on some server configurations to allow normal behavior. 224 $PHPTHUMB_CONFIG['disable_imagecopyresampled'] = false; // if true, imagecopyresampled is replaced with ImageCopyResampleBicu bic. May be needed for buggy versions of PHP-GD. 225 $PHPTHUMB_CONFIG['disable_onlycreateable_passthru'] = true; // if true, any image that can be parsed by getimagesize() can be pas sed through; if false, only images that can be converted to GD by ImageCreateFrom(JPEG|GIF|PNG) functions are allowed 226 $PHPTHUMB_CONFIG['disable_realpath'] = false; // PHP realpath() function requires that "the running script must hav e executable permissions on all directories in the hierarchy, otherwise realpath() will return FALSE". Set config_disable_realpath= false to enable alternate filename-parsing that does not use realpath() function (but also does not resolve symbolic links) 227 228