
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Plesk &#8211; Conetix</title>
	<atom:link href="https://testing.conetix.com.au/blog/category/plesk/feed/" rel="self" type="application/rss+xml" />
	<link>https://testing.conetix.com.au</link>
	<description>Premier Web Hosting Provider</description>
	<lastBuildDate>Wed, 22 Jan 2025 11:31:56 +0000</lastBuildDate>
	<language>en-AU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://testing.conetix.com.au/wp-content/uploads/favicon.png</url>
	<title>Plesk &#8211; Conetix</title>
	<link>https://testing.conetix.com.au</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>6 of our favourite Plesk WordPress Toolkit features</title>
		<link>https://testing.conetix.com.au/blog/6-of-our-favourite-plesk-wordpress-toolkit-features/</link>
		
		<dc:creator><![CDATA[Jamin Andrews]]></dc:creator>
		<pubDate>Wed, 25 Aug 2021 05:30:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[update wordpress]]></category>
		<category><![CDATA[wordpress themes]]></category>
		<guid isPermaLink="false">https://conetix.com.au/?p=14868</guid>

					<description><![CDATA[Plesk WordPress Toolkit is a useful hosting tool that adds powerful yet simple management functionality to your WordPress website. If you are a web developer, the WordPress Toolkit can ease your workload by setting up WordPress with a single click. Plesk WordPress Toolkit is useful to clone, sync, update, and carry out complex tasks in...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/6-of-our-favourite-plesk-wordpress-toolkit-features/" title="Read 6 of our favourite Plesk WordPress Toolkit features">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[
<p>Plesk WordPress Toolkit is a useful hosting tool that adds powerful yet simple management functionality to your WordPress website. If you are a web developer, the WordPress Toolkit can ease your workload by setting up WordPress with a single click.</p>



<p>Plesk WordPress Toolkit is useful to clone, sync, update, and carry out complex tasks in a simple straight-forward manner. It permits users to test plugins and themes without developing them on a live site. Furthermore, the Plesk WordPress Toolkit can help ensure your site’s security.</p>



<h2 class="wp-block-heading">Plesk WordPress Toolkit offers Smart Updates</h2>



<p>Plesk WordPress toolkit provides one dashboard to mass-manage updates for your WordPress websites. WordPress updates can impact your website’s security, so your WordPress themes and plugins must stay updated at all times. Smart Updates measures the impact an update might have on your website and advises whether you should proceed.</p>



<p>Smart Updates includes the following features:</p>



<ol class="wp-block-list"><li>Availability on a per-site basis.</li><li>Manual and automatic updates.</li><li>Site cloning to test updates without touching the production site.</li><li>Automatically determines if you should perform the update on the production site.</li><li>No impact updates: Until the user verifies the update, the production site remains unaffected.</li><li>Automatic updates: The production site remains unaffected until there are no issues found.</li><li>Available for WordPress core updates, plugins, and themes.</li></ol>



<p>Benefits of Smart Updates:&nbsp;</p>



<ol class="wp-block-list"><li><strong>Automated updates: </strong>Smart Updates searches for new updates. It checks the update results on a clone of your website. It will then update your website, plugins, and themes.</li><li><strong>Automated testing:</strong> It runs the update on a website clone. Smart Updates tests the website for bugs and errors.</li><li><strong>You are always in charge:</strong> You will get an alert about the test results. Updates will not sync if the automated regression testing tool finds a broken site after the test run.</li></ol>



<h2 class="wp-block-heading">Staging Sites in the Plesk WordPress Toolkit</h2>



<p>Website updates mean taking the website offline and activating maintenance mode, resulting in lost business, weak customer experiences, and time wasted. You can leverage website staging to test your website, or changes to it, before publishing. Plesk provides a testing environment for websites.</p>



<p>To update a production website, you need a staging environment. This permits website owners to get a complete copy of the production website and experiment on the staging site without breaking the production website.</p>



<p>Creating a staging environment and syncing it with the production site is a complex process. The WordPress Toolkit includes single-click cloning so that you can attain this with little hassle. You can protect the staging environment with a password to limit access to new content and settings.</p>



<p>You can use the clone features to:</p>



<ol class="wp-block-list"><li>Create a staging environment to update your production site.</li><li>Publish a website that you were developing after achieving a milestone.</li><li>Allow the client to choose from many versions of the same website.</li><li>Clone an existing website to use as a template for future projects.</li></ol>



<p>Once the changes are complete, you can sync to production. In WordPress Toolkit, this only takes one click.</p>



<h2 class="wp-block-heading">Backup and restore with the Plesk WordPress Toolkit</h2>



<p>Here is what you can achieve with the Plesk WordPress Toolkit:</p>



<ul class="wp-block-list"><li>Create a restore point before updating.</li><li>Restore your WordPress site from the restore point.</li><li>Download the restore point.</li></ul>



<p>Plesk supports two types of backups:</p>



<ol class="wp-block-list"><li><strong>Plesk Backup:</strong> Full subscription backup.</li><li><strong>WordPress Backup via Toolkit:</strong> This backup contains data on just your WordPress backup.</li></ol>



<p>Auto restore point created when using Smart Update.</p>



<p>You can store backups in:&nbsp;</p>



<ol class="wp-block-list"><li>Your hosting storage.</li><li>External File Transfer Protocol (FTP) storage.</li></ol>



<p>Customers may differentiate between backups created by them and technical backups included in their subscription. If any backup task is incomplete, Plesk displays the detailed error in a separate field. Additionally, sensitive data in your backups will be safe with password protection.</p>



<p>You can set up a backup password from:</p>



<ul class="wp-block-list"><li>Your remote storage settings.</li><li>While downloading a backup file from Plesk to another external location.</li></ul>



<h2 class="wp-block-heading">Plugin management in the Plesk WordPress Toolkit</h2>



<p>WordPress plugins are pre-coded apps that merge with your WordPress website to deliver extra functionality. With WordPress Toolkit, you can install, manage, and update plugins.</p>



<p>You can install free and paid plugins from the WordPress repository. If you are unable to find a suitable plugin, you can upload custom plugins. You can install, activate or deactivate plugins for WordPress installations hosted on the server.</p>



<p>You can update plugins for as many installations or set up auto-updates for plugins. You can also remove plugins from one or all installations hosted on the server.</p>



<h2 class="wp-block-heading">Theme management in the Plesk WordPress Toolkit</h2>



<p>WordPress themes are a set of files that change the website’s appearance. Themes control the site’s layout and hyperlink colours. A WordPress theme changes the website design, such as colours, fonts, and layout.</p>



<p>By choosing a different theme, you can change the look and feel of your website. WordPress Toolkit allows users to install, manage, and update WordPress themes.&nbsp;</p>



<p>You can install free and paid themes from the WordPress repository. You can also upload custom themes if you cannot find a suitable theme. But, a WordPress installation can have only one active theme.</p>



<p>Users can update free and paid themes through the WordPress admin dashboard and update themes or set up auto-updates. You can also remove themes from specific or all installations hosted on the server.&nbsp;</p>



<h2 class="wp-block-heading">Plesk WordPress Toolkit security measures</h2>



<p>Plesk WordPress Toolkit can improve WordPress installation security. Individual improvements made to the installation’s security are ‘measures’. Specific measures are crucial. Plesk WordPress Toolkit applies critical measures to newly generated installations.</p>



<p>These security messages may appear on the installation card:</p>



<ul class="wp-block-list"><li><strong>‘Fix security’: </strong>You are not using all the recommended and crucial security measures.</li><li><strong>‘Check security’: </strong>You are using all the crucial security measures. But, you are not using some recommended measures.</li><li><strong>‘View settings’: </strong>You are using all the security measures.</li></ul>



<p>Some security measures can break your site. If this occurs, you can simply revert some of the security measures. However, some security measures cannot be reverted, so you should backup your site before securing it.</p>



<h2 class="wp-block-heading">Leverage the Plesk WordPress Toolkit with Conetix</h2>



<p>We believe that developers and businesses alike can greatly benefit from the features in Plesk’s WordPress Toolkit. Our WordPress hosting plans include the Plesk WordPress Toolkit right out of the box.&nbsp;</p>



<p>Learn more about the Plesk WordPress Toolkit and how you can <a href="https://testing.conetix.com.au/wordpress-toolkit-4-0/">leverage it with Conetix</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Plesk Obsidian: Top  New Features</title>
		<link>https://testing.conetix.com.au/blog/plesk-obsidian-top-new-features/</link>
		
		<dc:creator><![CDATA[Tim Butler]]></dc:creator>
		<pubDate>Mon, 13 Jan 2020 06:00:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[obsidian]]></category>
		<category><![CDATA[plesk]]></category>
		<category><![CDATA[server management]]></category>
		<guid isPermaLink="false">https://conetix.com.au/?p=8808</guid>

					<description><![CDATA[Overview Plesk have been busy taking the base of their Onyx platform (see our previous article covering the new features) and putting a lot of development time into this latest release. Known as Obsidian, this release extends the focus on the modern web stack and brings in a number of key features which will be...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/plesk-obsidian-top-new-features/" title="Read Plesk Obsidian: Top  New Features">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Overview</h2>



<p>Plesk have been busy taking the base of their Onyx platform (see our <a href="https://testing.conetix.com.au/blog/whats-new-plesk-onyx/">previous article</a> covering the new features) and putting a lot of development time into this latest release.</p>



<p>Known as Obsidian, this release extends the focus on the modern web stack and brings in a number of key features which will be important for hosting providers, agencies, developers and end users.</p>



<p>Having tested the release during it&#8217;s development cycle, Conetix has already begun the roll-out across all of our servers. </p>



<p>In this post, we&#8217;ll cover a number of our top features we&#8217;ve been looking forward to.</p>



<h2 class="wp-block-heading">New Look and Feel</h2>



<p>The new Obsidian interface is familiar for those who have used Onyx, yet many areas have received a refreshed look to be simpler and easier to navigate. </p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="618" src="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-1024x618.png" alt="" class="wp-image-8822" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-1024x618.png 1024w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-300x181.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-768x463.png 768w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-50x30.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-32x19.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-64x39.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui-128x77.png 128w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-new-ui.png 1553w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>While the changes appear subtle at first, this is also a sign of great design. It also means that there&#8217;s no additional user training required, anyone already familiar with Plesk can jump straight back in without any retraining required.</p>



<h2 class="wp-block-heading">Improved PHP Composer Support</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="472" src="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-1024x472.png" alt="Plesk Obsidian - Composer with full Laravel Support." class="wp-image-8824" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-1024x472.png 1024w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-300x138.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-768x354.png 768w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-50x23.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-32x15.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-64x29.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer-128x59.png 128w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-laravel-composer.png 1311w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>No longer just a basic add-on, the Composer system within Plesk is now a first class citizen. Composer has evolved to be the dependency manager of choice for PHP and used by popular frameworks such as Laravel.</p>



<p>With complete dependency and package management built in, the Composer UI can automatically handle your deployments without ever having to go near a command line.</p>



<p>The new 2.0 Composer automatically reads your <em>composer.json</em> file to find the dependencies and can therefore install them all automatically for you.</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="330" src="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-1024x330.png" alt="" class="wp-image-8823" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-1024x330.png 1024w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-300x97.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-768x247.png 768w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-50x16.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-32x10.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-64x21.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages-128x41.png 128w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-composer-packages.png 1541w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>All of the modern development requirements such as choosing between dev and production as well as setting environment variables is completely handled by the Plesk UI too.</p>



<h2 class="wp-block-heading">SNI for Email</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="311" src="https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-1024x311.png" alt="Plesk Obsidian SNI" class="wp-image-8851" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-1024x311.png 1024w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-300x91.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-768x233.png 768w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-50x15.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-32x10.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-64x19.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni-128x39.png 128w, https://testing.conetix.com.au/wp-content/uploads/2019/10/fullwidh-visual_sni.png 1500w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The push for SSL encryption for all mail services has been a good thing from a security perspective, but has lead to a lot of confusion and change for end users. Known as <a href="https://en.wikipedia.org/wiki/Server_Name_Indication">Server Name Indication</a> or SNI for short, this feature means that your Plesk server can now use more than one SSL certificate for email. </p>



<p>Instead of customers connecting to the name of their server, with a valid SSL certificate they can use the root of their domain or even <em>mail.&lt;theirdomain&gt;.com.au</em> as their nameserver and the certificate will be valid. This is especially handy on all Apple devices and newer copies of Microsoft Outlook, where the valid SSL certificate is enforced.</p>



<h2 class="wp-block-heading">Autodiscover for Email</h2>



<p>Again taking from the SNI enhancements, Obsidian makes it easier again for users to configure their mail clients. The Autodiscover will work for all Outlook versions as well as Mozilla Thunderbird. Instead of users having to remember what name to enter for their mail client and what ports, SSL settings and so forth to set the autodisovery within their mail client will automatically retrieve these settings from the server.</p>



<p>The end result is easier setup for the client, which in turn leads to happier clients and less support requests. It&#8217;s a win-win!</p>



<p>The latest micro-update (18.0.23) also adds easy configuration for Apple devices as well, easing the support burden of clients adding new email boxes.</p>



<h2 class="wp-block-heading">Advanced Monitoring</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="482" src="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-1024x482.png" alt="Plesk Obsidian - Advanced Monitoring - Grafana" class="wp-image-8810" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-1024x482.png 1024w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-300x141.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-768x361.png 768w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-50x24.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-32x15.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-64x30.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana-128x60.png 128w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-grafana.png 1488w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As long term users of <a href="https://grafana.com/">Grafana</a> for our internal metrics platform, this gets a big thumbs up from us. The previous Server Health Monitor while helpful, it simply didn&#8217;t have the ease of use nor the fidelity that Grafana provides for metrics.</p>



<p>Plesk have not only integrated it within the main admin UI (ie, with the same look and feel as the rest of the Plesk Admin) but also allow it to be accessed directly.  Again, this comes down to the level of polish and enhancement that Plesk have put into Obsidian.</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="620" height="408" src="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification.png" alt="Plesk Obsidian - Advanced Monitoring - Notifications" class="wp-image-8809" srcset="https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification.png 620w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification-300x197.png 300w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification-50x33.png 50w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification-32x21.png 32w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification-64x42.png 64w, https://testing.conetix.com.au/wp-content/uploads/2019/09/plesk-obsidian-advanced-monitoring-notification-128x84.png 128w" sizes="auto, (max-width: 620px) 100vw, 620px" /></figure>



<p>Even the notifications for any server health issues have been updated, which is (again!) a very welcome change. Our prediction is that Plesk will continue to enhance the monitoring here and we can&#8217;t wait to see how it evolves over the next 12 months.</p>



<h2 class="wp-block-heading">Backup Optimisation</h2>



<p>In previous editions, if you ran server wide backups then the server needed at least the same amount of space required spare as it did files for the temporary archive. </p>



<p>For example, if you had 30GB of files, databases and email then to run a server wide backup you required 30GB of free space. This was quite inefficient, especially at a hosting level where you have hundreds of servers running. </p>



<p>With the latest Obsidian release, this additional space requirement is simply as two subscriptions worth not an entire server&#8217;s worth. In addition to this, many aspects of the backup functionality has had significant performance enhancements. Browsing backups stored on FTP or other remote systems is back down to seconds instead of minutes.</p>



<h2 class="wp-block-heading">There&#8217;s more to come&#8230;</h2>



<p>These are just our highlights, in amongst the updates are hundreds of other improvements as well. What&#8217;s more, we know that there&#8217;s still plenty of changes and enhancements yet to be rolled out as well.  </p>



<p><strong>Full release notes: </strong><a href="https://docs.plesk.com/release-notes/obsidian/whats-new/">https://docs.plesk.com/release-notes/obsidian/whats-new/</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What&#8217;s new Plesk Onyx WordPress Toolkit 2.0</title>
		<link>https://testing.conetix.com.au/blog/whats-new-plesk-wordpress-toolkit-20/</link>
		
		<dc:creator><![CDATA[Jamin Andrews]]></dc:creator>
		<pubDate>Tue, 28 Mar 2017 02:43:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[ony]]></category>
		<category><![CDATA[onyx]]></category>
		<category><![CDATA[plesk]]></category>
		<guid isPermaLink="false">https://conetix.com.au/whats-new-plesk-wordpress-toolkit-20/</guid>

					<description><![CDATA[The WordPress&#160;Toolkit was first introduced in Plesk 12.5 and has become one of the most used and valued Plesk extension.&#160;With WordPress Toolkit 2.0 we see some amazing&#160;changes that simplify&#160;and assist rapid development, deployment and management of WordPress&#160;instance. With almost 80% of new sites being developed being&#160;WordPress its no wonder a lot of focus has been...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/whats-new-plesk-wordpress-toolkit-20/" title="Read What&#8217;s new Plesk Onyx WordPress Toolkit 2.0">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>The WordPress&nbsp;Toolkit was first introduced in Plesk 12.5 and has become one of the most used and valued Plesk extension.&nbsp;With WordPress Toolkit 2.0 we see some amazing&nbsp;changes that simplify&nbsp;and assist rapid development, deployment and management of WordPress&nbsp;instance.</p>
<p>With almost 80% of new sites being developed being&nbsp;WordPress its no wonder a lot of focus has been placed on tools which help WordPress users.</p>
<blockquote>
<p>&quot;The ultimate tool to build, manage and secure your Website in one place!&quot;</p>
</blockquote>
<p>Some key features in the new WordPress Toolkit 2.0 include:</p>
<ul>
<li>Faster and Simpler Deployment</li>
<li>Clone</li>
<li>Sync</li>
<li>WordPress Debug Management</li>
<li>Better Auto Update Control</li>
<li>Migration of Remote &nbsp;Single&nbsp;WordPress&nbsp;instance</li>
<li>Site Indexing</li>
<li>Plesk Resellers</li>
<li>WP-CLI</li>
<li>API RPC + CLI Support</li>
</ul>
<h3>Faster and Simpler Deployment</h3>
<p><img decoding="async" alt="Plesk 17.5 WordPress Toolkit 2.0 WordPress Installer Screenshot" src="/wp-content/uploads/2017/03/28/wordpressinstall_1.png"" /><br />
The one-click installer makes installing WordPress&nbsp;simpler than ever before, Plesk now uses the WordPress.org repo&nbsp;and always downloads the latest version of WordPress. This means that you&#39;re always guaranteed to be installing the latest version. The installer&nbsp;does everything from start to finish including, creating a DB with a DB user, creates an admin account in WordPress and initialises WordPress so that it&rsquo;s fully ready for use out of the box.</p>
<h2>Clone a WordPress instance</h2>
<p><img decoding="async" alt="Plesk 17.5 WordPress Toolkit 2.0 Clone Screenshot" src="/wp-content/uploads/2017/03/28/plesk-onyx-clone.png"" style="height:691px; width:1094px" /><br />
Cloning an existing WordPress&nbsp;instance is time consuming&nbsp;and not a easy task with a lot of manual copying of files, creating of new databases and then manual command line actions to change site urls in database. With WordPress Toolkit 2.0 you can now create a clone of any WordPress instance to any domain or any subscription in Plesk.</p>
<p>The WordPress files and database are both cloned and the site&nbsp;URLs&nbsp;in the database are changed automatically. You have the&nbsp;same admin access credentials just accessing a&nbsp;different DB and new DB user, all automatically changed in <strong>wp-config.php</strong>. If you are cloning to a subdomain and it doesn&rsquo;t exist in Plesk yet, it will be created with all correct DNS records.&nbsp;Multisite&nbsp;instances can also be quickly cloned, but there are some limitations on&nbsp;subdomains&nbsp;located on Windows hosting.</p>
<p>The WordPress Clone feature in the new Toolkit is the single biggest time saving addition in this update, using the clone feature with the new sync feature rapid development and debug&nbsp;on a WordPress site has become simpler and quicker.&nbsp;</p>
<h2>Data Synchronisation&nbsp;&#8211; Sync</h2>
<p><img decoding="async" alt="Plesk 17.5 WordPress Toolkit 2.0 Sync Screenshot" src="/wp-content/uploads/2017/03/28/sync.jpg"" style="height:693px; width:1094px" /></p>
<p>In the development lifecycle&nbsp;process, it&nbsp;can be a challenging exercise to synchronise changes from your dev site to&nbsp;production.&nbsp;Within WordPress Toolkit 2.0 you have the ability to synchronise modified data between two WordPress instances. If you have several WordPress instances on your server, you can copy the modified data between these instances.</p>
<p>Not only can you chose what domains or sub domains you wish to sync changes to you can also select the sync options, either Files only, Files and Database or Database only. You also have options with your database sync to choose which database tables to copy. Options include Full database sync which is all tables or only selected tables or new tables. &nbsp;Files that are present on target but missing on source are not removed by default and as a safe guard the target instance is put into maintenance mode during the sync.</p>
<h2>WordPress Debug Management</h2>
<p>Debugging Websites&nbsp;can be time consuming and tricky, from the initial&nbsp;cloning of your production site to creating your dev environment and then manually changing the right WordPress files to display the right debug information. You also need to manually edit&nbsp;wp-config.php&nbsp;and remember what to edit. WordPress Toolkit 2.0 solves this problem by allowing you to manage all important debug options on a per instance basis from the GUI.</p>
<p>Debugging a WordPress site is as&nbsp;simple as cloning your production site and create a dev environment and turn on debugging from within Plesk Toolkit. The options below allow you to manage the native WordPress debugging tools, enabling and disabling these tools in the wp-config.php file:</p>
<ul>
<li>WP_DEBUG &#8211; Enable the main debug mode in WordPress</li>
<li>WP_DEBUG_LOG &#8211; Save all errors to the&nbsp;debug.log&nbsp;file inside the&nbsp;wp-content&nbsp;directory.</li>
<li>WP_DEBUG_DISPLAY &#8211; Show debug messages inside the HTML pages</li>
<li>SCRIPT_DEBUG &#8211; Force WordPress to use the non-minified versions of core CSS and JavaScript files. This is useful when you are testing changes made to .js and .css files.</li>
<li>SAVEQUERIES&nbsp;&#8211; Save database queries to an array that can be displayed to help analyse them. Note: that this will have a noticeable impact on the performance of your site, so it is not recommended to leave this option enabled when you are not debugging.</li>
</ul>
<p>You can also&nbsp;activate and deactivate each option individually as well. For more detail on&nbsp;<a href="https://codex.wordpress.org/Debugging_in_WordPress" target="_blank" rel="noopener noreferrer">Debugging_in_WordPress</a>, click on the link to WordPress.org&nbsp;article to for more information on these options.</p>
<blockquote>
<p>Work better, faster and safer!</p>
</blockquote>
<h2>WordPress AutoUpdates</h2>
<p>There has been a lot of confusion around the way WordPress&nbsp;Toolkit set its auto updates, in the past if you enabled auto updates in WordPress Toolkit, major and minor updates would be installed automatically, If you disabled auto updates in WordPress Toolkit only minor WordPress updates will be installed automatically which is the default WordPress behaviour.</p>
<p>In&nbsp;WordPress Toolkit 2.0 this is solved by the introduction of a clearer&nbsp;auto update settings for major and minor WordPress releases using the native WordPress&nbsp;commands like&nbsp;<strong>wp_auto_update_core</strong>.</p>
<p>So now you can choose to do major and minor updates or just minor updates or disable all automatic updates if you have an external update management system.</p>
<h2>Migration of Remote&nbsp;Single WordPress instance</h2>
<p><img decoding="async" alt="Plesk 12.5 WordPress Toolkit 2.0 Single WordPress Migration Screenshot" src="/wp-content/uploads/2017/03/28/wordpressimportoption.png"" style="height:782px; width:1115px" /><br />
Migrating&nbsp;clients from other providers can be reasonably tricky with the latest update&nbsp;to Migration Manager your customers WordPress&nbsp;website&nbsp;can be&nbsp;migrated to your infrastructure or server with only FTP login. All the WordPress&nbsp;files and database are migrated and the site is automatically added to WordPress Toolkit. To migrate you simply click on Website Importing Option and then add FTP credentials.</p>
<h2>Site Indexing</h2>
<p>When developing&nbsp;a new site and your&nbsp;Website&nbsp;isn&#39;t yet ready for public viewing, or simply creating a clone site for debug purposes, you do not want Google or other web crawlers to find it and index it in their search results.&nbsp;Plesk now allows you to index or not index your site by adding&nbsp;the &quot;noindex, nofollow&quot; tags to your website&#39;s header and adds the Disallow directive to the virtual robots.txt file.</p>
<h2>Password Protection&nbsp;</h2>
<p>Enable password protection to your staging site, allowing your team to develop and review your site before going live.</p>
<blockquote>
<p>&quot;We want to handle the stuff that we know so that people who want to use WordPress could focus on their actual end-goal: making the Website and creating content.&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8211; Plesk Development Team</p>
</blockquote>
<h2>Plesk Resellers</h2>
<p>Plesk&nbsp;Resellers&nbsp;now have the ability to manage&nbsp;all their clients WordPress&nbsp;instances from their single reseller login.&nbsp;This eliminates the reseller&nbsp;having to login to each of their clients WordPress instances to manage them and can be done from their WordPress Toolkit access.</p>
<h2>WP-CLI</h2>
<p>The previous version&nbsp;of the WordPress toolkit used a patched version&nbsp;of the WP-CLI which mean for the more advanced user you had little to no access directly to the WP-CLI commands. Now with WordPress Toolkit 2.0 this problem is solved with direct access to WP-CLI. You can run any available WP-CLI command for any given WordPress instance&nbsp;from a shell terminal.</p>
<h2>What&#39;s next?</h2>
<p>Like everyone we are always eager to see what&#39;s next, never satisfied&nbsp;we are always wanting more. <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Talking to the Plesk team about their vision and future plans I am here to tell you there are some exciting things on the cards.<br />
Backup is going to be a big focus which should assist in workflow for updates and management of WordPress sites and this is just one of the amazing features they are working on. &nbsp;There&#39;s also the ability for&nbsp;other extensions to talk directly with the WordPress Toolkit via the included API, so that third parties can extend the functionality even further. We look forward to seeing what&#39;s possible.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Odin Plesk 12.5 &#8211; What&#8217;s New?</title>
		<link>https://testing.conetix.com.au/blog/odin-plesk-125-whats-new/</link>
		
		<dc:creator><![CDATA[Jamin Andrews]]></dc:creator>
		<pubDate>Wed, 02 Sep 2015 05:51:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[plesk1]]></category>
		<category><![CDATA[plesk12]]></category>
		<guid isPermaLink="false">https://conetix.com.au/odin-plesk-125-whats-new/</guid>

					<description><![CDATA[In the first quarter of 2014 we saw the exciting new release of Plesk 12. As a Plesk 12 launch partner, Conetix was one of the first to review the changes and give feedback. We were impressed! With a complete re-think and re-design of Plesk, Plesk 12 gave us the features and toolsets we were looking for in a hosting...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/odin-plesk-125-whats-new/" title="Read Odin Plesk 12.5 &#8211; What&#8217;s New?">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>In the first quarter of 2014 we saw the exciting new release of Plesk 12. As a Plesk 12 launch partner, Conetix was one of the first to review the changes and give feedback. We were impressed! With a complete re-think and re-design of Plesk, Plesk 12 gave us the features and toolsets we were looking for in a hosting panel and more.</p>
<p>Plesk 12 was the new benchmark in hosting panels, with the introduction of 4 new Plesk versions all targeted at specific segments of the Web Professional market space, we saw great opportunities in the market that were now accessible to us as a hosting provider.  With new feature rich add-ons, such as a new security core, including Fail2ban and ModSecurity additional outgoing email control and more integration with ServerShield by CloudFlare. Plesk 12 also introduced a new WordPress management toolset, designed to help the Web Professional manage multiple WordPress instances including installations and security updates. In case you missed the Plesk 12 release, a full breakdown of the new features can be found in our previous article <a href="https://www.conetix.com.au/blog/whats-new-parallels-plesk-12">What’s New in Parallels Plesk 12</a>. </p>
<p>With a solid foundation of Plesk 12, Odin has just announced the release their latest version 12.5. Plesk 12.5 was to be released as 12.1 however given the major improvements and revamp of the look and feel of Plesk Odin decided to release Plesk as 12.5. The exciting bit with Plesk 12.5 is that it is packed with features that have been requested and voted on by the Web Professional community. In essence, Plesk 12.5 is the Web Professionals own creation.</p>
<p>Here are some of the major feature improvements and additions to Plesk 12.5.</p>
<h2>New look and feel</h2>
<p>The first thing you will notice is the new look and feel with a more modern slicker colour scheme plus the new Odin branding. The interface is more intuitive with this change  which is surprising considering that the layout remains the same the only real change is Plesk 12.5 now has some real style.</p>
<p><strong>New Home View</strong><br />
<img decoding="async" alt="Plesk 12.5 Home Screen" src="/wp-content/uploads/2015/09/02/plesk-125-overview-screenshot.png" style="height: 766px; width: 1211px;" /></p>
<p><strong>New Domain View</strong></p>
<p><img decoding="async" alt="Odin Plesk 12.5 Domain Overview" src="/wp-content/uploads/2015/09/02/domain-overview-plesk-125.png" style="height: 769px; width: 1211px;" /></p>
<h2>Support for Multiple PHP Versions</h2>
<p>The single biggest feature request for Plesk has been the ability to run multiple PHP versions that can be managed by Plesk itself. You now no longer need to compile and modify your Plesk server via command line. Plesk 12.5 now comes with support for multiple versions of PHP out of the box. This new feature is available for both Windows and Linux. We did see an early release of this feature in Plesk 12 however 12.5 adds more refinement and options.</p>
<p>Plesk 12.5 ships with the following PHP versions:</p>
<blockquote>
<p>5.2,  5.3 , 5.4,  5.5,  5.6</p>
</blockquote>
<p>With this new multiple PHP support as standard in Plesk 12.5 as soon as PHP 7 is released Plesk 12.5 will support it. For more details on PHP 7 here is an article: <a href="https://www.conetix.com.au/blog/php-7-sneak-peek">PHP 7 &#8211; A Sneak Peek by Matthew Setter</a></p>
<p>To access your server wide PHP Settings, Plesk now has a new tab under Tools &amp; Settings &#8211; General Settings &#8211; PHP Settings. You can view each PHP handler and how many domains are running that version of PHP. You can also install additional handlers using the Plesk Installer link.</p>
<p><img decoding="async" alt="PHP Settings in Plesk 12.5" src="/wp-content/uploads/2015/09/02/php-settings-overview.png" style="height: 769px; width: 1216px;" /></p>
<p>You also have the ability to drill into individual PHP Settings and manage what PHP modules you wish to use, independently for every PHP version and handler type.</p>
<p><img decoding="async" alt="PHP Extensions Plesk 12.5" src="/wp-content/uploads/2015/09/02/php-settings-for-phptype.png" style="height: 765px; width: 1211px;" /></p>
<p>You can also modify the php.ini file for any PHP handler, you just need to be careful as this can affect all domains using that specific handler.</p>
<p><img decoding="async" alt="PHP ini settings in Plesk 12.5" src="/wp-content/uploads/2015/09/02/phpini-file-changes.png" style="height: 789px; width: 1204px;" /></p>
<h2>Improved PHP Support</h2>
<p>PHP support was improved in a number of ways in Plesk 12.5 to better suit PHP developers and their development practices. Administrators can choose the list of PHP modules to use for every combination of PHP version and handler type.<br />
With this improvement, Administrators and resellers can also define whether their customers will be able to select PHP versions and PHP handlers for their sites. The corresponding permission is available in service plans and subscription settings. It can be managed from Plesk, as well as by means of command-line tools and XML-API requests. </p>
<p>The following features and improvements were introduced:</p>
<p><a href="https://php.net/manual/en/book.opcache.php">Opcode cache</a> modules support was added.</p>
<p>opcode cache is a system to cache the result of the PHP code compilation to bytecode. The system then can use the bytecode instead of compiling on every request. Different <strong>opcode cache</strong> systems are available, mostly depending on used PHP version. The support for  APC (Alternative PHP Cache) and Zend OPcache modules, as well as WinCache was added in Plesk 12.5. PHP accelerators substantially increase the speed of PHP applications. Improvements of web page generation throughput by factors of two to seven have been observed.</p>
<p><a href="https://php-fpm.org/">php-fpm</a> support for Apache 2.4 was added.</p>
<p>According to the official Apache documentation, using PHP-FPM is the recommended way to run PHP under Apache 2.4. PHP-FPM is now set to be the default PHP handler when Apache 2.4 is installed on the server. Now it is also available for selection in the PHP handler list in individual domains&#8217; web hosting settings, as well as in the service plan settings.</p>
<h2>Domain Level PHP Support</h2>
<p>With server wide improvements your clients and you now can control individual domains and what PHP versions you wish to run, via Website &amp; Domains &gt; PHP Settings in your domain webspace.</p>
<p><img decoding="async" alt="Domain Settings for PHP in Plesk 12.5" src="/wp-content/uploads/2015/09/02/php-settings-php-support.png" style="height: 795px; width: 1204px;" /></p>
<p>You can also choose what you wish PHP to run as.</p>
<p><img decoding="async" alt="Run PHP as in Plesk 12.5" src="/wp-content/uploads/2015/09/02/php-settings-run-as.png" style="height: 790px; width: 1207px;" /></p>
<h2>Improved Database Management</h2>
<p>Database management in Plesk 12.5 has been improved considerably, you can now completely manage your databases from the Plesk GUI giving users easy self-management capability. Some Database management improvements are below the surface, Plesk 12.5 now includes new command line tools to check database connectivity over the network plus a new Plesk repair tool to resolve inconsistencies between Plesk and MySQL or Microsoft SQL server databases. Using the new Plesk repair tool you can restore databases, database users and database user credentials. You can also check disk space usage of remote databases.</p>
<p>The User Interface (UI) of the Databases tab was re-worked to make it more intuitive, and make it easier for users to manage databases.</p>
<p><img decoding="async" alt="Database User Screen in Plesk 12.5" src="/wp-content/uploads/2015/09/02/database-user-screen.png" style="height: 792px; width: 1204px;" /></p>
<p>Users can now download and upload database dumps in native format using the Plesk interface. This is a marked improvement compared to the previous mechanism which involved the use of phpMyAdmin or myLittleAdmin, these options are still available via direct link in Plesk 12.5 UI.</p>
<p><img decoding="async" alt="Plesk 12.5 Export Dump for Database" src="/wp-content/uploads/2015/09/02/exportdumpsql.png" style="height: 791px; width: 1202px;" /></p>
<p>The list of databases belonging to a subscription now includes short summaries for each database, including the database server, names of the assigned database users, the number of tables, and the size of the database. This provides the users with information at a glance, without the need to click on the database or drill down into menus.</p>
<p>A mechanism allowing users to check the integrity of database tables and resolve some issues automatically was implemented. It enables users to troubleshoot issues with databases faster and possibly resolve them without manual intervention.</p>
<p>The ability to move databases between subscriptions was added in Plesk 12.5. Customers can reassign databases they own between their subscriptions, while the Plesk administrator can reassign databases between all subscriptions on the server.</p>
<h2>Scheduled Tasks</h2>
<p>Task scheduler user interface was re-worked to make it more intuitive. Configuring the time and date at which a task is to run is much more straightforward, and notifications can now be configured on a per-task level.</p>
<p>Scheduled tasks are now divided into three broad categories:</p>
<ul>
<li>Run a command</li>
<li>Fetch a URL</li>
<li>Run a PHP script</li>
</ul>
<p>This helps users to more easily configure a task of the desired type.</p>
<p><img decoding="async" alt="Plesk 12 .5 Scheduled Tasks" src="/wp-content/uploads/2015/09/02/scheduled-tasks.png" style="height: 793px; width: 1203px;" /></p>
<h2>Improved Site Preview</h2>
<p>The default site preview mechanism was reworked. Users now face far fewer restrictions on the type of content that can be viewed in the preview mode. In addition, the preview link now works outside of Plesk by default.</p>
<h2>Log Browser</h2>
<p>Users can now troubleshoot issues with their websites by parsing web server logs and displaying error messages and warnings. This saves the user the trouble of manually searching through the web server logs for error messages.  This feature would be one of the most useful additions for developers and web hosts, you can not only easily search on specific errors, times, IP&#8217;s and days, you can see logs in real time, using the real time updates button.</p>
<p><img decoding="async" alt="Plesk 12.5 Logs" src="/wp-content/uploads/2015/09/02/logs.png" style="height: 792px; width: 1202px;" /></p>
<h2>Incremental Backups Support</h2>
<p>Another much-requested feature implemented in Plesk 12.5 is the support for incremental backups. An incremental backup, as compared to a full one, both takes up much less disk space and finishes much faster. This functionality enables the Plesk administrator to both drastically save on disk space used for customer backups and significantly reduce the server load. The backup operation is fairly resource-consuming, so making a full backup of every domain on the server can noticeably increase the load on the server for a few hours. Creating incremental backups instead solves this issue.</p>
<p><img decoding="async" alt="Scheduled Backups" src="/wp-content/uploads/2015/09/02/scheduledbackups.png" style="height: 789px; width: 1202px;" /></p>
<h2>Additional Backup Security Options</h2>
<p>With more focus on incremental backups and improvements all round with Plesk 12.5 backup system there is a real need to secure your backup. Plesk 12.5 now gives you the ability to protect your data contained in backups. You have two options, one is to use Plesk own encryption key which limits recovery only to the Plesk server where the backup was originally created, or specify your own password. It is recommended to specify your own password so you can recover your backup on any Plesk 12.5 installation.</p>
<p><img decoding="async" alt="Backup Security Options in Plesk12.1" src="/wp-content/uploads/2015/09/02/backupmanager.png" style="height: 914px; width: 1261px;" /></p>
<h2>Additional Security Add On Packs</h2>
<p>With the release of Plesk 12.5 we are going to see more security add-on packs available. These add-ons will be bundled services like ServerShield by CloudFlare, ModSecurity and Plesk AntiVirus to name a few.</p>
<p>In my next article I will go into more detail around additional Security Add On packs and outline some of the new key features and benefits.</p>
<h2>Other improvements worth a mention</h2>
<p>There are a lot of new improvements that are worth a mention below is just a few for a complete list of improvements and changes see the <a href="https://download1.parallels.com/Plesk/PP12/parallels-plesk-12.5-for-linux-change-log.html">Odin Plesk Change Log</a>.</p>
<ul>
<li>Cloudlinux 7 Support</li>
<li>Composer PHP Dependency Manager Support</li>
<li>Additional command line Plesk repair tools<br />
 </li>
</ul>
<h2>What&#8217;s next?</h2>
<p>Odins next major release of Plesk is slated for 2016 should bring a bunch of new features and core performance improvements, with the main focus on the Plesk App Edition. With this focus Odin plans to build a platform allowing more flexibility for the App developer.</p>
<p>If you have a feature you want to see in the future releases of Plesk you can submit your idea direct with Odin or leave your comments below and we will pass them onto Odin Plesk Developers.</p>
<p>You can see full release notes on latest Plesk 12.5 on the Odin Website. If you just want to have a play you can download Plesk 12.5 and install on your own server and if required purchase a key from Odin at <a href="https://www.plesk.com">Plesk.com</a> or <a href="https://www.conetix.com.au/services/plesk-licensing/">Conetix</a>.<br />
 <br />
Update: 31/10/2024 Full release notes of latest version of Plesk.  https://docs.plesk.com/release-notes/obsidian/change-log/  </p>
<blockquote>
<p>Plesk 12.5 Whats New? <a href="https://t.co/wuZtBmoM0S">https://t.co/wuZtBmoM0S</a> <a href="https://twitter.com/PleskbyOdin">@PleskbyOdin</a> <a href="https://t.co/yMpORpEgFQ">pic.twitter.com/yMpORpEgFQ</a></p>
<p>— Conetix (@conetix) <a href="https://twitter.com/conetix/status/651537684381462528">October 6, 2015</a></p></blockquote>
<p><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Getting Started With The Spark Framework on Plesk 12</title>
		<link>https://testing.conetix.com.au/blog/getting-started-spark-framework-plesk-12/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Tue, 07 Apr 2015 03:27:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[plesk12]]></category>
		<category><![CDATA[spar]]></category>
		<guid isPermaLink="false">https://conetix.com.au/getting-started-spark-framework-plesk-12/</guid>

					<description><![CDATA[In the world of web application development, especially rapid web application development, the names you usually hear of are PHP, Ruby, Ruby on Rails, Python, and, more recently, Go. The name you usually don&#8217;t hear, one rarely associated with web development, is Java. Java is usually associated with big iron servers in stock exchanges, intensive...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/getting-started-spark-framework-plesk-12/" title="Read Getting Started With The Spark Framework on Plesk 12">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>In the world of web application development, especially rapid web application development, the names you usually hear of are PHP, Ruby, Ruby on Rails, Python, and, more recently, Go. The name you usually don&rsquo;t hear, one rarely associated with web development, is Java.</p>
<p>Java is usually associated with big iron servers in stock exchanges, intensive mathematical calculations, or frontend GUI applications, which try to offer the same user interface experience across all platforms; though usually never quite making it.</p>
<p>Java is considered &ldquo;enterprise software&rdquo;, software which is typically complicated to develop, setup, test, and deploy. Recently, however, I came across a Java-based framework, one inspired by <a href="https://www.sinatrarb.com/">Sinatra</a>, which just may change that impression. It&rsquo;s called <a href="https://sparkjava.com/">Spark</a>.</p>
<p>In today&rsquo;s post, I&rsquo;m going to step you through setting it up on a Plesk 12 server, and show you how to create and deploy a basic web application.</p>
<p><strong>What Is Spark</strong></p>
<p>To keep it simple, here&rsquo;s what <a href="https://sparkjava.com/">the website</a> has to say:</p>
<p>Spark is a simple and lightweight Java web framework built for rapid development. Spark&rsquo;s intention isn&rsquo;t to compete with Sinatra, or the dozen of similar web frameworks in different languages, but to provide a pure Java alternative for developers that want to, or are required to, develop in Java.</p>
<p>Spark focuses on being as simple and straight-forward as possible, without the need for cumbersome (XML) configuration, to enable very fast web application development in pure Java with minimal effort. It&rsquo;s a totally different paradigm when compared to the overuse of annotations for accomplishing pretty trivial stuff seen in other web frameworks, for example, JAX-RS implementations.</p>
<p><strong>Plesk Web Hosting Setup and Database Creation</strong></p>
<p>The first thing we need to do is setup a new domain, or sub-domain. If you&rsquo;re not familiar with how to do this, <a href="https://www.conetix.com.au/support/article/how-to-create-a-new-client-and-subscription-in-ple">check out the quick guide</a> here on the Conetix blog. This will step you through everything.</p>
<p>It makes reference to creating a database. But in this tutorial, we don&rsquo;t need to worry about that. The guide needs you to supply a set of values as you step through; here&rsquo;s a handy set to help you out.</p>
<p><strong>Quick Note</strong></p>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<p><strong>Setting</strong></p>
</td>
<td>
<p><strong>Value</strong></p>
</td>
</tr>
<tr>
<td>
<p>Domain</p>
</td>
<td>
<p>spark.conetix.com</p>
</td>
</tr>
<tr>
<td>
<p>Path</p>
</td>
<td>
<p>&lt;default&gt;</p>
</td>
</tr>
</tbody>
</table>
<p>I&rsquo;ll assume, for the rest of this tutorial, that you&rsquo;re using the following values for your account; though please change them to suit your setup.</p>
<table cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td>
<p><strong>Setting</strong></p>
</td>
<td>
<p><strong>Value</strong></p>
</td>
</tr>
<tr>
<td>
<p>username</p>
</td>
<td>
<p>www-data</p>
</td>
</tr>
<tr>
<td>
<p>hostname</p>
</td>
<td>
<p>spark.conetix.com</p>
</td>
</tr>
<tr>
<td>
<p>path</p>
</td>
<td>
<p>/home/www-data/spark.conetix.com</p>
</td>
</tr>
</tbody>
</table>
<p><strong>Installing Java 1.8</strong></p>
<p>To get everything setup, you need to be running, at least, <a href="https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">Java 1.8</a>. If you&rsquo;re not sure what version you&rsquo;re running, from the command line, or terminal, run the command java -version. This should output something similar to the following:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash java version &quot;1.8.0_31&quot; Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)</pre>
<p>If you have an installed version less than 1.8, you need to install it, and the best way is via the package manager. Assuming that the base operating system is Centos/RedHat, then you can install Java using the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash sudo yum install java-1.8.0-openjdk-devel.x86_64
</pre>
<p>After that&rsquo;s done, you&rsquo;ll also have to create a new environment variable, JAVA_HOME, as it&rsquo;s required by Maven, which we&rsquo;ll install next, and not automatically created by the package manager. To do so, I suggest you update /etc/profile, so that the change is universal, and add the following, at the bottom of the file:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.31-1.b13.el6_6.x86_64</pre>
<p><strong>&nbsp;Installing Maven</strong></p>
<p>With Java installed or upgraded to at least version 1.8, we next need to install <a href="https://maven.apache.org/what-is-maven.html">Maven</a>. If you&rsquo;re not familiar with Maven, that&rsquo;s OK, but over the longer term, you&rsquo;re going to need to become familiar with it, if you want to develop more than hello world style applications using Spark.</p>
<p>But what is Maven? Paraphrasing <a href="https://maven.apache.org/">the Maven website</a> slightly:</p>
<p>Maven was originally started as an attempt to simplify the build processes in the Jakarta Turbine project. There was a desire to have a standard way to build projects, a clear definition of what the project consisted of, an easy way to publish project information, and a way to share JARs across several projects. The result is a tool that can now be used for building and managing any Java-based project.</p>
<p>Maven does the following five tasks for any Java project:</p>
<ul>
<li>Makes the build process easy</li>
<li>Provides a uniform build system</li>
<li>Provides quality project information</li>
<li>Provides guidelines for best practices development</li>
<li>Allows transparent migration to new features</li>
</ul>
<p>If you&rsquo;d like to become more familiar with Maven, there&rsquo;s an excellent <a href="https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html">5 minute tutorial</a>, which will bring you up to speed on it. Otherwise <a href="https://mirror.arcor-online.net/www.apache.org/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz">download Maven</a>, the latest version at the time of writing, is 3.2.5, and uncompress it. To save time, you can do this with the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash curl https://mirror.arcor-online.net/www.apache.org/maven/
maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz | tar zxv</pre>
<p>This will result in the directory, apache-maven-3.2.5, being created. With that done, move the uncompressed directory to /opt/maven. You can use the following command to save time:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash sudo mv apache-maven-3.2.5 /opt/ &amp;&amp; cd /opt &amp;&amp; sudo 
ln -s apache-maven-3.2.5 apache-maven</pre>
<p>Then you need to update your environment to include the apache-maven/bin directory in your path. If you&rsquo;re using Unix or Linux, then update your path similar to the below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash MAVEN_HOME=/usr/local/apache-maven; export PATH=$PATH&quot;:$MAVEN_HOME/bin&quot;;</pre>
<p>Now we need to test that Maven&rsquo;s available; which we can do by running the command below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash mvn -version</pre>
<p>This should give you output to that below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 
2014-12-14T18:29:23+01:00)
Maven home: /usr/local/apache-maven Java version: 1.8.0_31 Java home:
/System/Library/Java/JavaVirtualMachines/1.8.0.jdk/Contents/Home 
Default locale: en_US, platform encoding: MacRoman OS name: &quot;mac os x&quot;, 
version: &quot;10.10.2&quot;, arch: &quot;x86_64&quot;, family: &quot;mac&quot;</pre>
<p>If you see the output above, then we&rsquo;re ready to get started creating the application.</p>
<p><strong>Creating An Application</strong></p>
<p>We now have the infrastructure we need ready to go, so it&rsquo;s time to start creating an application. You can save time by cloning <a href="https://github.com/simonrice/SparkServletExample">the SparkServletExample repository from Simon Rice</a>. Run git clone https://github.com/simonrice/SparkServletExample.git in the subdomain directory to do so. This will form the basis of the code which will be reference throughout the remainder of the tutorial.</p>
<p>Where you do so doesn&rsquo;t really matter, so long as it&rsquo;s somewhere logical; though I suggest you clone it in your domain/sub-domain directory, which was created earlier when you setup a new sub-domain. I&rsquo;ll assume that you&rsquo;ve cloned it in the sub-domain directory. Given that, there&rsquo;ll be a new directory there, called SparkServletExample.</p>
<p>Go in to that directory and have a look around. There&rsquo;s not a lot to the repository, which you need to be concerned about, save for two files. These are:</p>
<ul>
<li>src/main/java/com/simonrice/sparkservletexample/HelloWorld.java</li>
<li>pom.xml</li>
</ul>
<p>HelloWorld.java, which you can see below, follows <a href="https://www.sinatrarb.com/">the Sinatra style</a>. It declares three routes, &#39;/&#39;, &#39;/hello&#39;, and &#39;/hello/:name&#39;, supplying <a href="https://en.wikipedia.org/wiki/Lambda_function">Lamda</a><a href="https://en.wikipedia.org/wiki/Lambda_function"> functions</a> as the second parameter, which will respond when any of the routes are requested. The first route, &#39;/&#39; will redirect to &#39;/hello&#39;, which just outputs the string &ldquo;Hello World&rdquo;.</p>
<p>The third route, &#39;/hello/:name&#39; takes a named parameter, &lsquo;:name&rsquo;, which will be assigned to a variable in the Request object. Assuming that the user requested &#39;/hello/matthew&#39;, then the route will output &#39;Hello, matthew!&#39;.</p>
<pre class="prettyprint lang-java " data-pbcklang="java" data-pbcktabsize="4">
package com.simonrice.sparkservletexample;

import spark.Request;
import spark.Response;
import spark.Route;
import spark.Spark;
import spark.servlet.SparkApplication;

public class HelloWorld implements SparkApplication {
  @Override
  public void init() {
    Spark.get(new Route(&quot;/&quot;) {
      @Override
      public Object handle(Request request, Response response) {
        response.redirect(&quot;/hello&quot;);
        return null;
      }
    });

    Spark.get(new Route(&quot;/hello&quot;) {
      @Override
      public Object handle(Request request, Response response) {
        return &quot;Hello World!&quot;;
      }
    });

    Spark.get(new Route(&quot;/hello/:name&quot;) {
      @Override
      public Object handle(Request request, Response response) {
        return  String.format(&quot;Hello, %s!&quot;, request.params(&quot;:name&quot;));
      }
    });
  }
}
</pre>
<p><strong>The POM.xml Configuration File</strong></p>
<p>Now let&rsquo;s look at pom.xml. This file is the Maven project configuration file, providing everything Maven needs to know to be able to manage the project. Let&rsquo;s look over the key sections. There&rsquo;s the initial configuration, down to repositories; this sets out the name of the project, the type of package to build (war).</p>
<p>Then we have the build information, which lists the plugins required to build and deploy the project. In our case, we have the maven-compiler-plugin, which is responsible for compiling the code, org.mortbay.jetty which is responsible for running the project, and org.apache.maven.plugins which gets the project ready to run.</p>
<p>Finally we have the dependencies. These are all the libraries which the code makes reference to. In this case, there&rsquo;s only one, Spark. This references <a href="https://mvnrepository.com/">the Maven repository</a>. So if you need to add further dependencies, you need to search for the package, then copy the dependency XML from the package page.</p>
<p><a href="https://mvnrepository.com/artifact/commons-logging/commons-logging/1.2">Here&rsquo;s an example</a> of searching for logging.</p>
<p><strong>Deploying The Application</strong></p>
<p>With that done, we now need to launch the deployment process, which will compile the source files, packaging them up in to a Jar file, and launch the <a href="https://eclipse.org/jetty/">Apache Jetty server</a>, which will listens for requests on port 8080. If you&rsquo;re not familiar with Apache Jetty, it&rsquo;s a Java HTTP (Web) server and Java Servlet container.</p>
<p>To get it started, run the following command in the root of the project directory:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash mvn jetty:run</pre>
<p>You&rsquo;ll likely see a lot of output, similar to that below, which I&rsquo;ve truncated for sakes of space.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash [INFO] &lt;&lt;&lt; jetty-maven-plugin:8.1.5.v20120716:run (default-cli) 
&lt; test-compile @ sparkServletExample &lt;&lt;&lt;
[INFO] [INFO] --- jetty-maven-plugin:8.1.5.v20120716:run (default-cli) 
@ sparkServletExample --- [INFO]
Configuring Jetty for project: Sample Spark Servlet Webapp 
[INFO] webAppSourceDirectory
/Users/mattsetter/Workspace/settermjd/Java/Maven/SparkServletExample/src/main/webapp
?does not exist.
Defaulting to /Users/mattsetter/Workspace/settermjd/Java/Maven/SparkServletExample/
src/main/webapp 
[INFO] Started Jetty Server</pre>
<p>If that&rsquo;s what you see, then Jetty is ready and listening for requests, so open up your browser to https://spark.conetix.com:8080 where you can test that everything is working.</p>
<p><strong>Setting Up Apache as a Reverse Proxy</strong></p>
<p>Assuming that everything went well, let&rsquo;s now setup Apache as a <a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a> to the Jetty server so that requests can be made without specifying the port.</p>
<p>This will have Apache pass all requests to the Spark sub-domain to our Spark application. Secondly, we need to create an initialisation shell script, to make sure that our Spark application is started when the server boots.</p>
<p>Thanks to the smooth Plesk 12 interface, configuring Apache as a reverse proxy is quite straight-forward. Under the hosting settings for the sub-domain, click <strong>Show More</strong> at the bottom.</p>
<p>Then click the second option, in the middle column, labeled <strong>Web Server Settings</strong>, which you see in the screenshot below.</p>
<p><img decoding="async" alt="Plesk 12 Spark Web Server settings Screenshot" src="/wp-content/uploads/2015/04/07/sparkwebserversetting.png"" style="height:452px; width:711px" /></p>
<p>Then, when the page&rsquo;s loaded, under <strong>Additional directives for HTTP</strong>, add the following configuration directives:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
ProxyRequests Off

&lt;Proxy *&gt;
Order deny,allow
Allow from all
&lt;/Proxy&gt;

ProxyPass / https://localhost:8080/
ProxyPreserveHost On</pre>
<p><img decoding="async" alt="http settings for proxy in Plesk 12" src="/wp-content/uploads/2015/04/07/proxysettingsforspark.png"" style="height:833px; width:905px" /></p>
<p><strong>Service Initialisation Script</strong></p>
<p>To keep this as simple as possible, use a script I created, available <a href="https://gist.github.com/settermjd/c0157202fd803d944993">in this Gist</a>. This will allow for the server to be both started and stopped as needed. Save that file in /etc/init.d as spark-service.</p>
<p>We now need to enable the script to be called at the correct <a href="https://www.centos.org/docs/5/html/5.2/Installation_Guide/s2-init-boot-shutdown-rl.html">runlevel</a>. To do so, run the following commands:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
chkconfig --level 345 spark-service on chkconfig --list | grep spark-service</pre>
<p>This will setup the script as required and do a quick validation that it was done successfully. You should see the following output:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
spark-service 0:off 1:off 2:off 3:on 4:on 5:on 6:off</pre>
<p><strong>&nbsp;Wrapping Up</strong></p>
<p>OK, that&rsquo;s a little bit of work, at least for the initial setup. But when it&rsquo;s complete, you&rsquo;ll have a setup in which you can deploy a large number of Spark/Java applications quite quickly, and reliably.</p>
<p>One which provides a standardised, effective, and efficient environment, supported and maintained by a large number of people. I hope you&rsquo;ll consider using the Spark Framework for your next application.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Integrating Plesk 12 with logentries</title>
		<link>https://testing.conetix.com.au/blog/integrating-plesk-12-logentries/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Tue, 31 Mar 2015 01:11:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[plesk1]]></category>
		<category><![CDATA[plesk12]]></category>
		<guid isPermaLink="false">https://conetix.com.au/integrating-plesk-12-logentries/</guid>

					<description><![CDATA[Recently, here on the Conetix blog, we began looking at configuring Plesk 12 to integrate with different logging options, ones outside of the standard setup, ones which can make it easier to stay abreast of what&#8217;s happening in your servers. I&#8217;m keen to give you a range of options so that when things go wrong,...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/integrating-plesk-12-logentries/" title="Read Integrating Plesk 12 with logentries">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>Recently, here on the Conetix blog, we began looking at configuring Plesk 12 to integrate with different logging options, ones outside of the standard setup, ones which can make it easier to stay abreast of what&rsquo;s happening in your servers.</p>
<p>I&rsquo;m keen to give you a range of options so that when things go wrong, as they invariably do, you can quickly ascertain what happened, and mitigate the issue.</p>
<p>We started off with the cloud-based service Loggly, one which I use and highly recommend. But whilst good, Loggly&rsquo;s not the only option available. There are others, one of which I&rsquo;m going to show you today. It&rsquo;s called <a href="https://logentries.com/">logentries</a>.</p>
<p><strong>What Is logentries</strong></p>
<p>Logentries, like Loggly, is a cloud-based Logging service, one which you only need to configure your existing servers to send their logs to, then periodically, or as needed, use the UI to search through the recorded data for the information you need.</p>
<p>It provides a range of features to let you do this quickly and intelligently, including:</p>
<ul>
<li>Real-time monitoring</li>
<li>Real-time alerting</li>
<li>Notifications to a range of existing services, such as <a href="https://pagerduty.com/">PagerDuty</a>, <a href="https://hipchat.com/">HipChat</a>, and <a href="https://newrelic.com/">New Relic</a></li>
</ul>
<p><strong>Getting Started</strong></p>
<p>Getting started is a lot like Loggly, though requires a number of steps to be performed, whereas Loggly provides a one-step configuration script. With logentries, you have to add a host, which will contain a log configuration, to which logs will be sent.</p>
<p>But before we begin, if you don&rsquo;t already have an account, first <a href="https://logentries.com/quick-start/">sign up for one</a>. Then, after you&rsquo;ve done that, login, and in the right hand column, click + Add New to start the process off, which you can see in the screenshot below.</p>
<p><img decoding="async" alt="Logentries on Plesk 12" src="/wp-content/uploads/2015/03/31/logentries-add-new-host.png"" style="height:632px; width:950px" /></p>
<p>Next, you&rsquo;ll be presented with the initial configuration screen. As I&rsquo;m assuming that your Plesk server&rsquo;s running on Linux, click the Linux option in the first row under &ldquo;<strong>Operating Systems</strong>&rdquo;.</p>
<p>Then, in the next screen, under &ldquo;<strong>What Type Of Log Do You Want To Configure?</strong>&rdquo;, click <strong>Syslog</strong>. You&rsquo;ll then be taken to the third screen, which allows you to specify the Syslog daemon you have running.</p>
<p><img decoding="async" alt="Logentries Which syslog screenshot" src="/wp-content/uploads/2015/03/31/logentries-which-syslog-service.png"" style="height:633px; width:948px" /></p>
<p>For the sakes of simplicity, I&rsquo;ve chosen Rsyslog, which is the current default on Centos/RedHat and Debian/Ubuntu installations. But if you have Syslogd or Syslog-ng, then choose those instead. Next, you have to do two things; firstly, you have to click &ldquo;<strong>Click here to add your new log to an existing host.</strong>&rdquo;.</p>
<p>This will then present you with a list of hosts, of which there should only be one. Click that, then click the large grey button at the bottom, labelled &ldquo;<strong>Configure my Syslog</strong>&rdquo;. This will give you the settings you need to configure Syslog to start sending it&rsquo;s log information to your logentries account.</p>
<p><img decoding="async" alt="Logentires rsyslog Screenshot" src="/wp-content/uploads/2015/03/31/logentries-configure-rsyslog-server.png"" style="height:669px; width:960px" /></p>
<p>The configuration does say &ldquo;<strong>Place the following at the bottom of your rsyslog config file at /etc/rsyslog.conf</strong>&rdquo;. But I suggest instead ignoring this and creating a new file under /etc/rsyslog.d, called logentries.conf, and instead adding the configuration there.</p>
<p>This way it&rsquo;s easier to find and to manage. Once done, you then need to restart Rsyslog, which you can do by running sudo service rsyslog restart. That&rsquo;s the configuration take care of. Now it&rsquo;s time to get some logs in to your account.</p>
<p>If your Plesk server has a number of services and daemons already running, then you can likely just wait a minute or two. However, if you&rsquo;d like to rush, then you can run the following command, which will add an entry for you:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
bash logger -t test Hello there logentries it&#39;s Plesk 12 calling</pre>
<p><strong>Searching For Data</strong></p>
<p>Now that data&rsquo;s being sent to logentries, it&rsquo;s time to get familiar with the UI so you know how to find what you&rsquo;re after. As I mentioned at the start of the article, the UIs of Loggly and logentries are reasonably similar.</p>
<p>So this should be quite familiar if you&rsquo;ve read the previous article. If not, you should find your way around well enough. From your dashboard, you&rsquo;ll see the host you added on the left hand side.</p>
<p>Clicking it, you&rsquo;ll see in the right hand side, details for it, and at the bottom the log you created. Click the name of the log, and you&rsquo;ll step down in to the log information display.</p>
<p>Starting from the top, you&rsquo;ll have a search bar, and time period filter; you&rsquo;ll then have an entries graph, and at the bottom, a textual list of the log entry data. There&rsquo;s quite a bit to it, which, unfortunately I&rsquo;m not able to cover insufficient depth in this post. But I encourage you to explore, as time permits.</p>
<p><img decoding="async" alt="Logentires show all results Plesk 12 Screenshot" src="/wp-content/uploads/2015/03/31/logentries-show-all-results.png"" style="height:684px; width:1030px" /></p>
<p>You can see in the screenshot above, that a number of services, including kernel, rsyslogd, and postfix have been sending log data. Let&rsquo;s say that we just want to filter down on kernel and rsyslogd. To do that, we&rsquo;ll use the following search expression: kernel OR rsyslogd.</p>
<p>This will filter the results down to what you see in the screenshot below. Unlike Loggly, the search results aren&rsquo;t highlighted in this case. However, if we just used one search term, such as kernel, then they would be.</p>
<p><img decoding="async" alt="Logentires highlight search results Plesk 12 screenshot" src="/wp-content/uploads/2015/03/31/logentries-highlighted-search-results.png"" style="height:705px; width:1027px" /></p>
<p>Another way to search would be to instead click on a term that you&rsquo;re interested in. Logentries does a good job of highlighting key terms. So have a look over the results you have and see what options are available to filter on.</p>
<p><img decoding="async" alt="Logentries Highlighted Search Results Annotated in Plesk 12" src="/wp-content/uploads/2015/03/31/logentries-highlighted-search-resultsannotated_1.png"" style="height:683px; width:826px" /></p>
<p>If you&rsquo;d like more information on the search options available, be sure to check out <a href="https://logentries.com/doc/search/">the search documentation</a>. It&rsquo;s quite thorough and definitely helpful. You can search using aggregate expressions, free text, keyword expressions, logical expressions, regular expressions, and more.</p>
<p><strong>Wrapping Up</strong></p>
<p>And that&rsquo;s how to configure your Plesk server to send it&rsquo;s syslog data to the cloud-based logging service, logentries. Whilst there is a bit of manual work required to get your account setup, and the configuration ready to go, both in your account and on your server, the process is quite straight-forward.</p>
<p>However whilst the process is, on the whole, quite logical, it could do with an automation script to streamline the process. That said, I hope you see that there&rsquo;s yet another option for sending, storing, and searching your server&rsquo;s log data, one which makes it easy to stay on top of what&rsquo;s happening and to respond as needed.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Integrating Plesk 12 with Loggly</title>
		<link>https://testing.conetix.com.au/blog/integrating-plesk-12-loggly/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Thu, 19 Mar 2015 00:33:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[loggl]]></category>
		<category><![CDATA[plesk12]]></category>
		<guid isPermaLink="false">https://conetix.com.au/integrating-plesk-12-loggly/</guid>

					<description><![CDATA[To have a fully operational server, you need to be across a range of different technologies. Whether that&#8217;s security and intrusion detection, Email, DNS, User Management, or a host of other areas, there&#8217;s a lot to keep track of. But one of the essentials is logging. Logging, whether it&#8217;s a part of a DevOps or...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/integrating-plesk-12-loggly/" title="Read Integrating Plesk 12 with Loggly">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>To have a fully operational server, you need to be across a range of different technologies. Whether that&rsquo;s security and intrusion detection, Email, DNS, User Management, or a host of other areas, there&rsquo;s a lot to keep track of. But one of the essentials is logging.</p>
<p>Logging, whether it&rsquo;s a part of a DevOps or software development, is an essential ingredient. Why? Because when things start going wrong, as they invariably do from time to time, you need to have information at hand which allows you to get to the root cause of the issue.</p>
<p>Getting in depth about <a href="https://www.loggly.com/blog/four-key-considerations-guide-logging-approach-php-python-ruby/">what you should and shouldn&rsquo;t log</a> is beyond the scope of this post. Instead today, I&rsquo;m going to show you how to integrate your Plesk 12 server setup with one of the best Logging services around, <a href="https://www.loggly.com/">Loggly</a>.</p>
<p><strong>What Is Loggly?</strong></p>
<p>To keep it concise, Loggly is:</p>
<p>An agent-less, pay-as-you-go, cloud-based logging service; one which allows you to store an enormous amount of log data along with a simple and intuitive interface to find the information you need</p>
<p>In the screenshot below, you can see a sample dashboard, one which, if you follow this tutorial, will become quite familiar to you. It sports an easy search interface at the top, allowing for setting the start and end dates, shows a graph of the number of events within the date range, along with a snapshot of the event information.</p>
<p>There&rsquo;s much more to it than I can cover here; suffice to say, it&rsquo;s a nice setup.</p>
<p><img decoding="async" alt="Loggly default dashboard Plesk12 screenshot" src="/wp-content/uploads/2015/03/19/loggly-default-dashboard.png"" style="height:732px; width:1035px" /></p>
<p><strong>Getting Started</strong></p>
<p>Before we go any further, you need to have an account with Loggly. If you don&rsquo;t, you need to <a href="https://www.loggly.com/signup/">sign up for one</a>. After that, you need to run the commands below, from the command line, once logged in to your Plesk 12 server. These will download and run the <a href="https://www.loggly.com/docs/configure-syslog-script/">Loggly configuration script</a>.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
curl -O https://www.loggly.com/install/configure-linux.sh
sudo bash configure-linux.sh -a SUBDOMAIN -t TOKEN -u USERNAME -p PASSWORD</pre>
<p>You can see a number of parameters specified above, these are as follows:</p>
<ul>
<li><strong>SUBDOMAIN:</strong> your account subdomain that you created when you signed up for Loggly</li>
<li><strong>TOKEN (optional):</strong> your customer token from the source setup page</li>
<li><strong>USERNAME:</strong> your Loggly username</li>
<li><strong>PASSWORD:</strong> (optional): your Loggly password. This argument is optional and it will prompt you if you don&rsquo;t supply it.</li>
</ul>
<p><strong>What Does The Script Do?</strong></p>
<p>I&rsquo;m sure you&rsquo;re likely not really comfortable running an unknown script on your server. So here&rsquo;s what the script documentation says:</p>
<p>The script will perform over 10 system checks below to make sure your system is compatible with Loggly and that it can successfully send logs to Loggly. To configure the system, it executes the same instructions in rsyslog manual configuration by writing a configuration file named /etc/rsyslog.d/22-loggly.conf which will send the system logs to Loggly. It then restarts the rsyslog service so the changes take effect. The verification step sends a test log message with a UUID, and then retrieves it back through Loggly&rsquo;s search API. If it is able to retrieve the log, then the configuration is successful. It also logs the status of your setup experience to Loggly which you can use to trouble-shoot if you experience difficulty during setup.&nbsp;</p>
<p>As you run the script, you&rsquo;ll likely see the following output in your terminal, which I&rsquo;ve truncated for sakes of readability.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
INFO: Initiating Configure Loggly for Linux.
INFO: Operating system is CentOS. 
INFO: Checking if logs-01.loggly.com is reachable. 
INFO: Restarting the rsyslog service. 
Shutting down system logger: [ OK ] 
Starting system logger: [ OK ] 
INFO: Creating directory 
mkdir: created directory `/var/spool/rsyslog&#39; 
INFO: Sending test message to Loggly. 
SUCCESS: Verification logs successfully transferred to Loggly!
You are now sending Linux system logs to Loggly.</pre>
<p><strong>What Changes Does It Make?</strong></p>
<p>If you now look in /etc/rsyslog.d/22-loggly.conf, you&rsquo;ll see that the following configuration has been added to it. This will send any log record, which is sent to the system Syslog daemon, to your account on Loggly, using their standard log format.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
# Define the template used for sending logs to Loggly. Do not change this format.
$template LogglyFormat,&quot;&lt;%pri%&gt;%protocol-version% %timestamp:::date-rfc3339%
%HOSTNAME% %app-name% %procid% %msgid% [8fbf831a-c1c9-4763-a3fe-efcae5c8273c@41058]
%msg%n&quot;

# Send messages to Loggly over TCP using the template.
*.*             @@logs-01.loggly.com:514;LogglyFormat</pre>
<p><strong>Searching For Data</strong></p>
<p>Now that you&rsquo;ve got data being sent to your account, it&rsquo;s time to learn the basics of the Loggly interface, so you can search it. From the Loggly home page, login to your account, where you&rsquo;ll be greeted with the default dashboard.</p>
<p>This shows all entries for the last 24 hours, any alerts, along with a set of 4 saved searches. If you&rsquo;ve got even a moderately busy server, you&rsquo;ll already have a good number of records which you can search from.</p>
<p>In the top navigation bar, click on Search which will open a new dashboard tab. You can see mine is showing all records for the last seven days.</p>
<p><img decoding="async" alt="Loggly custom search Plesk 12 screenshot" src="/wp-content/uploads/2015/03/19/loggly-custom-search.png"" style="height:752px; width:1091px" /></p>
<p>By default, no search query will be entered. Under the main search box, click the double-down arrow, to see the basic examples of <a href="https://www.loggly.com/docs/search-overview/">how to search</a>.</p>
<p>For more information, click &lsquo;Advanced&rsquo;. You can see there are a 7 core search types: Full Text, Ordered Tokens, Wildcards, Boolean, Field Value, Numeric Range, and Regular Expression.</p>
<p>What we&rsquo;re going to search for is a combination of Ordered Tokens and Boolean. I&rsquo;ve used the search term www-data AND &quot;processing&quot; OR &quot;read&quot;. You can see that once the search has completed, the results are filtered, and the matching records have also been highlighted.</p>
<p><img decoding="async" alt="Loggly matching search results Plesk 12 screenshot" src="/wp-content/uploads/2015/03/19/loggly-matching-search-results.png"" style="height:750px; width:1090px" /></p>
<p>This helps you know why the result was returned, and how it matched your search criteria. Picking the second record, you can then step in to it and inspect it further, seeing when it arrived, what the message, tag and other information contained in it is.</p>
<p><img decoding="async" alt="Loggly view a search Plesk 12 screenshot" src="/wp-content/uploads/2015/03/19/loggly-viewing-a-search-result.png"" style="height:750px; width:1090px" /></p>
<p>There&rsquo;s a lot to the interface, the rest of which is beyond the scope of this post. So I encourage you to take the time to explore it, and see what kinds of searches you can run, and data you can uncover.</p>
<p><strong>&nbsp;Wrapping Up</strong></p>
<p>And that&rsquo;s all you have to do to send your Syslog messages to Loggly. Over the last several months I&rsquo;ve researched and reviewed a number of logging services, and Loggly, amongst one or two others, is definitely a favourite of mine.</p>
<p>If you have any questions about what&rsquo;s been covered here, make sure you check out the online documentation. As well as that, make sure you have a play around with the Loggly interface. There&rsquo;s a lot to it, so becoming familiar will take some time.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installing Laravel 4 on Plesk 12</title>
		<link>https://testing.conetix.com.au/blog/installing-laravel-4-plesk-12/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Wed, 14 Jan 2015 03:38:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[ph]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plesk 12]]></category>
		<guid isPermaLink="false">https://conetix.com.au/installing-laravel-4-plesk-12/</guid>

					<description><![CDATA[Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS&#8217; on the market, such as&#160;WordPress,&#160;Drupal&#160;and&#160;Joomla, but not for the major PHP frameworks, such as&#160;Zend Framework 2,&#160;Laravel,&#160;FuelPHP&#160;and&#160;Symfony. This is a little unfortunate, but it&#8217;s no deal breaker; and to be fair, as they&#8217;re frameworks, not complete applications,...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/installing-laravel-4-plesk-12/" title="Read Installing Laravel 4 on Plesk 12">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS&rsquo; on the market, such as&nbsp;WordPress,&nbsp;Drupal&nbsp;and&nbsp;Joomla, but not for the major PHP frameworks, such as&nbsp;Zend Framework 2,&nbsp;Laravel,&nbsp;FuelPHP&nbsp;and&nbsp;Symfony.</p>
<p>This is a little unfortunate, but it&rsquo;s no deal breaker; and to be fair, as they&rsquo;re frameworks, not complete applications, it makes sense. Given the flexibility of Plesk 12, as administrators, developers and devops, we&rsquo;re able to do take care of all the necessary steps manually.</p>
<p>In today&rsquo;s tutorial, I&rsquo;m taking you through how to set up and deploy a basic Laravel 4 application on Plesk 12. By the time we&rsquo;re done, you&rsquo;ll see the site, as in the screenshot below.</p>
<p><img decoding="async" alt="Laravel on Plesk 12" src="/wp-content/uploads/2015/01/14/laravel-running.png"" /></p>
<p>Before we get started though, I should say that it won&rsquo;t be a shining example of a world-beating application, but it will have the core Laravel 4 framework installed, ready and configured with a connection to a MySQL backend database. So if you&rsquo;re keen to step further, you&rsquo;re in the best position to do so.</p>
<h2>What Is Laravel</h2>
<p>Before we dive in to the setup, what is Laravel? Laravel is one of the newer PHP frameworks, dubbed as &ldquo;The PHP Framework For Web Artisans.&rdquo;</p>
<p>First released by&nbsp;<a href="https://taylorotwell.com/">Taylor Otwell</a>&nbsp;on the 22nd February, 2012, it&rsquo;s risen rapidly to become the most popular open-source, PHP,&nbsp;<a href="https://github.com/laravel/laravel">project on GitHub</a>.</p>
<p>Dubbed as being great for both beginners and more experienced developers, Laravel comes packed with features, including&nbsp;RESTful routing,&nbsp;fast and efficient templating, a&nbsp;feature-rich ORM layer&nbsp;andmigrations support.</p>
<p>What&rsquo;s more, the community is extremely active and has created a number of tools, such as&nbsp;<a href="https://laravel.com/docs/homestead">Laravel Homestead</a>&nbsp;and&nbsp;<a href="https://forge.laravel.com/">Laravel Forge</a>&nbsp;which make going from development to production almost trivial.</p>
<h2>Prerequisites</h2>
<p>To complete today&rsquo;s tutorial, you&rsquo;re only going to need one prerequisite, which is:</p>
<ul>
<li>Admin access to Plesk</li>
<li>Plesk System User with ssh access (if not, we create one in this article)</li>
<li>The server must have mcrypt installed</li>
</ul>
<h2>Getting Setup</h2>
<p>Right, so what do we need to do to set it up? Thanks to the modern UI, and intelligent layout available in Plesk 12, it&rsquo;s a real no brainer, requiring only a few steps to have it live; which are as follows:</p>
<ul>
<li>Create a Sub-Domain</li>
<li>Setup SSH Access</li>
<li>Create The Database</li>
<li>Install Composer</li>
<li>Install Laravel</li>
<li>Configure Laravel</li>
<li>View The Application</li>
</ul>
<p>Let&rsquo;s work through the process now.</p>
<h2>Create a Sub-Domain</h2>
<p>When you first login to your account, click the&nbsp;<strong>Domains</strong>&nbsp;in the left-hand side navigation bar, under&nbsp;<strong>Hosting</strong><strong> Services</strong>. To keep this simple, we&rsquo;re going to create a new sub-domain, specifically under conetix.com.</p>
<p>On the far right of that domain&rsquo;s row in the table, click &ldquo;<strong>Manage Hosting</strong>&ldquo;. This will display the domain and sub-domain entries, which you can see in the screenshot below.</p>
<p><img decoding="async" alt="Domain Manage Hosting Plesk 12 Screenshot Laravel 4" src="/wp-content/uploads/2015/01/14/adddomaininplesk12screenshot.png"" style="height:646px; width:782px" /></p>
<p>Above the first entry, you&rsquo;ll see three buttons: &ldquo;<strong>Add New Domain</strong>&ldquo;, &ldquo;<strong>Add New Subdomain</strong>&rdquo; and &ldquo;<strong>Add New Domain Alias</strong>&ldquo;. Click &ldquo;Add New Subdomain&rdquo;, and on the form which appears, enter &ldquo;<strong>laravel</strong>&rdquo; for the subdomain name. The&nbsp;<strong>Document root</strong>&nbsp;field will be pre-populated, based on the Subdomain name you entered. But at the end, add in &ldquo;/laravel/public&rdquo;.</p>
<p>The reason for this is that the command we&rsquo;ll run to install Laravel creates a sub-directory, called laravel, and the application&rsquo;s bootstrap file is located in the public directory beneath that.&nbsp;</p>
<p>When it&rsquo;s finished you&rsquo;ll be back on the domains page you started at, with your new domain available at the bottom of the list. In the entry, you&rsquo;ll see all the pertinent details, along with links to more, as well as to make changes.</p>
<h2>Setup SSH Access</h2>
<p>Now we need to check that SSH access is setup properly, so that we can login and run a few command line scripts. If you&rsquo;re not too familiar with command line scripts, that&rsquo;s ok. The one&rsquo;s I&rsquo;ve listed here are quite simple and have sufficient documentation, should it be needed.</p>
<p><img decoding="async" alt="Web Hosting Access Plesk 12 Laravel 4" src="/wp-content/uploads/2015/01/14/laravelscreenshot.png"" style="height:532px; width:768px" /></p>
<p>At the bottom of the subdomain&rsquo;s entry, click the tab titled &ldquo;<strong>Show More</strong>&ldquo;, then click the first entry in the exposed list, titled &ldquo;<strong>Web Hosting Access</strong>&ldquo;. On the page that appears, you&rsquo;ll see four sections.</p>
<p><img decoding="async" alt="Configure SSH access Plesk12 Laravel" src="/wp-content/uploads/2015/01/14/plesk12sshaccessscreenshot.png"" style="height:574px; width:1032px" /></p>
<p>In the second section, titled &ldquo;<strong>System user</strong>&ldquo;, make sure that the last option, &ldquo;<strong>Access to the server over SSH</strong>&ldquo;, is set to&nbsp;/bin/bash&nbsp;or&nbsp;/bin/sh&nbsp;and click OK at the bottom.</p>
<p>The reason for this is because these scripts need that environment to run in. sh may work, but bash works best for this example. Now you&rsquo;re ready to login and begin installing the application.</p>
<p><strong>Note:</strong>&nbsp;if you&rsquo;re not sure of the user&rsquo;s password, either regenerate it or check with your systems administrator.</p>
<h2>Create The Database</h2>
<p>Now we have one last pre-install step to do, create a database. Back in the sub-domain settings, above the &ldquo;<strong>Show Less</strong>&rdquo; tab, on the right you&rsquo;ll see a Databases option.</p>
<p>Next to it, click &ldquo;<strong>Add New Database</strong>&ldquo;, where you&rsquo;ll be directed to create new database form, as in the screenshot below.</p>
<p><img decoding="async" alt="Create Database Plesk12 Screenshot Laravel 4" src="/wp-content/uploads/2015/01/14/create-new-database.png"" /></p>
<p>On that page, set &ldquo;<strong>Database name</strong>&rdquo; to &ldquo;<strong>admin_laravel</strong>&ldquo;, leave &ldquo;<strong>Create a new database user</strong>&rdquo; checked and set &ldquo;<strong>Database user name</strong>&ldquo;&nbsp;to &ldquo;<strong>laravel_user</strong>&ldquo;. Set a secure password under &quot;<strong>New </strong><strong>Password/Confirm Password</strong>&quot;. Make a note of these details as you will need them later in the article.&nbsp;For &ldquo;<strong>Access control</strong>&ldquo;, choose the first option, &ldquo;<strong>Allow local connections only</strong>&ldquo;, then click OK.</p>
<p>You&rsquo;ll then be redirected to the databases list, where you&rsquo;ll see the new database last in the list (or the only one if this is the first). Feel free to inspect it if you like, but there&rsquo;s no need to to complete this tutorial.</p>
<h2>Install Composer</h2>
<p><img decoding="async" alt="Composer Homepage Plesk12 Screenshot Laravel 4" src="/wp-content/uploads/2015/01/14/getcomposer-homepage_1.png"" /></p>
<p>Now we&rsquo;re ready to begin installation of Laravel. To do so,&nbsp;<a href="https://getcomposer.org/">we&rsquo;re going to use Composer</a>. If you&rsquo;re not familiar with Composer, it&rsquo;s a dependency manager for PHP.</p>
<p>In years gone by, many projects implemented common functionality, such as routing, database layers, caching interaction and logging on their own, making it difficult to port applications to newer or different frameworks, or for them to be maintained in a cost and time-effective.</p>
<p>Composer makes it almost painless for best of breed libraries for any specific purpose to be created, voted on, discovered and most importantly used in applications.</p>
<p>To find out more about it, I encourage you to&nbsp;<a href="https://www.sitepoint.com/php-dependency-management-with-composer/">read this introduction to it</a>&nbsp;or a walk through of&nbsp;<a href="https://www.sitepoint.com/composer-cheatsheet/">the Composer Cheatsheet I made for Sitepoint</a>. You&rsquo;ll be up and running with it in no time.</p>
<p>To install composer, login as the Plesk&nbsp;System User we created earlier and&nbsp;cd to &lsquo;/var/www/vhosts/conetix.com/laravel.conetix.com&rsquo; substituting &lsquo;conetix.com&rsquo; based on your domain setup; then run the command below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
curl -s https://getcomposer.org/installer | php --</pre>
<p>This downloads Composer, piping it through to PHP, in the process creating a self-contained file we can use, called composer.phar.</p>
<h2>Install Laravel</h2>
<p>Now we need to install Laravel. From your current directory, run the command below:</p>
<pre class="prettyprint lang- " data-pbcklang="" data-pbcktabsize="" style="color: rgb(0, 0, 0); line-height: normal;">
php ./composer.phar create-project laravel/laravel --prefer-dist
</pre>
<p>This will install Laravel in the directory structure we covered earlier, displaying output similar to that below.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
Installing laravel/laravel (v4.2.0)
   - Installing laravel/laravel (v4.2.0)
     Loading from cache 
     
Created project in
/var/www/vhosts/conetix.com/laravel.conetix.com/laravel
Loading composer repositories with package information
Installing dependencies (including require-dev)
   - Installing symfony/debug (v2.5.2)
   Downloading: 100% 
   
   - Installing symfony/http-foundation (v2.5.2)
   Downloading: 100% 
   
   - Installing swiftmailer/swiftmailer (v5.2.1)
   Downloading: 100% 
   
   - Installing laravel/framework (v4.2.7)
   Downloading: 100%</pre>
<h2>Configure Laravel</h2>
<p>Assuming that there are no errors, timeouts or permission issues, now we need to configure the setup. So cd to&nbsp;<strong>laravel</strong>&nbsp;the new directory and using vim or your editor of choice edit&nbsp;app/config/app.php. In the file, set the following options:</p>
<table>
<thead>
<tr>
<th style="text-align:left; vertical-align:bottom">Setting</th>
<th style="text-align:left; vertical-align:bottom">Option</th>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align:top">debug</td>
<td style="vertical-align:top">true</td>
</tr>
<tr>
<td style="vertical-align:top">url</td>
<td style="vertical-align:top">&lsquo;https://laravel.conetix.com&rsquo;</td>
</tr>
</tbody>
</table>
<p>Save the changes, then edit&nbsp;app/config/database.php&nbsp;and find the section marked &lsquo;connections&rsquo; and make sure the settings are as below for the mysql sub-option (these are the same details used when setting up the database earlier):</p>
<table>
<thead>
<tr>
<th style="text-align:left; vertical-align:bottom">Setting</th>
<th style="text-align:left; vertical-align:bottom">Option</th>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align:top">host</td>
<td style="vertical-align:top">&lsquo;localhost&rsquo;</td>
</tr>
<tr>
<td style="vertical-align:top">database</td>
<td style="vertical-align:top">&lsquo;admin_laravel&rsquo;</td>
</tr>
<tr>
<td style="vertical-align:top">username</td>
<td style="vertical-align:top">&lsquo;laravel_user&rsquo;</td>
</tr>
</tbody>
</table>
<p>For the password, insert your generated password. Saving that, you&rsquo;re now ready to run the default, Laravel, application.</p>
<h2>4. View The Application</h2>
<p>Let&rsquo;s have a look at the running app. It&rsquo;s not special, as there&rsquo;s no new controllers or actions beyond the default; it&rsquo;s just a one page application, but it works.</p>
<p><img decoding="async" alt="Laravel on Plesk 12" src="/wp-content/uploads/2015/01/14/laravel-running.png"" /></p>
<h2>Wrapping Up</h2>
<p>In just a few minutes, we&rsquo;ve stepped through creating and configuring a sub-domain, to installing a sample application, based on the Laravel framework.</p>
<p>Now it&rsquo;d be great if it was simpler, such as having an installer for Drupal, Joomla and WordPress. But it&rsquo;s a bit hard to compare off the shelf applications, such as these, to frameworks which allow for creating nearly any kind of application.</p>
<p>What I&rsquo;m hoping for is to have an installer which lays the foundation for this process, which may just be available in the future.</p>
<p>Till then, share your thoughts in the comments. Has this made it simpler for you to start creating applications with Laravel on Plesk? I hope so. I&rsquo;d love to hear how you feel.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installing Ruby on Rails on Plesk 12</title>
		<link>https://testing.conetix.com.au/blog/installing-ruby-rails-plesk-12/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Wed, 26 Nov 2014 05:00:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[ph]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plesk12]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<guid isPermaLink="false">https://conetix.com.au/installing-ruby-rails-plesk-12/</guid>

					<description><![CDATA[Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS’ on the market, such as WordPress, Drupal and Joomla, but not for the major PHP frameworks, such as Zend Framework 2, Ruby on Rails, FuelPHP and Symfony. This is a little unfortunate, but it’s no deal breaker; and to be...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/installing-ruby-rails-plesk-12/" title="Read Installing Ruby on Rails on Plesk 12">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS’ on the market, such as WordPress, Drupal and Joomla, but not for the major PHP frameworks, such as Zend Framework 2, Ruby on Rails, FuelPHP and Symfony.</p>
<p>This is a little unfortunate, but it’s no deal breaker; and to be fair, as they’re frameworks, not complete applications, it makes sense. Given the flexibility of Plesk 12, as administrators, developers and devops, we’re still able to do quite a bit manually.</p>
<p>In today’s tutorial, we’re going to guide you through the process of setting up and deploying a basic Ruby on Rails 4 application on Plesk 12. By the time we’re done, you’ll see the site as in the screenshot below.</p>
<p><img decoding="async" alt="The Running Ruby on Rails Application" src="https://www.conetix.com.au/media/uploads/2014/09/04/running-ruby-app.png" /></p>
<p>Before we get started, I should say that it won’t be a shining example of world-beating application, but it will have the core Ruby on Rails 4 framework installed, ready and configured with a connection to a MySQL backend database.</p>
<h2>What is Ruby on Rails (RoR)</h2>
<p>In a nutshell, <a href="https://www.javaworld.com/article/2459944/scripting-jvm-languages/happy-10th-anniversary-ruby-on-rails-but-watch-your-back.html">according to David Heinemeier Hansson</a>, the creator and lead developer of Ruby on Rails:</p>
<blockquote>
<p>Most frameworks and languages were focused on neither fun nor productivity. The forging ground was quick ‘n’ dirty with PHP or slow ‘n’ clean with Java. There was room for something quick ‘n’ clean in the middle.</p>
</blockquote>
<p>So with that in mind, <a href="https://rubyonrails.org/">Ruby on Rails</a> is an open source, web application framework, that’s “optimized for programmer happiness and sustainable productivity. It let’s you write beautiful code by favouring convention over configuration“.</p>
<p>Like Zend Framework 2, Laravel and FuelPHP, <a href="https://en.wikipedia.org/wiki/Ruby_on_Rails">it’s a full stack framework</a> which allows creating pages and applications which talk to or query the database, and render templates out of the box.</p>
<h2>Prerequisites</h2>
<p>To complete today’s tutorial, you’re only going to need a few prerequisites. These are:</p>
<ul>
<li>Curl</li>
<li>Linux build tools (such as make and configure)</li>
<li>Root access (or user with sufficient privileges or who’s in the sudoers list)</li>
</ul>
<h2>Getting Setup</h2>
<p>Right, so what do we need to do to set it up? Thanks to the modern UI, and intelligent layout available in Plesk 12, it’s a real no brainer, requiring only a few steps to have it live, which are as follows:</p>
<ul>
<li>Create a Sub-Domain</li>
<li>Setup SSH Access</li>
<li>Install Ruby on Rails</li>
<li>Configure Ruby on Rails</li>
<li>View The Application</li>
</ul>
<p>Let’s work through the process now.</p>
<h2>Create a Sub-Domain</h2>
<p>When you first login to your account, click the <strong>Domains</strong> in the left-hand side navigation bar, under Hosting Services. This will then show you the list of your websites &amp; domains. To keep this simple, we’re going to create a new sub-domain, specifically under conetix.com.</p>
<p>On the far right of that domain’s row in the table, click <strong>Manage Hosting</strong>. This will display the domain and sub-domain entries, which you can see in the screenshot below.</p>
<p><img decoding="async" alt="Plesk 12 add subdomain screenshot" src="/wp-content/uploads/2015/01/14/adddomaininplesk12screenshot.png" /></p>
<p>Above the first entry, you’ll see three buttons:</p>
<ul>
<li>“Add New Domain”</li>
<li>“Add new Subdomain”</li>
<li>“Add New Domain Alias”</li>
</ul>
<p>Click “Add New Subdomain”, and on the form which appears, enter “ror” for the subdomain name. The Document root field will be pre-populated, based on the Subdomain name you entered. At the end, add in “/ror/public”.</p>
<p>The reason for this is that the command we’ll run to install Ruby on Rails creates a sub-directory called Ruby on Rails and the application’s bootstrap file is located in the public directory, inside it.</p>
<p>It may take a minute or two for the subdomain to be created, based on your server’s specifications. But it shouldn’t take too long.</p>
<p>When it is, you’ll be back on the domains page you started at, with your new domain listed at the bottom of the list. In the entry, you’ll see all the pertinent details, along with links to more, as well as to make changes.</p>
<h2>Setup SSH Access</h2>
<p>Now we need to check that SSH access is setup properly, so that we can login and run a few command line scripts. If you’re not too familiar with command line scripts, that’s ok.</p>
<p>The one’s I’ve listed here are quite simple and have sufficient documentation, should it be needed.</p>
<p><img decoding="async" alt="Plesk 12 setup ssh screenshot" src="/wp-content/uploads/2014/11/26/rubyonrailssubdomain.png" /></p>
<p>At the bottom of the subdomain’s entry, click the tab titled “Show More”, then click the first entry in the exposed list, titled “Web Hosting Access”. On the page that appears, you’ll see four sections.</p>
<p><img decoding="async" alt="Plesk 12 Web Hosting Access Screenshot" src="/wp-content/uploads/2015/01/14/plesk12sshaccessscreenshot.png" /></p>
<p>In the second section, titled “System user”, make sure that the last option, “Access to the server over SSH”, is set to /bin/bash or /bin/sh and click OK at the bottom.</p>
<p>The reason for this is because these scripts need that environment to run in. sh may work, but bash works best for this example. Now you’re ready to login and begin installing the application.</p>
<p><strong>Note:</strong> if you’re not sure of the user’s password, either regenerate it or check with your systems administrator.</p>
<h2>Installing Rubygems</h2>
<p>Now that the database is installed, we need to install all Ruby on Rails along with all the required dependencies; we’ll start with the first dependency, <a href="https://rubygems.org/">Rubygems</a>. To do so, use the following command which suits your platform:</p>
<table>
<thead>
<tr>
<th style="text-align: left; vertical-align: bottom;">Platform</th>
<th style="text-align: left; vertical-align: bottom;">Command</th>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top;">Centos/Redhat</td>
<td style="vertical-align: top;">yum install rubygems</td>
</tr>
<tr>
<td style="vertical-align: top;">Ubuntu/Debian</td>
<td style="vertical-align: top;">apt-get install rubygems</td>
</tr>
</tbody>
</table>
<h2>Installing Rails</h2>
<p>Now that the Rubygems is installed, it’s time to install Rails. To do so, from the command line run the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">gem install rails</pre>
<h2>Potential Errors</h2>
<h3>Missing Development Packages</h3>
<p>You may encounter errors attempting to install it; one of the main ones is not having the necessary development packages or libraries. If so, you’ll likely see an error like this one:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h</pre>
<p>If you see this error, first make sure you have both gcc and ruby-devel installed. You can do that use one of the following commands, which best suits your platform:</p>
<table>
<thead>
<tr>
<th style="text-align: left; vertical-align: bottom;">Platform</th>
<th style="text-align: left; vertical-align: bottom;">Command</th>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top;">Centos/Redhat</td>
<td style="vertical-align: top;">yum -y install gcc ruby-devel sqlite-devel</td>
</tr>
<tr>
<td style="vertical-align: top;">Ubuntu/Debian</td>
<td style="vertical-align: top;">apt-get -y install gcc ruby-devel libsqlite3-dev</td>
</tr>
</tbody>
</table>
<h3>Incorrect Version of Ruby</h3>
<p>The next error you may encounter, is the following, which indicates you need a higher version of Ruby than what’s installed.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">ERROR:  Error installing rails:
    activesupport requires Ruby version &gt;= 1.9.3.</pre>
<p>If that’s the case, you may find that your distribution’s package manager is already at the latest version. This can be done by running yum info ruby.</p>
<p>If so, don’t worry, you don’t need to install a version of Ruby from source; though you can if you want to. Instead, install the <a href="https://rvm.io/">Ruby Version Manager (RVM)</a> which handles the installation, uninstallation and configuration of multiple versions of Ruby on your system for you.</p>
<p>To do so, run the following commands in your terminal or console:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">yum groupinstall -y development
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm reload
rvm install 2.1.0</pre>
<p>What these commands do is first to ensure that you have all the development packages required to compile the code, then RVM is downloaded and the shell environment is updated to support the package. Finally version 2.1.0 of Ruby is installed.</p>
<p>When that’s done, if you’d like to verify the installation, run the following two commands:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">ruby --version
rvm list rubies</pre>
<p>After all this prep work, you shouldn’t encounter any further errors. So run gem install rails again, where you should see output like the following, (truncated for readability):</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">Installing ri documentation for treetop-1.4.15
Parsing documentation for tzinfo-1.2.1
Installing ri documentation for tzinfo-1.2.1
Done installing documentation for actionmailer, actionpack, 
actionview, activemodel, activerecord, activesupport, arel, 
builder, erubis, hike, i18n, mail, mime-types, minitest, multi_json,
polyglot, rack, rack-test, rails, railties, sprockets, sprockets-rails,
thor, thread_safe, tilt, treetop, tzinfo after 479 seconds</pre>
<h2>Installing Additional Libraries</h2>
<p>Now that Rails is installed, we need to install some additional libraries which it will need (just to be sure that they’re available on your system), which they aren’t by default. What we’ll need is a JSON gem and a JavaScript runtime, provided by Node.js. To get them installed, from your terminal, run the following commands:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">gem install json -v '1.8.1'
curl -sL https://rpm.nodesource.com/setup | bash -
yum install -y nodejs</pre>
<p>That will take just a little while to complete, but will be the last Rails dependency you’ll need to be up and running.</p>
<h2>Creating the Ruby on Rails Application</h2>
<p>Now that we’ve gotten all the Ruby on Rails dependencies out of the way, let’s create a basic, template, application. Gladly, there’s not a lot to do, just two steps. From the RoR directory, run the following commands. What these do are to firstly generate a stub application, then to precompile the static asset files, such as CSS, JavaScript.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">rails new .
bundle exec rake assets:precompile RAILS_ENV=development</pre>
<p>If however you’re deploying to production, change development above to production.</p>
<h2>Install Unicorn with Apache</h2>
<p>Now that we have all of the Ruby-based components installed and ready to go, and our basic Ruby on Rails application created, we need to connect it to the Apache Webserver. To do so, we’re going to configure Apache as a <a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a>. This will have Apache pass all requests to the rails sub-domain to the Ruby server, Unicorn (which we’ll also setup).</p>
<h3>What is Unicorn?</h3>
<p><a href="https://unicorn.bogomips.org/">According to the official website</a>, Unicorn is:</p>
<blockquote>
<p>an HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between Unicorn and slow clients.</p>
</blockquote>
<p>To install it, from your terminal, run the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">gem install unicorn</pre>
<h2>Configuring Apache as a Reverse Proxy</h2>
<p>Thanks to the smooth Plesk 12 interface, configuring Apache as a reverse proxy is quite straight-forward. Under the hosting settings for the sub-domain, click <strong>Show More</strong> at the bottom.</p>
<p>Then click the second option, in the middle column, labeled <strong>Web Server Settings</strong>, which you see in the screenshot below.</p>
<p><img decoding="async" alt="Plesk 12 Web Server Settings" src="/wp-content/uploads/2014/11/26/rubyonrailswebhosting.png" /></p>
<p>Then, when the page’s loaded, under <strong>Additional directives for HTTP</strong>, add the following configuration directives:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">&lt;Proxy balancer://unicornservers&gt;
    BalancerMember https://127.0.0.1:5001
&lt;/Proxy&gt;

RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://unicornservers%{REQUEST_URI} [P,QSA,L]

ProxyPass / balancer://unicornservers/
ProxyPassReverse / balancer://unicornservers/
ProxyPreserveHost on

&lt;Proxy *&gt;
    Order deny,allow
    Allow from all
&lt;/Proxy&gt;</pre>
<p>What this does is to pass all traffic through to the Unicorn server listening on port 5001, for requests to the sub-domain.</p>
<p>As Plesk restarts Apache when you make any configuration changes, there’s no need to seek out a restart option or to do it from the command line.</p>
<h2>Start Unicorn</h2>
<p>To start Unicorn, go to the project directory, which you’ll find at/var/www/vhosts/conetix.com/ror.conetix.com/rails.app and run the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">unicorn_rails -p 5001 -E development -D</pre>
<p>This will start the server in development mode. If you want to run it in production, change development to production and set the <a href="https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#config/secrets.yml">secret_key_base</a> for the production configuration in config/secrets.yml.</p>
<h3>Set Unicorn to Reload if Terminated</h3>
<p>Finally, there’s one last step. Sometimes Unicorn may crash, which can occur for a variety of reasons; it also may just need to be restarted.</p>
<p>So we need to ensure that it will automatically be restarted. To do that, open `/etc/rc.local in your editor of choice and add in the following code snippet:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">ROR_MODE=development
ROR_DIR=/var/www/vhosts/conetix.com/ror.conetix.com/
cd $ROR_DIR &amp;&amp; unicorn_rails -p 5001 -E $ROR_MODE -D
</pre>
<p>I’ve already added some documentation, but to reiterate, I’ve set to shell variables, one for the runtime mode and the other for the application directory. Change these as suits your configuration.</p>
<p>Then I’ve added the boot script, passing in the configuration variables. Now, if the daemon crashes, Linux will restart it automatically for us.</p>
<h2>View the Application</h2>
<p>Right, now that it’s installed, let’s have a look at the running app. It’s not special, as there’s no database, logging, or caching server connections. It’s just a one page application, but it works.</p>
<p><img decoding="async" alt="The Running Ruby on Rails Application" src="https://www.conetix.com.au/media/uploads/2014/09/04/running-ruby-app.png" /></p>
<h2>Wrapping up</h2>
<p>So there you go. In just a few minutes, we’ve stepped through creating and configuring a sub-domain, to installing a basic Ruby on Rails application, served via a combination of Unicorn and Apache acting as a reverse proxy.</p>
<p>Now it’d be great if it was simpler, such as having an installer for Drupal, Joomla and WordPress. But it’s a bit hard to compare off the shelf applications, such as these, to frameworks which allow for creating nearly any kind of application.</p>
<p>What I’m hoping for is to have an installer which lays the foundation for this process, which may just be available in the future.</p>
<p>Till then, share your thoughts in the comments. Has this made it simpler for you to start creating applications with Ruby on Rails (ROR) on Plesk? I hope so. I’d love to hear how you feel.</p>
<h2>Links</h2>
<ul>
<li><a href="https://robmclarty.com/blog/how-to-setup-a-production-server-for-rails-4">https://robmclarty.com/blog/how-to-setup-a-production-server-for-rails-4</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-ruby-2-1-0-on-centos-6-5-using-rvm">https://www.digitalocean.com/community/tutorials/how-to-install-ruby-2-1-0-on-centos-6-5-using-rvm</a></li>
<li><a href="https://www.javaworld.com/article/2459944/scripting-jvm-languages/happy-10th-anniversary-ruby-on-rails-but-watch-your-back.html">https://www.javaworld.com/article/2459944/scripting-jvm-languages/happy-10th-anniversary-ruby-on-rails-but-watch-your-back.html</a></li>
<li><a href="https://www.infoworld.com/d/security/ruby-rails-security-updates-patch-xss-dos-vulnerabilities-232092">https://www.infoworld.com/d/security/ruby-rails-security-updates-patch-xss-dos-vulnerabilities-232092</a></li>
<li><a href="https://blog.bensigelman.org/post/57543889435/why-nobody-should-use-rails-for-anything-ever">https://blog.bensigelman.org/post/57543889435/why-nobody-should-use-rails-for-anything-ever</a></li>
<li><a href="https://github.com/teambox/teambox/wiki/Installing-on-Ubuntu-using-Apache-and-Unicorn">https://github.com/teambox/teambox/wiki/Installing-on-Ubuntu-using-Apache-and-Unicorn</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Installing FuelPHP on Plesk 12</title>
		<link>https://testing.conetix.com.au/blog/installing-fuelphp-plesk-12/</link>
		
		<dc:creator><![CDATA[Matthew Setter]]></dc:creator>
		<pubDate>Wed, 01 Oct 2014 05:20:00 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<category><![CDATA[fuelphp]]></category>
		<category><![CDATA[ph]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plesk12]]></category>
		<guid isPermaLink="false">https://conetix.com.au/installing-fuelphp-plesk-12/</guid>

					<description><![CDATA[Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS&#8217; on the market, such as&#160;WordPress,&#160;Drupal&#160;and&#160;Joomla, but not for the major PHP frameworks, such as&#160;Zend Framework 2,&#160;FuelPHP,&#160;Laravel&#160;and&#160;Symfony. This is a little unfortunate, but it&#8217;s no deal breaker; and to be fair, as they&#8217;re frameworks, not complete applications,...  <a class="excerpt-read-more" href="https://testing.conetix.com.au/blog/installing-fuelphp-plesk-12/" title="Read Installing FuelPHP on Plesk 12">Read more &#187;</a>]]></description>
										<content:encoded><![CDATA[<p>Plesk 12 comes with a range of pre-built installation wizards for a number of the most popular PHP CMS&rsquo; on the market, such as&nbsp;WordPress,&nbsp;Drupal&nbsp;and&nbsp;Joomla, but not for the major PHP frameworks, such as&nbsp;Zend Framework 2,&nbsp;FuelPHP,&nbsp;Laravel&nbsp;and&nbsp;Symfony.</p>
<p>This is a little unfortunate, but it&rsquo;s no deal breaker; and to be fair, as they&rsquo;re frameworks, not complete applications, it makes sense. Given the flexibility of Plesk 12, as administrators, developers and dev ops, we&rsquo;re able to do take care of all the necessary steps manually.</p>
<p>In today&rsquo;s tutorial, we&rsquo;ll step through the process of setting up and deploying a basic FuelPHP 4 application on Plesk 12. By the time we&rsquo;re done, you&rsquo;ll see the site as in the screenshot below.</p>
<p><img decoding="async" alt="FuelPHP on Plesk 12" src="/wp-content/uploads/2014/10/01/fuelphp-default-app.png"" /></p>
<p>Before we get started, I should say that it won&rsquo;t be a shining example, world-beating, application but it will have the core FuelPHP 4 framework installed, ready to use.</p>
<h2>What Is FuelPHP</h2>
<p>Started in October 2010 by&nbsp;Harro Verton,&nbsp;Jelmer Schreuder,&nbsp;Dan Horrigan,&nbsp;Philip Sturgeon&nbsp;and&nbsp;Frank de Jonge,&nbsp;<a href="https://fuelphp.com/docs/">FuelPHP</a>,</p>
<blockquote>
<p>is a simple, flexible, community driven PHP 5 web framework. It was born out of the frustrations people have with the current available frameworks and developed with support from a community of developers. FuelPHP is extremely portable, works on almost any server and prides itself on clean syntax.</p>
</blockquote>
<p>I chose this one because it combines power with simplicity. So it&rsquo;s a good package to use, whether you&rsquo;re a beginner or more experienced developer.</p>
<p>Similar to Laravel, Ruby on Rails and Zend Framework 2, FuelPHP comes complete with a URL routing system, RESTful and HMVC implementation, support for multiple template engines, including&nbsp;<a href="https://mustache.github.io/">Mustache</a>,&nbsp;<a href="https://daringfireball.net/projects/markdown/">Markdown</a>,&nbsp;<a href="https://www.smarty.net/">Smarty</a>,&nbsp;<a href="https://twig.sensiolabs.org/">Twig</a>&nbsp;and&nbsp;<a href="https://haml.info/">Haml</a>, an ORM, Auth package and caching system.</p>
<p>To know more about it, check out&nbsp;<a href="https://fuelphp.com/">the FuelPHP website</a>&nbsp;or&nbsp;<a href="https://en.wikipedia.org/wiki/FuelPHP#Roadmap">the Wikipedia documentation</a>.</p>
<h2>Prerequisites</h2>
<p>To complete today&rsquo;s tutorial, you&rsquo;re only going to need a few prerequisites. These are:</p>
<ul>
<li>Git</li>
<li>Awk</li>
<li>Root access (or user with sufficient privileges or who&rsquo;s in the sudoers list)</li>
</ul>
<h2>Getting Setup</h2>
<p>Right, so what do we need to do to set it up? Thanks to the modern UI, and intelligent layout available in Plesk 12, it&rsquo;s a real no brainer, requiring only a few steps to have it live, which are as follows:</p>
<ol>
<li>Create a Sub-Domain</li>
<li>Setup SSH Access</li>
<li>Install FuelPHP</li>
<li>Install Composer</li>
<li>Configure FuelPHP</li>
<li>View The Application</li>
</ol>
<p>Let&rsquo;s work through the process now.</p>
<h2>Create a Sub-Domain</h2>
<p>When you first login to your account, click the&nbsp;<strong>Domains</strong>&nbsp;in the left-hand side navigation bar, under&nbsp;<strong>Hosting</strong><strong> Services</strong>. This will then show you the list of your websites &amp; domains.</p>
<p>In our example, we have a few existing ones; but to keep this simple, we&rsquo;re going to create a new sub-domain, specifically under huffyscrew.com. On the far right of that domain&rsquo;s row in the table, click &ldquo;<strong>Manage Hosting</strong>&ldquo;. This will display the domain and sub-domain entries, which you can see in the screenshot below.</p>
<p><img decoding="async" alt="Domain Manage Hosting Plesk12 Screenshot PHPFuel" src="/wp-content/uploads/2014/10/01/adddomaininplesk12screenshot_1.png"" style="height:646px; width:782px" /></p>
<p>Above the first entry, you&rsquo;ll see three buttons: &ldquo;<strong>Add New Domain</strong>&ldquo;, &ldquo;<strong>Add New Subdomain</strong>&rdquo; and &ldquo;<strong>Add New Domain Alias</strong>&ldquo;. Click &ldquo;Add New Subdomain&rdquo;, and on the form which appears, enter &ldquo;<strong>fuelphp</strong>&rdquo; for the subdomain name. The&nbsp;<strong>Document root</strong>&nbsp;field will be pre-populated, based on the Subdomain name you entered.&nbsp;</p>
<p>The reason for this is that the command we&rsquo;ll run to install FuelPHP creates a sub-directory, called&nbsp;<strong>fuel</strong>, and the application&rsquo;s bootstrap file is located in the public directory beneath that. It may take a minute or two for the subdomain to be created, based on your server&rsquo;s specifications. But it shouldn&rsquo;t take too long.</p>
<p>When it&rsquo;s finished you&rsquo;ll be back on the domains page you started at, with your new domain available at the bottom of the list. In the entry, you&rsquo;ll see all the pertinent details, along with links to more, as well as to make changes.</p>
<h2>Setup SSH Access</h2>
<p>Now we need to check that SSH access is setup properly, so that we can login and run a few command line scripts. If you&rsquo;re not too familiar with command line scripts, that&rsquo;s ok. The one&rsquo;s I&rsquo;ve listed here are quite simple and have sufficient documentation, should it be needed.</p>
<p><img decoding="async" alt="Web Hosting Access Plesk12 Screenshot FuelPHP" src="/wp-content/uploads/2014/10/01/fuelphpscreenshotplesk12.png"" style="height:545px; width:752px" /></p>
<p>At the bottom of the subdomain&rsquo;s entry, click the tab titled &ldquo;<strong>Show More</strong>&ldquo;, then click the first entry in the exposed list, titled &ldquo;<strong>Web Hosting Access</strong>&ldquo;. On the page that appears, you&rsquo;ll see four sections.</p>
<p><img decoding="async" alt="Configure SSH Access Plesk12 Screenshot FuelPHP" src="/wp-content/uploads/2014/10/01/plesk12sshaccessscreenshot_1.png"" style="height:574px; width:1032px" /></p>
<p>In the second section, titled &ldquo;<strong>System user</strong>&ldquo;, make sure that the last option, &ldquo;<strong>Access to the server over SSH</strong>&ldquo;, is set to&nbsp;/bin/bash&nbsp;or&nbsp;/bin/sh&nbsp;and click OK at the bottom.</p>
<p>The reason for this is because these scripts need that environment to run in. sh may work, but bash works best for this example. Now you&rsquo;re ready to login and begin installing the application.</p>
<p>&nbsp;</p>
<h2>Installing FuelPHP</h2>
<p>Now let&rsquo;s get cracking and create&nbsp;our first FuelPHP application. Like many things in life, there&rsquo;s a few ways to do it. You can use the scaffolding tool, called&nbsp;<a href="https://fuelphp.com/docs/packages/oil/intro.html">Oil</a>&nbsp;or you can manually install it by cloning the <a href="https://github.com/fuelphp" target="_blank" rel="noopener noreferrer">Github</a> repository and carrying out all the configuration by hand. As the latter is a bit error-prone and Oil is the preferred way to do it, we&rsquo;ll be using Oil.</p>
<p>Oil is a utility which facilitates quick development, testing applications and running tasks, such as building MVC components, migrations, scaffolding, installing updating and removing packages and running PHPUnit tests.</p>
<h3>Install Oil</h3>
<p>So first, run the command below, which will install the oil binary in&nbsp;/usr/bin/oil. So make sure your user has sufficient permissions or is in the shudders list before continuing.</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
curl get.fuelphp.com/oil | sh &amp;&amp; which oil</pre>
<p>This command should print out&nbsp;/usr/bin/oil&nbsp;as the last part of the output, verifying that oil&rsquo;s installed.</p>
<h3>Create a FuelPHP Project</h3>
<p>With oil installed, we can now use it to create a new project, which we&rsquo;ll call&nbsp;<strong>fuel</strong>. To do so, first cd to the virtual host directory, then run the command below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
oil create fuel</pre>
<p>As it&rsquo;s executing, you should see output such as that below, which has been truncated for readability:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
Initialized empty Git repository in
 /var/www/vhosts/conetixtest.com/fuelphp.conetixtest.com/fuel/.git/
remote: Counting objects: 15218, done.
remote: Total 15218 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (15218/15218), 5.11 MiB | 890 KiB/s, done.
Resolving deltas: 100% (6115/6115), done.
Already on &#39;1.7/master&#39;
Updating to version 4ecdbf89c4a3d1e5dfe73c57e3202a5e2a18c87e.
    Downloading: 100%         
Use composer self-update --rollback to return to version
 e77435cd0c984e2031d915a6b42648e7b284dd5c
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing composer/installers (dev-master 41cf781)
    Cloning 41cf781ed1271e25bf31b715416a349996aa2527

  - Installing fuel/docs (1.7.2)
    Downloading: 100%         

  - Installing fuel/core (1.7.2)
    Downloading: 100%         

  - Installing fuel/auth (1.7.2)
    Downloading: 100% 

Writing lock file
Generating autoload files
</pre>
<h3>Satisfy All External Dependencies</h3>
<p><img decoding="async" alt="Composer Homepage Screenshot" src="/wp-content/uploads/2014/10/01/getcomposer-homepage.png"" /></p>
<p>FuelPHP uses PHP&rsquo;s dependency manager,&nbsp;<a href="https://getcomposer.org/">Composer</a>, to manage all it&rsquo;s dependencies. If you&rsquo;re not familiar with Composer, in years gone by, many projects implemented common functionality, such as&nbsp;routing,&nbsp;database layers,&nbsp;caching interaction&nbsp;and&nbsp;logging&nbsp;on their own.</p>
<p>This made it difficult to port applications to newer or different frameworks, or for them to be maintained in a cost and time-effective. Composer makes it almost painless for best of breed libraries for any specific purpose to be created, voted on, discovered and most importantly used in applications.</p>
<p>If you don&rsquo;t have Composer installed, run the following command to do so:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
curl -s https://getcomposer.org/installer | php --</pre>
<p>This will download Composer, piping it through to PHP, creating a self-contained&nbsp;<a href="https://php.net/manual/en/book.phar.php">phar file</a>&nbsp;we can use from the command line. With that done run the following command, inside the new fuel project directory, to download all the dependencies:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
php composer.phar self-update &amp;&amp; php composer.phar update;</pre>
<h3>Verify Directory Permissions</h3>
<p>Now that that&rsquo;s done, there&rsquo;s one last step to go, which is to verify directory permissions. This is required as FuelPHP makes use of several directories for caching, configuration and logging amongst other things.</p>
<p>We can verify the directory permissions are correctly set by again using oil, as in the command below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
php oil refine install
    Made writable: APPPATH/cache
    Made writable: APPPATH/logs
    Made writable: APPPATH/tmp
    Made writable: APPPATH/config</pre>
<h3>Potential Errors</h3>
<p>With that done, the project&rsquo;s created and ready to go. However, during the course of running the above commands, you may have come across the error below:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
Error - date_default_timezone_get(): It is not safe to rely on the system&#39;s
timezone settings. You are *required* to use the date.timezone setting or the
date_default_timezone_set() function. 

In case you used any of those methods and you are still getting this warning,
you most likely misspelled the timezone identifier. We selected the timezone
&#39;UTC&#39; for now, but please set date.timezone to select your timezone. in
COREPATH/classes/fuel.php on line 167
</pre>
<p>If you do, it&rsquo;s a simple one to fix and sometimes common in PHP installations. To fix it, edit thedate.timezone&nbsp;setting in your PHP&rsquo;s main configuration file. If you&rsquo;re not sure where it&rsquo;s located, run the following command:</p>
<pre class="prettyprint lang-sh " data-pbcklang="sh" data-pbcktabsize="4">
vim $(php -i | grep &#39;Loaded Configuration File&#39; | awk -F &#39; =&gt; &#39; &#39;{print $2}&#39;)</pre>
<p>This will print out the full path to the file. Once you&rsquo;re in the file, locate the section headed[Date], then ensure that the setting for&nbsp;date.timezone&nbsp;is both uncommented and has a valid value.</p>
<p>If you&rsquo;re not sure of the required setting for your area, consult&nbsp;<a href="https://php.net/manual/en/timezones.php" target="_blank" rel="noopener noreferrer">PHP&rsquo;s list of supported timezones</a>.</p>
<h2>View The Application</h2>
<p>Right, now that it&rsquo;s installed, let&rsquo;s have a look at the running app. It&rsquo;s not special, as there&rsquo;s no&nbsp;database,&nbsp;logging, or&nbsp;caching server&nbsp;connections. It&rsquo;s just a one page application, but it works and looks like the screenshot below:</p>
<p><img decoding="async" alt="FuelPHP on Plesk 12" src="/wp-content/uploads/2014/10/01/fuelphp-default-app.png"" /></p>
<h2>Wrapping Up</h2>
<p>So there you go. In just a few minutes, we&rsquo;ve stepped through creating and configuring a sub-domain, to installing a basic FuelPHP application.</p>
<p>Now it&rsquo;d be great if it was simpler, such as having an installer for Drupal, Joomla and WordPress. But it&rsquo;s a bit hard to compare off the shelf applications, such as these, to frameworks which allow for creating nearly any kind of application.</p>
<p>What I&rsquo;m hoping for is to have an installer which lays the foundation for this process, which may just be available in the future.</p>
<p>Till then, share your thoughts in the comments. Has this made it simpler for you to start creating FuelPHP applications on Plesk? I hope so. I&rsquo;d love to hear how you feel.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
