<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Tutorial on Chen Kai Blog</title><link>https://www.chenk.top/en/categories/tutorial/</link><description>Recent content in Tutorial on Chen Kai Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 28 Jun 2023 09:00:00 +0000</lastBuildDate><atom:link href="https://www.chenk.top/en/categories/tutorial/index.xml" rel="self" type="application/rss+xml"/><item><title>LAMP Stack on Alibaba Cloud ECS: From Fresh Instance to Production-Ready Web Server</title><link>https://www.chenk.top/en/standalone/lamp-on-ecs/</link><pubDate>Wed, 28 Jun 2023 09:00:00 +0000</pubDate><guid>https://www.chenk.top/en/standalone/lamp-on-ecs/</guid><description>&lt;p>You have a fresh ECS instance and SSH access. Your goal is to run a public website with Apache, PHP, and MySQL. Three common issues often trip up beginners:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Network reachability&lt;/strong> — packets are silently dropped by the cloud security group, the OS firewall, or the listening socket, and the symptom is always the same: nothing happens.&lt;/li>
&lt;li>&lt;strong>Service wiring&lt;/strong> — Apache, PHP, and MySQL are separate processes that need to find each other through file extensions, Unix sockets, and TCP ports. Each interface has its own way to fail.&lt;/li>
&lt;li>&lt;strong>Identity and permissions&lt;/strong> — Apache runs as &lt;code>www-data&lt;/code>, MySQL runs as &lt;code>mysql&lt;/code>, files are owned by &lt;code>root&lt;/code> after &lt;code>wget&lt;/code>. The wrong combination produces 403, &amp;ldquo;Access denied&amp;rdquo;, or &lt;code>chmod 777&lt;/code> desperation.&lt;/li>
&lt;/ol>
&lt;p>This guide covers these issues in the order you&amp;rsquo;ll encounter them on day one and continues with topics that arise later, such as TLS, virtual hosts, backups, source compilation, and when to stop running everything on a single box.&lt;/p></description></item></channel></rss>