{"id":30078,"date":"2017-05-07T03:01:33","date_gmt":"2017-05-06T17:01:33","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=30078"},"modified":"2017-05-08T18:57:35","modified_gmt":"2017-05-08T08:57:35","slug":"ssl-software-suite-changes-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/ssl-software-suite-changes-primer-tutorial\/","title":{"rendered":"SSL Software Suite Changes Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"https:\/\/www.rjmprogramming.com.au\/PHP\/PieChart\/pie_chart.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"SSL Software Suite Changes Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/ssl_google_charts.jpg\" title=\"SSL Software Suite Changes Primer Tutorial\"   \/><\/a><p class=\"wp-caption-text\">SSL Software Suite Changes Primer Tutorial<\/p><\/div>\n<p>It was kind of sad us not envisaging <a target=_blank title='SSL information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Transport_Layer_Security'>SSL<\/a> requirements down the track with a lot of our software here at RJM Programming.  Kind of sad, but also &#8220;kind of useful&#8221;, as we like to revisit code, and we&#8217;ll be soon outlining another reason, the essence of which is the platforms you work on can change their rules too.  But more on that later.  Today, we are showing you a semi-automated approach to compartmentalizing SSL change work to do by &#8230;<\/p>\n<ol>\n<li>Identify a &#8220;software set&#8221; as a &#8220;suite of software&#8221; in your mind to compartmentalize a big job into &#8220;littler job chunks&#8221; &#8230; ours, today, is our <a target=_blank href='https:\/\/developers.google.com\/chart\/' title='Google Charts'>Google Charts<\/a> interfacing (PHP) suite of software web applications, which all sit in subfolders off our RJM Programming domain&#8217;s public https:\/\/www.rjmprogramming.com.au\/PHP\/ web server place<\/li>\n<li>Download from the public (ours is Apache\/PHP\/MySql Linux CentOS virtual web server) domain everything (ie. more than you will actually alter) from that (hopefully up at the public domain) foldered web server file organizational structure, to a local web server (and ours is an Apache\/PHP\/MySql <a target=_blank href='http:\/\/mamp.info' title='MAMP Apache\/PHP\/MySql local web server'>MAMP<\/a> local web server on a Mac OS X MacBook Pro system) &#8230; we use the great <a target=_blank title='FileZilla (s)ftp' href='https:\/\/filezilla-project.org\/'>FileZilla<\/a> these days for this (s)ftp file transferring &#8230; serves two purposes &#8230;\n<ul>\n<li>at MAMP will be a backup of a snapshot in time of that &#8220;suite of software&#8221; (with all the context of both changed files, and ones that weren&#8217;t)<\/li>\n<li>a place to make lots of semi-automated edits and be able to validate those edits (via &#8220;php -l [phpFile]&#8221;) and, as required, unit test the changes via (local MAMP web server) URLs like ht<i><\/i>tp:\/\/localhost:8888\/PHP\/PieChart\/pie_chart.php<\/li>\n<\/ul>\n<\/li>\n<li>Make those semi-automated edits in equivalent of MAMP http:\/\/localhost:8888\/PHP ( which is \/Applications\/MAMP\/htdocs\/PHP on a lot of Mac OS X systems) via &#8230;\n<ul>\n<li>first round of &#8220;<a target=_blank title='Computerhope information about fgrep' href='https:\/\/www.computerhope.com\/unix\/ufgrep.htm'>fgrep<\/a> &#8216;file_get_contents(&#8216; *\/*.php&#8221; to check out a few exceptional cases where we&#8217;ll call into play the rule (around here) that we never, in an automated way, change uppercase &#8220;HTTP:&#8221; usages, which we&#8217;ll actually call into play for &#8220;file_get_content(&#8216;http:&#8221; scenarios (we discovered the issue with back at <a target=_blank title='SSL Recent Post ImageMagick Thumbnail Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ssl-recent-post-imagemagick-thumbnail-tutorial\/'>SSL Recent Post ImageMagick Thumbnail Tutorial<\/a>)<\/li>\n<li>main round of lots of strung together (aided by the Terminal application&#8217;s Edit menu&#8217;s Copy and Paste options) &#8220;<a target=_blank title='Computerhope information about fgrep' href='https:\/\/www.computerhope.com\/unix\/uvi.htm'>vi<\/a>&#8221; commands of relevant PHP files to edit in that &#8221; &lt;ESC&gt; key &#8230; g\/http:\/s\/\/\/g &#8230; wq! &#8221; approach<\/li>\n<\/ul>\n<\/li>\n<li>Upload to the public (ours is Apache\/PHP\/MySql Linux CentOS virtual web server) domain each relevant (MAMP) local web server folder&#8217;s most recently changed PHP files (aided by FileZilla&#8217;s Date Modified sorting functionality)<\/li>\n<\/ol>\n<p>This approach above is obviously just a guideline, and you may prefer to involve source control, or have to.  Either way, there will be a Downloading aspect, and a Make Changes aspect and an Uploading aspect to many of the approaches out there to achieve the same ends.<\/p>\n<p>Again, though, we have to emphasise here, how good is <a target=_blank title='http:\/\/mamp.info' title='MAMP Apache\/PHP\/MySql local web server'>MAMP<\/a> &#8230; so &#8230; &#8220;How good is MAMP, <strike>man<\/strike> person!?&#8221; &#8230; (the installing of which would have to be) the first piece of advice we&#8217;d ever suggest to anyone interested in PHP development &#8230; I&#8217;d even say the same to people who only want to get into HTML and Javascript only, as it is really good just to have this local web server going on, as much as anything for testing purposes in a local web server system using proper http: protocol URLs at the web browser address bar.  You can see some of all this happening with our <a target=_blank title='Click picture' href='http:\/\/www.rjmprogramming.com.au\/PHP\/ssl_google_charts.jpg'>tutorial picture<\/a> today.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d30078' onclick='var dv=document.getElementById(\"d30078\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/ssl\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d30078' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>It was kind of sad us not envisaging SSL requirements down the track with a lot of our software here at RJM Programming. Kind of sad, but also &#8220;kind of useful&#8221;, as we like to revisit code, and we&#8217;ll be &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/ssl-software-suite-changes-primer-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,29,33,37],"tags":[128,234,355,360,417,2007,450,469,513,519,714,725,744,932,997,999,1129,1166,1682,2056,1252,1319,1343,1368,1411],"class_list":["post-30078","post","type-post","status-publish","format-standard","hentry","category-elearning","category-operating-system","category-software","category-tutorials","tag-backup","tag-command-line","tag-domain","tag-download","tag-fgrep","tag-filezilla","tag-folder","tag-ftp","tag-google","tag-google-charts","tag-local-web-server","tag-mac-os-x","tag-mamp","tag-php","tag-programming","tag-project","tag-sftp","tag-software-2","tag-ssl","tag-suite","tag-terminal","tag-tutorial","tag-upload","tag-vi","tag-web-server"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/30078"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=30078"}],"version-history":[{"count":14,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/30078\/revisions"}],"predecessor-version":[{"id":30118,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/30078\/revisions\/30118"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=30078"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=30078"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=30078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}