<?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>Chris Gilligan » new mediaWordpress » Chris Gilligan » new media »</title> <atom:link href="http://chrisgilligan.com/category/wordpress/feed/" rel="self" type="application/rss+xml" /><link>http://chrisgilligan.com</link> <description>portfolio of web work</description> <lastBuildDate>Sun, 05 Feb 2012 16:30:37 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Tuning Apache and MySQL for Best Performance in a Shared Virtual Hosting Environment</title><link>http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/</link> <comments>http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/#comments</comments> <pubDate>Mon, 22 Aug 2011 15:13:20 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[brute force]]></category> <category><![CDATA[buffer length]]></category> <category><![CDATA[buffer pool]]></category> <category><![CDATA[buffer size]]></category> <category><![CDATA[cache size]]></category> <category><![CDATA[configured server]]></category> <category><![CDATA[email servers]]></category> <category><![CDATA[force probes]]></category> <category><![CDATA[innodb]]></category> <category><![CDATA[lfd]]></category> <category><![CDATA[max connections]]></category> <category><![CDATA[memory usage]]></category> <category><![CDATA[mpm]]></category> <category><![CDATA[performance tuning]]></category> <category><![CDATA[php scripts]]></category> <category><![CDATA[pool size]]></category> <category><![CDATA[software accounts]]></category> <category><![CDATA[stateful packet inspection]]></category> <category><![CDATA[static html files]]></category> <category><![CDATA[virtual hosts]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=508</guid> <description><![CDATA[Web hosting has changed dramatically in the last few years. The majority of accounts are now running PHP scripts and MySQL, whereas in the past most accounts were only serving static HTML files. This presents challenges in security as well as performance tuning. It is impossible to predict whether a certain configuration will work properly [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2011/08/LAMP-linux-apache-mysql-php.jpg" width="240" /></p><p><strong><img
class="alignright size-thumbnail wp-image-515" title="LAMP-linux-apache-mysql-php" src="http://chrisgilligan.com/wp-content/uploads/2011/08/LAMP-linux-apache-mysql-php-e1314060599892-150x81.jpg" alt="" width="150" height="81" />Web hosting has changed dramatically in the last few years.</strong> The majority of accounts are now running PHP scripts and MySQL, whereas in the past most accounts were only serving static HTML files. This presents challenges in security as well as performance tuning.</p><p>It is impossible to predict whether a certain configuration will work properly for a given server, unless the hardware, software, accounts, network and traffic are identical to a previously configured server… therefore it is impossible to give a configuration which will cover all applications.</p><h3>Firewall Unnecessary Traffic from Affecting the Server</h3><p>Before you begin performance tuning, please consider using a stateful packet inspection (SPI) firewall &amp; login failure daemon (LFD) for your server: <a
title="ConfigServer free firewall for web servers" href="http://configserver.com/cp/csf.html">ConfigServer Firewall is an excellent free firewall</a> &amp; lfd. This will help prevent brute force probes, port flooding, DDOS, etc. If you have 600 virtual hosts running on a server, it is very likely that the server is experiencing constant malicious exploits, especially if you are also running email servers on the same IP addresses.</p><h3>Tune Apache the Sane Way (Requires Basic Math Skills)</h3><p>If you wish to tune your Apache MPM settings, you should consider following this method:<br
/> <a
href="https://telvps.com/clients/knowledgebase/25/HOW-TO-Optimize-Apache-for-Low-Memory-Usage.html">https://telvps.com/clients/knowledgebase/25/HOW-TO-Optimize-Apache-for-Low-Memory-Usage.html</a><br
/> (the formula works well for any level of traffic and memory).</p><h3>MySQL Tuning Is More Difficult: Trial and Error</h3><p>To test your MySQL cache variables, you may try mysqltuner: <a
title="MySQL performance tuning script" href="https://github.com/rackerhacker/MySQLTuner-perl">https://github.com/rackerhacker/MySQLTuner-perl</a></p><p>This script will analyze MySQL performance and make suggestions regarding your my.cnf configuration. If you are running MySQL 5 or later, the configuration statements can be in the following form (example from one of my servers):</p><p><code>[mysqld]<br
/> safe-show-database<br
/> net_buffer_length = 1M<br
/> max_allowed_packet = 4M<br
/> myisam_sort_buffer_size = 24M<br
/> sort_buffer = 8M<br
/> key_buffer = 32M<br
/> table_cache = 1000<br
/> query_cache_size = 128M<br
/> thread_cache_size = 8<br
/> innodb_buffer_pool_size = 22M<br
/> join_buffer_size = 12M<br
/> tmp_table_size = 64M<br
/> max_heap_table_size = 32M<br
/> max_connections = 85<br
/> </code></p><p>This is for example only! table_cache should be set a little higher than the total number of tables (sum of MYISAM,INNODB,MEMORY etc.), as reported by mysqltuner. If you anticipate adding more virtual hosts, or clients adding more databases or tables, you will need to raise table_cache value.</p><p>Follow the recommendations from the Apache tuning, and then follow the recommendations of the mysqltuner script. The apache tuning will give you the number of maxclients, and from this you will know the appropriate beginning value for [mysqld] maxconnections. Begin with maxconnections set slightly higher than maxclients.</p><h3>Take Time to Get a Realistic Assessment of MySQL Performance</h3><p>If you have a PHP opcode and database caching strategy (such as APC) implemented on your web server and for your PHP script packages, you will be able to lower maxconnections, based on the information you receive from mysqltuner after 24-48 hours of steady traffic. For example, I have a server with Apache set to 256 maxclients, but the MySQL maxconnections set to 200, because many web requests do not require direct interaction with the MySQL server.</p><p>Take a look at &#8220;Highest usage of available connections&#8221;, and lower maxconnections accordingly. It is safe to lower maxconnections to a number slightly above the reported highest usage. Doing so will allow you to set higher values for the individual cache settings which affect the thread cache size, because the total thread buffer memory size is multiplied by maxconnections. Feedback is available in the reports for &#8220;Total buffers&#8221; and &#8220;Highest usage of available connections&#8221;.</p><p>After you have the proper settings for maxclients and maxconnections, restart httpd and mysqld. Wait 1 hour, and run mysqltuner to see if there are any recommended changes. Mysqltuner will show you the maximum memory which will be used by mysql. You should adjust config variables to take up no more than 60% of total RAM. Wait 24-48 hours and run mysqltuner again.</p><h4>Example mysqltuner results:</h4><p><code>-------- Storage Engine Statistics -------------------------------------------<br
/> [--] Status: -Archive -BDB -Federated +InnoDB -ISAM -NDBCluster<br
/> [--] Data in MyISAM tables: 2G (Tables: 748)<br
/> [--] Data in InnoDB tables: 20M (Tables: 76)<br
/> [--] Data in MEMORY tables: 1M (Tables: 1)<br
/> [!!] Total fragmented tables: 55</code></p><p><code>-------- Performance Metrics -------------------------------------------------<br
/> [--] Up for: 15h 7m 18s (1M q [31.195 qps], 105K conn, TX: 7B, RX: 285M)<br
/> [--] Reads / Writes: 63% / 37%<br
/> [--] Total buffers: 390.0M global + 18.6M per thread (200 max threads)<br
/> [OK] Maximum possible memory usage: 4.0G (66% of installed RAM)<br
/> [OK] Slow queries: 0% (13/1M)<br
/> [OK] Highest usage of available connections: 25% (51/200)<br
/> [OK] Key buffer size / total MyISAM indexes: 72.0M/1.1G<br
/> [OK] Key buffer hit rate: 99.9% (1B cached / 1M reads)<br
/> [OK] Query cache efficiency: 78.2% (967K cached / 1M selects)<br
/> [OK] Query cache prunes per day: 0<br
/> [OK] Sorts requiring temporary tables: 0% (0 temp sorts / 74K sorts)<br
/> [OK] Temporary tables created on disk: 20% (7K on disk / 38K total)<br
/> [OK] Thread cache hit rate: 99% (294 created / 105K connections)<br
/> [OK] Table cache hit rate: 84% (1K open / 1K opened)<br
/> [OK] Open file limit used: 71% (1K/2K)<br
/> [OK] Table locks acquired immediately: 99% (684K immediate / 686K locks)<br
/> [OK] InnoDB data size / buffer pool: 20.2M/28.0M</code></p><p><code>-------- Recommendations -----------------------------------------------------<br
/> General recommendations:<br
/> Run OPTIMIZE TABLE to defragment tables for better performance<br
/> MySQL started within last 24 hours - recommendations may be inaccurate<br
/> Enable the slow query log to troubleshoot bad queries</code></p><p>I suggest you NOT enable the slow query log unless the Slow Queries result is very high. Slow Queries result % will be somewhat high if MySQL has run for less than 24 hours.</p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="apache tuning script">apache tuning script</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="apache performance tuning scripts">apache performance tuning scripts</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="opencart slow">opencart slow</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="opencart is slow">opencart is slow</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="tuned mysql now apache high">tuned mysql now apache high</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="opencart slow loading">opencart slow loading</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="join_buffer_size">join_buffer_size</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="apache performance tuning">apache performance tuning</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="powered by phpBB hardware directory">powered by phpBB hardware directory</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/" title="opencart very slow">opencart very slow</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>APC Cache Considerations for Virtual Hosting Environments</title><link>http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/</link> <comments>http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/#comments</comments> <pubDate>Mon, 22 Aug 2011 14:58:21 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[apc]]></category> <category><![CDATA[commodity]]></category> <category><![CDATA[configured]]></category> <category><![CDATA[conflicts]]></category> <category><![CDATA[cpu requirements]]></category> <category><![CDATA[environments]]></category> <category><![CDATA[hosting server]]></category> <category><![CDATA[ini]]></category> <category><![CDATA[neighborhood]]></category> <category><![CDATA[personal clients]]></category> <category><![CDATA[php script]]></category> <category><![CDATA[script packages]]></category> <category><![CDATA[scripts]]></category> <category><![CDATA[source code]]></category> <category><![CDATA[virtual host]]></category> <category><![CDATA[virtual hosts]]></category> <category><![CDATA[virtual server]]></category> <category><![CDATA[virtualmin]]></category> <category><![CDATA[web hosting servers]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=505</guid> <description><![CDATA[APC cache does not work well in a virtual hosting environment unless PHP is running as FCGID, and every individual virtual host has a unique PHP.ini and a unique fcgiwrapper. This is not the case with many virtual hosting environments because the memory and CPU requirements are too great. Also, APC user cache on a [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2010/10/Screen-shot-2010-10-13-at-6.20.12-PM.png" width="240" /></p><p>APC cache does not work well in a virtual hosting environment unless PHP is running as FCGID, and every individual virtual host has a unique PHP.ini and a unique fcgiwrapper. This is not the case with many virtual hosting environments because the memory and CPU requirements are too great.</p><p>Also, APC user cache on a shared hosting server may not work properly, because several accounts may run similar PHP script packages, causing conflicts if scripts are named the same but contain different source code. e.g. if several users are running different versions of WordPress or Joomla, the code in each version will be different, but a cached script may be accessed by several different accounts. Obviously a very bad thing!</p><p><a
title="How to Configure APC Cache on Virtual Servers with PHP running under FCGId" href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/">I suggest using Virtualmin for a shared hosting environment with APC cache</a>, because it does allow to set php.ini and fcgiwrapper for every individual virtual host, and so to set an individual configuration for APC per virtual server. However with 200+ virtual hosts all running PHP script packages, as is the case with a commodity shared hosting server, this will use a lot of memory, and you will need somewhere in the neighborhood of 10-30GB apc.shm_size if you attempt to configure a single APC cache for the entire server.</p><p>My web hosting server is for a small number of personal clients, and so I adjust the APC settings for each individual account, depending on the number and type of PHP script packages running on the account. These accounts are all administered by myself, not by the clients.</p><p>I do not think APC is the correct cache for most shared web hosting servers, given the number of virtual hosts. You will probably have better results if you remove APC and concentrate on <a
title="Tuning Apache and MySQL for Best Performance in a Shared Virtual Hosting Environment" href="http://chrisgilligan.com/portfolio/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/">Apache performance tuning and MySQL cache</a>.</p><p>If your clients are adamant in their requests to use APC cache, you may wish to move them to a different server which can properly handle their needs. Virtualmin is a very good choice for this, as it allows individual accounts to be configured with individual php.ini and fcgiwrapper, or even different versions of PHP. Of course, because this will require greater management, it should be charged as a premium service.</p><p>If you wish to enable APC on a commodity web hosting server, you may try the following method to selectively enable APC per directory:<br
/> <a
href="http://www.php.net/manual/en/ini.php">http://www.php.net/manual/en/ini.php</a></p><p>&nbsp;</p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="powered by phpBB brute force software">powered by phpBB brute force software</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="services forms powered by phpbb">services forms powered by phpbb</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="powered by phpBB drawing of the external parts of the cpu including the front view and the back view">powered by phpBB drawing of the external parts of the cpu including the front view and the back view</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="virtualmin wordpress">virtualmin wordpress</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="powered by phpBB travel in space">powered by phpBB travel in space</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="social engine apc cache multiple sites">social engine apc cache multiple sites</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="apc shared hosting">apc shared hosting</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="FCGIWrapper virtual host">FCGIWrapper virtual host</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="virtualmin apc cache">virtualmin apc cache</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/" title="virtualmin cache apc">virtualmin cache apc</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Remote publishing to WordPress from Facebook via RSS</title><link>http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/</link> <comments>http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/#comments</comments> <pubDate>Tue, 26 Jul 2011 03:51:39 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[business page]]></category> <category><![CDATA[Facebook]]></category> <category><![CDATA[fan page]]></category> <category><![CDATA[FeedWordPress]]></category> <category><![CDATA[permissions]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[RSS]]></category> <category><![CDATA[Simple Facebook Connect]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=486</guid> <description><![CDATA[Most WordPress developers know you can use one of several plugins to publish from WordPress to a Facebook wall, app or fan page. Did you know you can also do the opposite? You can publish from Facebook to WordPress by using the FeedWordPress plugin and the RSS feed from your fan page. This can be [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-8.47.54-PM.png" width="240" /></p><p>Most WordPress developers know you can use one of several plugins to publish from WordPress to a Facebook wall, app or fan page. Did you know you can also do the opposite? You can publish from Facebook to WordPress by using the <a
href="http://wordpress.org/extend/plugins/feedwordpress/">FeedWordPress plugin</a> and the RSS feed from your fan page. This can be handy for clients who want to keep their site updated with blog posts, or share links and information, but don&#8217;t necessarily want to spend the time to post with WordPress.</p><p>Let&#8217;s face it, Facebook is convenient to use to share a link, upload small photos and video, or write a brief update.</p><h3>Your Blog is Hungry</h3><p>FeedWordPress is a plugin that pulls content from an RSS feed and publishes articles as WordPress posts. It is somewhat complex to set up properly, so I won&#8217;t go into that here. It&#8217;s up to you to figure it out, but it is very useful for adding non-copyright or permitted content to your site or a client&#8217;s site. For instance, I use it to publish bicycle manufacturer&#8217;s RSS feeds to a <a
title="Bike Shop Website with Facebook Features" href="http://chrisgilligan.com/portfolio/bike-shop-website-with-facebook-features/">local bike shop&#8217;s WordPress site</a>. You can also use it to create a scraper site, but you wouldn&#8217;t do that, would you?</p><h3>Connect WordPress to Facebook</h3><p>Using the <a
href="http://wordpress.org/extend/plugins/simple-facebook-connect/">plugin Simple Facebook Connect</a>, your client can publish WordPress posts to a Facebook fan page.  I suggest you install Simple Facebook Connect and learn how to set up a simple Facebook App using the plugin&#8217;s easy instructions. This will allow your website to use Facebook authentication to Publish to Facebook, allow comments by logged in Facebook users, etc.</p><p>Creating an App instead of a Fan Page or Business page may suit your needs. Give it a try if you have not already set up a Facebook Page. If you use SFC, don&#8217;t set it to automatically publish to Facebook, or you may create a publishing loop. Leave it set to manual publishing and you&#8217;ll have an extra Publish button in the post editor for that purpose.</p><h3>Setting up the Facebook RSS Feed</h3><p>If your client would like to use Facebook&#8217;s simple, highly available, multi-device platform to publish content to a WordPress website, you will need a Facebook page or app&#8217;s RSS feed.</p><p>Facebook Fan Pages or Business Pages are for groups or businesses. If you build websites, you have probably set these up for several clients already. But to make the RSS feed from the page available to RSS readers and aggregators, you must change a few settings:</p><ul><li>Edit Page &gt; Manage Permissions</li><li>Uncheck Only Admins can See Page</li><li>Age Restrictions: None</li><li>Country Restrictions: None</li></ul><p>Uncheck All:</p><ul><li>Users can write or post content on the wall</li><li>Users can add photos</li><li>Users can add tags to photos</li><li>Users can add videos</li></ul><p><img
class="size-full wp-image-487 alignnone" title="Facebook Page Edit Settings" src="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-8.55.00-PM.png" alt="" width="583" height="259" /></p><p>This will make your wall posts available to the general public, because users with restricted privacy settings cannot post to your wall (they can still comment on your posts).</p><p>Now you can click the Subscribe by RSS link on your page, and the RSS feed will not display the dreaded &#8220;Facebook Syndication Error&#8221;:</p><blockquote><p>You probably reached this page by entering the guide of a syndicated error message into the location bar of your browser. This probably means that you can’t see the feed that you were trying to access. This is probably because the owner of the feed changed his or her privacy settings or deleted content on the feed. You may be able to get access to the feed by contacting the owner of the content being syndicated in that feed.</p></blockquote><p>You will get a RSS URL: http://www.facebook.com/feeds/page.php?id=195534004499&amp;format=rss20</p><div
class="woo-sc-box note">If your feed&#8217;s language needs to be adjusted, for instance if your site is hosted in Netherlands but your audience is in U.S., you will need to add a locale parameter to the feed URL: http://www.facebook.com/feeds/page.php?id=195534004499&amp;format=rss20&amp;locale-en_US</div><p>Try it in Firefox or NetNewsWire or any RSS Reader to see if you get a valid feed. If you see Facebook Syndication Error, then go back and edit your page&#8217;s permissions (see above).</p><div
class="woo-sc-box note">If your site is hosted in a locale different from the locale of your Facebook page (e.g. your host is located in Europe, but your Facebook page is for North America), then you should use the resolved IP address for Facebook for your locale. You can find this IP address from a terminal window with the ping command. Otherwise, Facebook.com will resolve to the IP address and language for your host server. This causes synchronization issues and may cause a sync timeout which can block your pages from loading.</div><h3>FeedWordPress Syndication</h3><p>OK, now you have a valid feed. Add it to FeedWordPress. The settings you may wish to change:</p><p><strong>Posts &amp; Links &gt;</strong></p><ul><li>Permalinks point to: The local copy on this website</li><li>Relative URIs: leave relative URIs unresolved</li><li>Formatting filters: Expose syndicated posts to formatting filters</li></ul><p>Now, you should have a valid RSS feed and a properly configured Syndication system.Log in to Facebook and go to the app or page (easy way is to type the name into Facebook search bar at top).Share a Link, paste the URL of the page you want to feature, e.g. http://www.extremevisionhomes.com/</p><p><img
class="alignnone size-full wp-image-488" title="Posting from Facebook to WordPress via RSS" src="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-8.47.54-PM.png" alt="" width="527" height="468" /></p><p>Edit the fields in the Link content by clicking on them. Or, you can upload a photo or video. But be sure to add a tagline to &#8220;Say something about this…&#8221; This line becomes your Title in the RSS feed or WordPress post. Otherwise you will see a generic &#8220;Your Client&#8217;s Facebook Wall 07/12/2011 15:35:43&#8243; as the title.</p><p><img
class="alignnone size-full wp-image-489" title="Facebook WordPress Syndication RSS" src="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-8.50.58-PM.png" alt="" width="515" height="199" /></p><p>And on the client&#8217;s site, you will see this:</p><p><a
href="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-10.48.23-PM.png"><img
class="alignnone size-large wp-image-491" title="Facebook Wall Posts on WordPress Website via Facebook RSS" src="http://chrisgilligan.com/wp-content/uploads/2011/07/Screen-Shot-2011-07-25-at-10.48.23-PM-1024x654.png" alt="" width="640" height="408" /></a></p><p>You may want to set up a WordPress Category for these posts. FeedWordPress can be configured to post to a specific Category, add Tags, etc. You might even separate these posts from the main blog page, or style them in your WordPress theme via CSS or a Category Template.</p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="facebook syndication error rss">facebook syndication error rss</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="from facebook to wordpress">from facebook to wordpress</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="rotating twitter feed">rotating twitter feed</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="travel “powered by expressionengine”">travel “powered by expressionengine”</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="intitle：furniture">intitle：furniture</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="Furniture Blog Comment &quot;Powered by ExpressionEngine&quot;">Furniture Blog Comment &quot;Powered by ExpressionEngine&quot;</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="fancybox watermark">fancybox watermark</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="facebook rss syndication error">facebook rss syndication error</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="error scraping page facebook">error scraping page facebook</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/" title="publish from facebook to wordpress">publish from facebook to wordpress</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/remote-publishing-to-wordpress-from-facebook-via-rss/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Cpanel Mailman mailing lists: cannot manage lists after migrating to new host</title><link>http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/</link> <comments>http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/#comments</comments> <pubDate>Tue, 19 Jul 2011 19:27:32 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Cpanel]]></category> <category><![CDATA[Mailman]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[check_perms]]></category> <category><![CDATA[cpanel]]></category> <category><![CDATA[directory permissions]]></category> <category><![CDATA[hosting]]></category> <category><![CDATA[mailing lists]]></category> <category><![CDATA[mailman]]></category> <category><![CDATA[mailman permissions]]></category> <category><![CDATA[migrate]]></category> <category><![CDATA[migration]]></category> <category><![CDATA[vps]]></category> <category><![CDATA[whm]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=466</guid> <description><![CDATA[We recently migrated 2 Cpanel servers to VPS. Most things migrated properly and without incident. However, Mailman mailing lists were the exception. Mailing lists appear to have migrated properly, as they show up under WHM and Cpanel and usr/local/cpanel/3rdparty/mailman/bin/list_lists However, when cpanel user clicks Manage link, the following message appears: cpanel1.hosting.com mailing lists &#8211; Admin [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2011/07/logo-mailman.jpg" width="240" /></p><p><strong>We recently migrated 2 Cpanel servers to VPS.</strong> Most things migrated properly and without incident. However, Mailman mailing lists were the exception.</p><p>Mailing lists appear to have migrated properly, as they show up under WHM and Cpanel and usr/local/cpanel/3rdparty/mailman/bin/list_lists</p><p>However, when cpanel user clicks Manage link, the following message appears:</p><blockquote><p>cpanel1.hosting.com mailing lists &#8211; Admin Links<br
/> No such list listname_domainname.com<br
/> There currently are no publicly-advertised Mailman mailing lists on cpanel1.hosting.com.To visit the administrators configuration page for an unadvertised list, open a URL similar to this one, but with a &#8216;/&#8217; and the right list name appended. If you have the proper authority, you can also create a new mailing list.</p></blockquote><p><strong>This turned out to be a permissions issue:</strong></p><p><code>root@cpanel1 [/usr/local/cpanel/3rdparty/mailman/bin]# ./check_perms</code></p><p><code>--snip--<br
/> directory permissions must be 02775: /usr/local/cpanel/3rdparty/mailman/.../list_domain.com/...<br
/> --snip--<br
/> Problems found: 2999</code></p><p><code># ./check_perms -f</code></p><p><strong>FIXED!!!</strong></p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by Expression Engine forum site list">powered by Expression Engine forum site list</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="cpanel no such list">cpanel no such list</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="There currently are no publicly-advertised Mailman mailing lists">There currently are no publicly-advertised Mailman mailing lists</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by phpBB how to check ram">powered by phpBB how to check ram</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by phpBB most popular internet search terms">powered by phpBB most popular internet search terms</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by phpBB search the internet">powered by phpBB search the internet</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by phpBB social networking issues and problems">powered by phpBB social networking issues and problems</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="cpanel mailman">cpanel mailman</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="/usr/local/cpanel/3rdparty/mailman/lists permissions change">/usr/local/cpanel/3rdparty/mailman/lists permissions change</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/" title="powered by phpBB child support office">powered by phpBB child support office</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/cpanel-mailman-mailing-lists-cannot-manage-lists-after-migrating-to-new-host/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Apache config for Worker MPM vs Prefork MPM</title><link>http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/</link> <comments>http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/#comments</comments> <pubDate>Wed, 13 Jul 2011 14:42:39 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[apache config]]></category> <category><![CDATA[apache group]]></category> <category><![CDATA[group permissions]]></category> <category><![CDATA[memory usage]]></category> <category><![CDATA[mpm]]></category> <category><![CDATA[performance testing]]></category> <category><![CDATA[php scripts]]></category> <category><![CDATA[phpmyadmin]]></category> <category><![CDATA[prefork]]></category> <category><![CDATA[prefork mpm]]></category> <category><![CDATA[server apache]]></category> <category><![CDATA[worker mpm]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=421</guid> <description><![CDATA[Some installations of Apache will have been compiled to work with either Prefork or Worker MPM, but most by default are compiled only to work with Prefork. Changing to Worker MPM may allow your server to handle much higher traffic, more user sessions, with less RAM use. Your site or server will not scale well [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2011/07/apache_web-hosting.png" width="240" /></p><p>Some installations of Apache will have been compiled to work with either Prefork or Worker MPM, but most by default are compiled only to work with Prefork. Changing to Worker MPM may allow your server to handle much higher traffic, more user sessions, with less RAM use. Your site or server will not scale well if it is running Prefork MPM. Worker is a bit more difficult to set up properly, and has some restrictions regarding functionality of PHP scripts.</p><ul><li>To determine which MPM is running:<pre>/usr/sbin/apachectl -l</pre></li><ul><li>If you see worker.c in the list of loaded modules, your Apache is running Worker MPM. If prefork.c, it is running prefork.</li></ul></ul><ul><li>To determine if apache has Worker MPM compiled in:<pre>/usr/sbin/httpd.worker -l</pre><ul><li>If you see worker.c in the list of compiled-in modules, Apache can run Worker MPM.</li></ul></li></ul><p>Here is some useful info to help if your installation of Apache will work with Worker MPM:</p><ul><li><a
href="http://www.virtualmin.com/node/15046">http://www.virtualmin.com/node/15046</a></li><li><a
href="http://articles.slicehost.com/2010/5/19/configuring-the-apache-mpm-on-centos">http://articles.slicehost.com/2010/5/19/configuring-the-apache-mpm-on-centos</a></li></ul><ul><li>Un-Comment HTTPD=/usr/sbin/httpd.worker in<code> /etc/sysconfig/httpd</code></li><li>restart apache</li><li>do some performance testing and raise your worker server and thread limits to sane levels in httpd.conf</li></ul><p>If you need to recompile Apache and PHP, then you should do more research. Recompiling is not a trivial process.</p><p>I found that my server had much better memory usage under Worker MPM, however:</p><div><ul><li>some scripts (squirrelmail, phpmyadmin) do not work on a per-domain basis and must be run direct to the actual server process with symlinked directories. This is much more efficient but less convenient for virtual domain owners</li><li>some /dev processes took on strange group permissions, getting the gid of the first user in the apache group.</li><li>browser caching was not well supported&#8230; the dreaded &#8220;blank screen between page loads&#8221; occurred more frequently under Worker MPM than Prefork MPM&#8230; also login/logout was sketchy on some sites&#8230; not sure why but my guess is that sessions may not be quite persistent using Worker vs Prefork due to cookie confusion&#8230; possible that multi-threading does not track cookies well.</li></ul><div>More testing will be necessary to determine whether Worker MPM is a benefit on my server.</div></div> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="prefork mpm vs worker mpm">prefork mpm vs worker mpm</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="threadlimit for apache worker mpm">threadlimit for apache worker mpm</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="apache prefork vs worker">apache prefork vs worker</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="worker vs prefork">worker vs prefork</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="prefork vs worker">prefork vs worker</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="apache worker vs prefork">apache worker vs prefork</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="apache mpm worker vs prefork">apache mpm worker vs prefork</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="worker mpm">worker mpm</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="optimize apache for joomla">optimize apache for joomla</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/" title="set up worker c">set up worker c</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Recursive chmod Tricks</title><link>http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/</link> <comments>http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/#comments</comments> <pubDate>Tue, 05 Jul 2011 14:37:58 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[chmod]]></category> <category><![CDATA[directories only]]></category> <category><![CDATA[directory only]]></category> <category><![CDATA[file only]]></category> <category><![CDATA[folders only]]></category> <category><![CDATA[only directories]]></category> <category><![CDATA[only files]]></category> <category><![CDATA[only folders]]></category> <category><![CDATA[php files]]></category> <category><![CDATA[recursive]]></category> <category><![CDATA[recursively]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=349</guid> <description><![CDATA[Recursively chmod only directories find . -type d -exec chmod 755 {} \; Similarly, recursively set the execute bit on every directory chmod -R a+X * The +X flag sets the execute bit on directories only Recursively chmod only files find . -type f -exec chmod 644 {} \; Recursively chmod only PHP files (with extension .php) find . -type f -name '*.php' -exec chmod 644 {} \; Incoming search terms for the article:chmod recursive directories onlychmod recursiverecursive chmodchmod tricksphp [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2011/07/chmod-linux-1.png" width="240" /></p><p>Recursively <strong>chmod</strong> only directories<br
/> <code>find . -type d -exec <strong>chmod</strong> 755 {} \;</code></p><p>Similarly, recursively set the execute bit on every directory<br
/> <code><strong>chmod</strong> -R a+X *</code><br
/> The +X flag sets the execute bit on directories only</p><p>Recursively <strong>chmod</strong> only files<br
/> <code>find . -type f -exec <strong>chmod</strong> 644 {} \;</code></p><p>Recursively <strong>chmod</strong> only PHP files (with extension .php)<br
/> <code>find . -type f -name '*.php' -exec <strong>chmod</strong> 644 {} \;</code></p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod recursive directories only">chmod recursive directories only</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod recursive">chmod recursive</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="recursive chmod">recursive chmod</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod tricks">chmod tricks</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="php chmod recursive">php chmod recursive</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod recursive directories">chmod recursive directories</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod directories only">chmod directories only</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod recursive directory only">chmod recursive directory only</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="recursive chmod only on directories">recursive chmod only on directories</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/" title="chmod recursive files only">chmod recursive files only</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/chmod-recursive-files-only-directories-type/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>How to Configure APC Cache on Virtual Servers with PHP running under FCGId</title><link>http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/</link> <comments>http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/#comments</comments> <pubDate>Tue, 09 Nov 2010 01:33:31 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[apache]]></category> <category><![CDATA[apc]]></category> <category><![CDATA[apc cache]]></category> <category><![CDATA[apc fcgid]]></category> <category><![CDATA[commodity web]]></category> <category><![CDATA[Database]]></category> <category><![CDATA[hooks]]></category> <category><![CDATA[hosts section]]></category> <category><![CDATA[ini]]></category> <category><![CDATA[installation suggestions]]></category> <category><![CDATA[memory limit]]></category> <category><![CDATA[mpm]]></category> <category><![CDATA[page cache]]></category> <category><![CDATA[performance testing]]></category> <category><![CDATA[php module]]></category> <category><![CDATA[php.ini apc settings]]></category> <category><![CDATA[server performance]]></category> <category><![CDATA[system resources]]></category> <category><![CDATA[traffic surges]]></category> <category><![CDATA[virtual domains]]></category> <category><![CDATA[virtual hosts]]></category> <category><![CDATA[virtual private server]]></category> <category><![CDATA[virtual servers]]></category> <category><![CDATA[virtualmin]]></category> <category><![CDATA[web hosting servers]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=274</guid> <description><![CDATA[My Virtualmin CentOS 5.6 Virtual Private Server runs several virtual domains with PHP under FCGId using APC for opcode caching: Joomla, PHPbb, WordPress, etc . APC is somewhat challenging to configure properly with fcgid-enabled virtual domains, but it is quite helpful to optimize system resources and prevent traffic surges on one site from affecting overall [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2010/10/Screen-shot-2010-10-13-at-6.20.12-PM.png" width="240" /></p><div
id="attachment_306" class="wp-caption alignright" style="width: 301px"><a
href="http://chrisgilligan.com/wp-content/uploads/2010/10/Screen-shot-2010-10-13-at-6.20.12-PM.png"><img
class="size-medium wp-image-306" title="APC INFO" src="http://chrisgilligan.com/wp-content/uploads/2010/10/Screen-shot-2010-10-13-at-6.20.12-PM-291x300.png" alt="APC INFO Monitor" width="291" height="300" /></a><p
class="wp-caption-text">APC INFO Monitor</p></div><p><strong>My Virtualmin CentOS 5.6</strong> Virtual Private Server runs several virtual domains with <strong>PHP under FCGId</strong> using <strong>APC for opcode caching</strong>: Joomla, PHPbb, WordPress, etc . APC is somewhat challenging to configure properly with fcgid-enabled virtual domains, but it is quite helpful to optimize system resources and prevent traffic surges on one site from affecting overall server performance. Joomla and PHPbb have code that is pre-optimized with hooks for APC, but WordPress requires a plugin called <strong>W3 Total Cache</strong>.</p><h3>First Things First</h3><p>Please read my posts about <a
title="APC Cache Considerations for Virtual Hosting Environments" href="http://chrisgilligan.com/wordpress/apc-cache-considerations-for-virtual-hosting-environments/">APC on commodity virtual hosting servers</a> and <a
title="Tuning Apache and MySQL for Best Performance in a Shared Virtual Hosting Environment" href="http://chrisgilligan.com/portfolio/tuning-apache-and-mysql-for-best-performance-in-a-shared-virtual-hosting-environment/">Apache and MySQL performance tuning</a> before you begin.</p><p>If you are running your virtual servers under FCGId, then you should do so for all virtual servers on your machine. Why? Because then you do not need apache&#8217;s mod_php (php module). Less modules loaded, less wasted memory.</p><ul><li>Comment out:<code><br
/> LoadModule php5_module modules/libphp5.so</code><br
/> in /etc/httpd/conf.d/php.conf</li><li>Remove any php_memory_limit lines in httpd.conf&#8217;s virtual hosts section.<code></code></li><li>restart apache<br
/> <code></code></li><li>do some performance testing and raise your server and thread limits to sane levels in httpd.conf</li></ul><p>If possible, you may wish to run Apache with Worker MPM instead of Prefork MPM.</p><ul><li>More information about <a
title="Apache config for Worker MPM vs Prefork MPM" href="http://chrisgilligan.com/wordpress/apache-config-for-worker-mpm-vs-prefork-mpm/">Apache Worker MPM vs. Prefork MPM »</a></li></ul><p><span
class="Apple-style-span" style="font-size: 15px; font-weight: bold;">Installation Suggestions and Modification of Defaults</span></p><p>Be sure to install the newest version of APC, 3.1.9 as of the last revision of this post (I assume you know how to install and configure all the packages mentioned in this post):</p><p><code>pecl install apc</code></p><p><strong>For W3 Total Cache (WordPress plugin):</strong><br
/> Page Cache: do not choose APC for the W3TC&#8217;s Page Cache, choose Enhanced Disk.<br
/> Minify: do not choose APC for Minify, use Disk.<br
/> Opcode Cache: choose APC for Opcode Cache<br
/> Database Cache: choose APC for Opcode Cache<em><br
/> </em></p><p><strong>For APC running on virtual servers for opcode caching:</strong><br
/> <em> Remove</em> apc.ini from /etc/php.d. Do not add the APC configuration into /etc/php.ini (main php.ini which is probably a template used for creation of new virtual servers).</p><p>Instead, enable APC on a per-domain basis by modifying the respective /home/domainname.com/etc/php5/php.ini &#8212; your httpd.conf or virtual.conf should look something like this for each virtual domain.</p><p><code>&lt;VirtualHost 99.88.177.288:80&gt;<br
/> ServerName chrisgilligan.com<br
/> ServerAlias www.chrisgilligan.com<br
/> DocumentRoot /home/chris/public_html<br
/> ErrorLog /var/log/serversoftware/chrisgilligan.com_error_log<br
/> CustomLog /var/log/serversoftware/chrisgilligan.com_access_log combined<br
/> ScriptAlias /cgi-bin/ /home/chris/cgi-bin/<br
/> DirectoryIndex index.html index.htm index.php index.php4 index.php5<br
/> &lt;Directory /home/chris/public_html&gt;<br
/> Options Indexes IncludesNOEXEC FollowSymLinks ExecCGI<br
/> allow from all<br
/> AllowOverride All<br
/> AddHandler fcgid-script .php<br
/> AddHandler fcgid-script .php5<br
/> FCGIWrapper /home/chris/fcgi-bin/php5.fcgi .php<br
/> FCGIWrapper /home/chris/fcgi-bin/php5.fcgi .php5<br
/> &lt;/Directory&gt;<br
/> &lt;Directory /home/chris/cgi-bin&gt;<br
/> allow from all<br
/> &lt;/Directory&gt;<br
/> SuexecUserGroup "#987" "#756"<br
/> Options ExecCGI FollowSymLinks Includes IncludesNOEXEC -Indexes MultiViews SymLinksIfOwnerMatch<br
/> RemoveHandler .php<br
/> RemoveHandler .php5<br
/> IPCCommTimeout 12<br
/> &lt;/VirtualHost&gt;<br
/> </code></p><p>You must &#8220;babysit&#8221; the configuration: use the APC monitor (apc.php) to see how many files are being cached, and how much memory (apc.shm_size) is needed to avoid fragmentation, which will cause the 500 errors. If fragmentation rises quickly to 100%, memory usage is full, and cache full count rises above 0, you will almost surely see &#8220;500&#8243; errors.</p><p>If WordPress is the only PHP script software package on the domain, the following configuration will likely work for you; if you have more PHP software packages, you will need to raise apc.shm_size and raise the apc.user_entries_hint and apc.user_entries_hint settings, and possibly lower TTL values to allow cached files to expire and be replaced.</p><p>In general, you must <em>double</em> apc.shm_size in relation to APC&#8217;s highest reported Memory Usage to avoid fragmentation completely.</p><h3>Configuration Suggestion for php.ini</h3><p>in the virtual server&#8217;s /home/domainname.com/etc/php5/php.ini, add the following configuration:<br
/> (you may also install memcached, and should install fileinfo for full use of W3 Total Cache)</p><p><code>[memcached]<br
/> ;memcached for distributed servers - e.g. mysql server on separate host<br
/> ;extension=memcache.so</code></p><p><code>[fileinfo]<br
/> extension=fileinfo.so</code></p><p><code>[APC]<br
/> extension = apc.so<br
/> apc.enabled = 1<br
/> apc.shm_segments = 1<br
/> apc.shm_size = 32M<br
/> apc.optimization = 0<br
/> apc.num_files_hint = 512<br
/> apc.user_entries_hint = 1024<br
/> apc.ttl = 0<br
/> apc.user_ttl = 0<br
/> apc.gc_ttl = 600<br
/> apc.cache_by_default = 1<br
/> apc.filters = "apc\.php$"<br
/> apc.slam_defense = 0<br
/> apc.use_request_time = 1<br
/> apc.mmap_file_mask = /tmp/apc-yourusernamehere.XXXXXX<br
/> ;OR apc.mmap_file_mask = /dev/zero<br
/> apc.file_update_protection = 2<br
/> apc.enable_cli = 0<br
/> apc.max_file_size = 2M<br
/> apc.stat = 1<br
/> apc.write_lock = 1<br
/> apc.report_autofilter = 0<br
/> apc.include_once_override = 0<br
/> apc.rfc1867 = 0<br
/> apc.rfc1867_prefix = "upload_"<br
/> apc.rfc1867_name = "APC_UPLOAD_PROGRESS"<br
/> apc.rfc1867_freq = 0<br
/> apc.localcache = 1<br
/> apc.localcache.size = 512<br
/> apc.coredump_unmap = 0<br
/> apc.stat_ctime = 0</code></p><p>Save php.ini, restart apache and then watch the APC Monitor to ensure fragmentation stays below 50% (it should remain less than 10% most of the time&#8230; if fragmentation rises quickly, you should add a few more MB&#8217;s of memory to apc.shm_size and restart apache).</p><h3>Monitoring APC Performance and Detecting Errors</h3><p>You should run apc.php in a password-protected directory in the domain&#8217;s public_html. Edit the apc.php code to allow passwordless access.<br
/> <code>defaults('USE_AUTHENTICATION',0);</code></p><p>You can monitor errors with these commands:<br
/> <code>tail -f -n 50 /var/log/httpd/error_log<br
/> tail -f -n 50 /home/domainname.com/logs/error_log</code></p><p>In the logs, you should see messages like the following:<br
/> <code>mod_fcgid: process /home/username/public_html/scriptname.php(21272) exit(lifetime expired), terminated by calling exit(), return code: 0</code><br
/> <code>... exit(server exited) ...</code><br
/> <code>... exit(idle timeout) ...</code><br
/> if the cache is working well. If you see <code>exit(communication error)</code> then you have issues, probably cache full and fragmented.</p><h3>Fragmentation Explained</h3><p>Fragmentation is a measure of the non-available portion of apc.shm_size due to lack of contiguous memory large enough to accept new cache items. 100% fragmentation means the available memory is broken into hundreds of small pieces that are too small to accept new cache items. This occurs when cached items expire and new cached items fill their vacated memory slots; usually the new item is slightly smaller than the old item, and the leftover space may be too small for a new cache item.</p><p>Fragmentation can cause even a large amount of free memory to be unavailable for new cache items. That is why I say above you can avoid fragmentation by doubling the apc.shm_size in relation to the largest total memory usage you see. So you may want to start with 100MB, let the site run for a few hours during high traffic conditions, and then reduce shm_size to roughly double the highest amount of cache memory usage during that time.</p><h3>Further Information and Suggestions</h3><p>APC can have a very significant effect on minimizing overall server load and overall memory usage. It takes time to configure, and must be re-configured whenever PHP script software is added to a virtual server. The more plugins/mods/components you add to a PHP software package, the more scripts, database queries and objects will be cached.</p><p>If you have PHP scripts or plugins that do not need to be cached (low traffic pages such as contact forms, PHP scripts that do not have APC hooks and have their own caching schemes, dynamic image resizers, etc.), you can filter them out with simple RegEx:<br
/> <code>apc.filters = "-/home/username/public_html/apc\.php$,-/home/username/public_html/wordpress/wp-content/themes/themename/thumb\.php$,-/usr/share/psa-horde/.*,+/home/username/public_html/phpmyadmin/.*"</code></p><p>TimThumb is a good example of a common WordPress theme plugin that may not need to be cached.</p><p>Because the apc.filters RegExp only works with filenames, it is not possible to filter out an entire PHP script package, component or plugin based on the directory where it resides. So if you do not wish to use APC cache on a particular script package, you should run it in a separate website. Some PHP script packages such as Gallery2 have an incredibly large number of .php, .inc and .class files which will be cached, so it is difficult to find them all and filter them all using apc.filters.</p><p>If you can&#8217;t raise apc.shm_size due to lack of available memory, try lowering the TTL&#8217;s (values in seconds, 0 is no limit, 600=10minutes, etc.). This will still have a good effect on high-traffic sites with many concurrent end users; caching is not at all necessary for low-traffic sites. However, be aware that lower TTL&#8217;s can cause more fragmentation.</p><h3>During Testing or Debugging with CMS caching plugins or modules</h3><p>While you are tweaking your opcode settings, and especially if you are using APC with a CMS like WordPress (w3 total cache) or phpbb or joomla, and you are experimenting with settings, you should set apc.stat=1 (on). Restart the web server to load the new settings.</p><p>APC.Stat is the file change polling, which checks for file change every time a cached script or object is called. So, with polling turned off, your settings/configuration files may remain cached, and this may cause you some frustration. W3 Total Cache in particular is difficult to get configured properly with apc.stat=0 because the config settings and files are dependent upon database and php, which will be cached as files or opcode.</p><p>After you have sorted out your opcode settings, switch apc.stat=0 and restart the web server to turn off polling for better performance.</p><p>If you cannot get APC to configured correctly for your WordPress sites, I suggest WP Super Cache and WP Minify&#8230; that combination will probably have a better effect, as it will serve pages very quickly and accellerate user experience for a small number of users. Joomla 1.5 and phpBB3 are much easier to work with, as their caching systems are built to use APC and other opcode caches. Apparently, Gallery3 now also supports opcode caching.</p><p><strong>More advice: </strong></p><ul><li>turn <strong><em>on</em></strong> apc.stat (documentation says, not for production servers, but W3 needs stat to monitor file status)</li><li>turn <strong><em>off</em></strong> apc.optimization (experimental and unstable, may cache user session info, fubaring items which should not be cached, such as admin pages and logged-in site pages)</li><li>turn <strong><em>off</em></strong> apc.include_once_override (use carefully; only useful with PHP scripts that do not have cache hooks, such as Joomla 1.0, phpBB2, etc.)</li><li>turn <em><strong>off</strong></em> apc.slam_defense (may cause objects to be replaced with PHP warnings which are displayed to the user, especially on Joomla 1.5)</li><li>set apc.user_ttl = 0 (allows your php scripts to set appropriate timeouts for queries and objects)</li><li>set apc.mmap_file_mask = /tmp/apc-yourusernamehere.XXXXXX for file-backed mmap; make file mask unique by adding your unique string; XXXXXX (exactly 6 X&#8217;s) must remain to allow APC to add random string<br
/> OR set to /dev/zero for anonymous mmap if you can spare the memory</li></ul><p><small>APC Manual: <a
href="http://www.php.net/manual/en/book.apc.php">http://www.php.net/manual/en/book.apc.php</a><br
/> APC Runtime Configuration <a
href="http://www.php.net/manual/en/apc.configuration.php">http://www.php.net/manual/en/apc.configuration.php</a></small></p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="configure APC">configure APC</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="For optimal performance we recommend adding the Alternative PHP Cache (APC) extension">For optimal performance we recommend adding the Alternative PHP Cache (APC) extension</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="apc config">apc config</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="[ phpinfo ] [ php ini ] [ cpu ] [ mem ] [ users ] [ tmp ] [ delete ]">[ phpinfo ] [ php ini ] [ cpu ] [ mem ] [ users ] [ tmp ] [ delete ]</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="apc user cache entries timeout">apc user cache entries timeout</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="how to configure apc">how to configure apc</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="howto config apc so">howto config apc so</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="apc fragmentation">apc fragmentation</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="php apc config">php apc config</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/" title="apache is running a threaded mpm but your php module is not compiled to be threadsafe">apache is running a threaded mpm but your php module is not compiled to be threadsafe</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/wordpress/how-to-configure-apc-cache-on-virtual-servers-with-php-running-under-fcgid/feed/</wfw:commentRss> <slash:comments>41</slash:comments> </item> <item><title>Farmers Market Website</title><link>http://chrisgilligan.com/portfolio/farmers-market-website/</link> <comments>http://chrisgilligan.com/portfolio/farmers-market-website/#comments</comments> <pubDate>Sun, 05 Sep 2010 19:35:30 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Agriculture]]></category> <category><![CDATA[Content Management Systems]]></category> <category><![CDATA[Organic Farms]]></category> <category><![CDATA[Portfolio]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[chattanooga]]></category> <category><![CDATA[Content Management]]></category> <category><![CDATA[farmers market]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Google Analytics]]></category> <category><![CDATA[local designers]]></category> <category><![CDATA[logos]]></category> <category><![CDATA[recipes]]></category> <category><![CDATA[Search Engine Optimization]]></category> <category><![CDATA[slider]]></category> <category><![CDATA[SlideShowPro]]></category> <category><![CDATA[Social Media]]></category> <category><![CDATA[Twitter]]></category> <category><![CDATA[widgets]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=260</guid> <description><![CDATA[This is a major redesign of the website for Chattanooga&#8217;s Main St Farmers Market. Local designers Widgets &#38; Stone came up with the logos and suggested the look and feel, and I worked with Padgett Arnold to get the visuals and content just right. One interesting fact about the site: the web server is located [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2010/09/Picture-11.png" width="240" /></p><div
id="attachment_261" class="wp-caption aligncenter" style="width: 310px"><a
href="http://mainstfarmersmarket.com/"><img
class="size-medium wp-image-261" title="Main St Farmers Market" src="http://chrisgilligan.com/wp-content/uploads/2010/09/Picture-11-300x248.png" alt="" width="300" height="248" /></a><p
class="wp-caption-text">Main St Farmers Market website</p></div><p><strong>This is a major redesign</strong> of the website for <a
href="http://mainstfarmersmarket.com/">Chattanooga&#8217;s Main St Farmers Market</a>. Local <a
href="http://widgetsandstone.com/page/projects/unprocessing-farmers-trademark/">designers Widgets &amp; Stone</a> came up with the logos and suggested the look and feel, and I worked with Padgett Arnold to get the visuals and content just right. One interesting fact about the site: the web server is located on Main St as well! Keepin&#8217; it LOCAL!</p><ul><li>Interactive home page presents tons of information in a compact javascript slider</li><li>Fresh content includes recipes and a list of what&#8217;s available each week</li><li>Facebook fan page gets automatically updated with new content</li><li>New photos and videos are easily uploaded via SlideShowPro and YouTuber for a fun, engaging user experience</li><li>Lightweight CSS3 design and an alternative layout for mobile browsers present the site quickly and efficiently</li></ul> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="powered by phpBB define agriculture">powered by phpBB define agriculture</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="powered by phpBB money market">powered by phpBB money market</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="farmers market website">farmers market website</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="marketing “powered by expressionengine”">marketing “powered by expressionengine”</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="building blog comment powered by expressionengine">building blog comment powered by expressionengine</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="slideshowpro phpbb">slideshowpro phpbb</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="slideshowpro and mysql">slideshowpro and mysql</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="web pages using slideshow pro">web pages using slideshow pro</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="wordpress famers template">wordpress famers template</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/farmers-market-website/" title="slideshow pro upload via twitter">slideshow pro upload via twitter</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/portfolio/farmers-market-website/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Social Media &#8212; Facebook, Twitter, Blogging and Sharing</title><link>http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/</link> <comments>http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/#comments</comments> <pubDate>Thu, 03 Dec 2009 19:19:42 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Content Management Systems]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Bookmarking]]></category> <category><![CDATA[Facebook]]></category> <category><![CDATA[Social Media]]></category> <category><![CDATA[Twitter]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=219</guid> <description><![CDATA[Social media, including sites like Facebook and MySpace, micro-blogging platforms like Twitter, and sharing/bookmarking tools like Digg, Del.icio.us and Stumble Upon are all very important to your outreach to customers, not to mention the incoming links they provide, and the potential of exponential viral traffic. Add to this the need for regular blogging (on your [...]]]></description> <content:encoded><![CDATA[<p>Social media, including sites like Facebook and MySpace, micro-blogging platforms like Twitter, and sharing/bookmarking tools like Digg, Del.icio.us and Stumble Upon are all very important to your outreach to customers, not to mention the incoming links they provide, and the potential of exponential viral traffic.</p><p>Add to this the need for regular blogging (on your site and other platforms) and email updates, and the management of all this online communication becomes daunting. What if there were a way to integrate all of your modes of online presence, so you&#8217;d only have to post once to update all of the different platforms? Well, the short answer is: there is.</p><p>I&#8217;ve been working with a <a
href="http://sequatchiecovefarm.com/">local organic farm</a> to update their online presence, and we&#8217;ve come up with a very simple implementation of WordPress that cross-posts to Facebook Pages and Twitter. Every blog post automatically creates an entry with linkback on Facebook Pages, and an accompanying Tweet with linkback. It has been a great way to keep the farm&#8217;s audience informed and engaged.</p><p>Additionally, we&#8217;ve added bookmarking links for all of the major social media platforms and favorites keepers, thus adding to the potential for viral sharing.</p><p>I&#8217;m also working on a mailing list that further integrates with WordPress, and it&#8217;s looking very promising. There is a new WordPress mailing list plugin that allows opt-in or manually entered mailing list clients to manage automated subscriptions to blog and page updates, and allows administrators to manage multiple mailing lists, and send newsletters and alerts. It integrates with the website seamlessly and also has <a
href="http://tinymce.moxiecode.com/examples/full.php">WYSIWYG</a> editing.</p> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by expressionengine expressionengine community forums">powered by expressionengine expressionengine community forums</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by phpBB networking software">powered by phpBB networking software</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by phpBB social networking research">powered by phpBB social networking research</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by expressionengine social bookmarking">powered by expressionengine social bookmarking</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by phpBB free customer satisfaction surveys">powered by phpBB free customer satisfaction surveys</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="“powered by expressionengine” social network forum">“powered by expressionengine” social network forum</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by expressionengine social media forum">powered by expressionengine social media forum</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by phpBB online free classifieds">powered by phpBB online free classifieds</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by phpBB politics in">powered by phpBB politics in</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/" title="powered by expressionengine edu forum">powered by expressionengine edu forum</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/consulting/content-management-systems/social-media-facebook-twitter-blogging-and-sharing/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Organic Farm Website with Slideshows and Content Management</title><link>http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/</link> <comments>http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/#comments</comments> <pubDate>Fri, 13 Nov 2009 23:09:28 +0000</pubDate> <dc:creator>Chris Gilligan</dc:creator> <category><![CDATA[Agriculture]]></category> <category><![CDATA[Content Management Systems]]></category> <category><![CDATA[Organic Farms]]></category> <category><![CDATA[Portfolio]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Bookmarking]]></category> <category><![CDATA[Content Management]]></category> <category><![CDATA[face]]></category> <category><![CDATA[Facebook]]></category> <category><![CDATA[Forms]]></category> <category><![CDATA[Search Engine Optimization]]></category> <category><![CDATA[SlideShowPro]]></category> <category><![CDATA[Social Media]]></category> <category><![CDATA[Twitter]]></category><guid
isPermaLink="false">http://chrisgilligan.com/?p=157</guid> <description><![CDATA[This site was produced in tandem with Widgets &#38; Stone, a Chattanooga design firm. We&#8217;re members of Sequatchie Cove Farm&#8217;s Community Shared Agriculture program, so we are very familiar with the quality of the eggs, dairy, meat and produce coming out of the clean and fertile Sequatchie Valley. (Will Work for Food!) WordPress Content Management [...]]]></description> <content:encoded><![CDATA[<p
style="float:right; margin:0 0 10px 15px; width:240px;"> <img
src="http://chrisgilligan.com/wp-content/uploads/2009/05/picture-21.png" width="240" /></p><div
id="attachment_158" class="wp-caption alignright" style="width: 310px"><a
href="http://sequatchiecovefarm.com/"><img
class="size-medium wp-image-158" title="Sequatchie Cove Farm website" src="http://chrisgilligan.com/wp-content/uploads/2009/05/picture-21-300x245.png" alt="Sequatchie Cove Farm website" width="300" height="245" /></a><p
class="wp-caption-text">Sequatchie Cove Farm website</p></div><p>This site was produced in tandem with <a
href="http://widgetsandstone.com/">Widgets &amp; Stone, a Chattanooga design firm</a>. We&#8217;re members of Sequatchie Cove Farm&#8217;s Community Shared Agriculture program, so we are very familiar with the quality of the eggs, dairy, meat and produce coming out of the clean and fertile Sequatchie Valley.<span
id="more-157"></span></p><p><em>(Will Work for Food!)</em></p><ul><li>WordPress Content Management System allows the farmers to easily add their opinions, information and images</li><li>Automated updates to Facebook Pages, with linkback</li><li>Automatic Twitter tweets for new posts, with linkback</li><li>Social Media bookmarking</li><li>SlideShowPro gives the site a slick Flash-based Image Management System so the site can feature seasonal images.</li><li>MailMan manages a plethora of mailing lists for the weekly emails that keep the farmers connected to the communities and individuals they serve</li></ul> <strong
class="seo-searchterms">Incoming search terms for the article:</strong><ul
class="seo-searchterms"><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/" title="lunchbox website powered by phpbb">lunchbox website powered by phpbb</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/" title="powered by phpBB law">powered by phpBB law</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/" title="silence website powered by phpbb">silence website powered by phpbb</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/" title="farm slideshows on the web">farm slideshows on the web</a></li><li
class="seo-searchterms"><a
href="http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/" title="powered by phpBB exercise">powered by phpBB exercise</a></li></ul>]]></content:encoded> <wfw:commentRss>http://chrisgilligan.com/portfolio/organic-farm-website-with-slideshows-and-content-management/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
<!-- Served from: chrisgilligan.com @ 2012-02-06 10:25:48 by W3 Total Cache -->
