<?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>$i-&#62;php(); &#187; web server</title>
	<atom:link href="http://i-php.net/category/web-server/feed/" rel="self" type="application/rss+xml" />
	<link>http://i-php.net</link>
	<description>Hãy tiết kiệm điện và sử dụng opensource để bảo vệ môi trường</description>
	<lastBuildDate>Fri, 26 Feb 2010 07:29:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Note Config Apache</title>
		<link>http://i-php.net/2009/08/note-config-apache/</link>
		<comments>http://i-php.net/2009/08/note-config-apache/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 03:43:36 +0000</pubDate>
		<dc:creator>chaubl</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=498</guid>
		<description><![CDATA[Cấu hình cho Apache hiển thị file Gzip .
- Cài module mod_defalte.so vào thư mục &#8230;/apache2.2/modules
- Sửa file &#8230;/apache2/conf/httpd.conf enable mod_deflate.so
LoadModule deflate_module modules/mod_deflate.so
- Add MultiViews to Options:
Options Indexes FollowSymLinks MultiViews
- Uncomment AddEncoding:
AddEncoding x-compress .Z
AddEncoding x-gzip .gz .tgz
- Comment AddType:
#AddType application/x-compress .Z
#AddType application/x-gzip .gz .tgz
- Để hiển thị file Gzip dưới dạng xml thêm dòng :
AddType [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Cấu hình cho Apache hiển thị file Gzip .</strong></p>
<p>- Cài module mod_defalte.so vào thư mục &#8230;/apache2.2/modules</p>
<p>- Sửa file &#8230;/apache2/conf/httpd.conf enable mod_deflate.so<br />
LoadModule deflate_module modules/mod_deflate.so</p>
<p>- Add MultiViews to Options:<br />
Options Indexes FollowSymLinks MultiViews</p>
<p>- Uncomment AddEncoding:<br />
AddEncoding x-compress .Z<br />
AddEncoding x-gzip .gz .tgz<br />
- Comment AddType:<br />
#AddType application/x-compress .Z<br />
#AddType application/x-gzip .gz .tgz</p>
<p>- Để hiển thị file Gzip dưới dạng xml thêm dòng :<br />
AddType text/xml .gz .tgz</p>
<p>- Khởi động lại Apache:<br />
&#8230;/httpd restart</p>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2009/08/note-config-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Phân trang tìm kiếm đầy đủ với cakephp 1.2</title>
		<link>http://i-php.net/2009/07/phan-trang-tim-ki%e1%ba%bfm-d%e1%ba%a7y-d%e1%bb%a7-v%e1%bb%9bi-cakephp-12/</link>
		<comments>http://i-php.net/2009/07/phan-trang-tim-ki%e1%ba%bfm-d%e1%ba%a7y-d%e1%bb%a7-v%e1%bb%9bi-cakephp-12/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 01:12:12 +0000</pubDate>
		<dc:creator>hoanbn</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[pagination]]></category>
		<category><![CDATA[paginator]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=465</guid>
		<description><![CDATA[Chào cả nhà!
Thật không nhớ nổi đây là lần thứ mấy tôi viết bài với tiêu đề phân trang tìm kiếm cho cakephp nữa. Vậy tại sao lại còn có bài viết này nữa. Việc phân trang tìm kiếm với cakephp đã không biết bao nhiêu lần làm tôi đâu đầu rồi. Sau nhiều lần [...]]]></description>
			<content:encoded><![CDATA[<p>Chào cả nhà!</p>
<p>Thật không nhớ nổi đây là lần thứ mấy tôi viết bài với tiêu đề phân trang tìm kiếm cho cakephp nữa. Vậy tại sao lại còn có bài viết này nữa. Việc phân trang tìm kiếm với cakephp đã không biết bao nhiêu lần làm tôi đâu đầu rồi. Sau nhiều lần tìm kiếm các giải pháp, nay tôi cũng đa tìm ra một giải pháp ứng ý trong việc tìm kiếm phân trang với cakephp. Sau đây tôi sẽ chia sẽ với mọi người giải pháp ấy, được minh họa thông qua ví dụ tìm kiếm sản phẩm dưới đây.</p>
<p>Việc đâu tiên là tôi phải tạo csdl. Trong ví dụ này tôi tạo csdl có tên là phantrang:</p>
<p>CREATE DATABASE phantrang;</p>
<p>CREATE TABLE IF NOT EXISTS `products` (<br />
`id` int(4) NOT NULL AUTO_INCREMENT,<br />
`name` varchar(255) DEFAULT NULL,<br />
`model` varchar(255) NOT NULL,<br />
`price` int(16) DEFAULT NULL,<br />
`created` datetime DEFAULT NULL,<br />
`type` enum(&#8216;Loai 1&#8242;,&#8217;Loai 2&#8242;,&#8217;Loai 3&#8242;) DEFAULT NULL,<br />
`description` text NOT NULL,<br />
PRIMARY KEY (`id`)<br />
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;</p>
<p>Vậy là tôi đã tạo xong CSDL, còn việc config để kết nối vào CSDL vừa tạo thì mọi người tự làm nhé. Dữ liệu trong đây thì mọi người tự thêm vào nhé.(^_^).</p>
<p>Công việc tiếp theo là tôi sẽ tạo ra một /app/controllers/products_controllers.php như sau:</p>
<blockquote><p>/*  app/controllers/products_controller.php */</p>
<p>&lt;?php<br />
class ProductsController extends AppController {</p>
<p>var $name = &#8216;Products&#8217;;<br />
var $scaffold;</p>
<p>}<br />
?&gt;</p></blockquote>
<p>Với các chức năng như add, edit, delete trong ví dụ này tôi sẽ dùng chức năng scaffold của cakephp, và quả thật những trường hợp như thế này thì scaffold quá tuyệt vời. Trong bài viết này tôi sẽ chỉ chú trọng vào chức năng tìm kiếm mà thôi. Tiếp đến tôi sẽ tạo một function search trong products_controller như sau:</p>
<blockquote><p>/*  app/controllers/products_controller.php */</p>
<p>&lt;?php<br />
class ProductsController extends AppController {</p>
<p>var $name = &#8216;Products&#8217;;<br />
var $scaffold;</p>
<p><strong> function search() {</strong></p>
<p><strong> }</strong></p>
<p>}<br />
?&gt;</p></blockquote>
<p>Cả nhà chú ý nhé, khi tôi thêm dữ liệu vào thì tôi sẽ copy lại nguyên nội dung của cả trang để mọi người dễ hiểu hơn, chỉ phần nào thêm mới tôi sẽ in đậm lên thôi. Bây giờ tôi sẽ tạo một trang view search như sau app/views/products/search.ctp</p>
<blockquote><p>//  app/view/products/search.ctp</p>
<p>&lt;?php<br />
echo $form-&gt;create(&#8216;Search&#8217;, array(&#8216;url&#8217; =&gt; &#8216;/products/dataSearch&#8217;));<br />
echo $form-&gt;input(&#8216;name&#8217;);<br />
echo $form-&gt;input(&#8216;price&#8217;);<br />
echo $form-&gt;input(&#8216;model&#8217;);<br />
echo $form-&gt;input(&#8216;type&#8217;, array(&#8216;options&#8217; =&gt; array(&#8221; =&gt; &#8221;,&#8217;Loai 1&#8242; =&gt; &#8216;Loại 1&#8242;, &#8216;Loai 2&#8242; =&gt; &#8216;Loại 2&#8242;, &#8216;Loai 3&#8242; =&gt; &#8216;Loai 3&#8242;)));<br />
echo $form-&gt;input(&#8216;description&#8217;);<br />
echo $form-&gt;end(&#8216;Search&#8217;);</p>
<p>?&gt;</p></blockquote>
<p>Phần form search vừa rồi tôi đã đề &#8216;url&#8217; trỏ đến action &#8216;dataSearch&#8217;. Action &#8216;dataSearch&#8217; này trong đây sẽ thực hiện công việc xử lý dữ liệu trong form tìm kiếm và chuyển lên url. Tôi thêm function <strong>dataSearch</strong> trong <strong>products_controller</strong> như sau:</p>
<blockquote><p>/*  app/controllers/products_controller.php */</p>
<p>&lt;?php<br />
class ProductsController extends AppController {</p>
<p>var $name = &#8216;Products&#8217;;<br />
var $scaffold;</p>
<p>function search()<br />
{<br />
}</p>
<p><strong> function dataSearch()<br />
{<br />
// the page we will redirect to<br />
$url['controller'] = &#8216;products&#8217;;<br />
$url['action'] = &#8217;search&#8217;;</strong></p>
<p><strong>// build a URL will all the search elements in it<br />
// the resulting URL will be<br />
// example.com/cake/posts/index/Search.keywords:mykeyword/Search.tag_id:3<br />
foreach ($this-&gt;data as $k=&gt;$v){<br />
foreach ($v as $kk=&gt;$vv){<br />
$url[$k.'.'.$kk]=$vv;<br />
}<br />
}</strong></p>
<p><strong>// redirect the user to the url<br />
$this-&gt;redirect($url, null, true);<br />
}</strong><br />
}<br />
?&gt;</p></blockquote>
<p>Hàm dataSearch sẽ thực hiện chức năng chuyển tòan bộ dữ liệu vừa được gửi (submit) vào trong một mảng và sau đó thông qua hàm &#8216;redirect&#8217; chuyến sang một trang mới. Việc chuyển đến trang nào sẽ được quyết định thông qua 2 biến &#8220;<strong>$url['controller']&#8221; </strong>và &#8220;<strong>$url['action']&#8221; </strong>. Nếu bạn nào chưa hiểu hàm này thực hiện những công việc gì thì các bạn cũng không cần tìm hiểu đâu, vì hàm này sẽ không bào giờ thay đổi cả, chỉ cần thay đổi giá trị 2 biến đó thôi. Cả nhà có thể tạm hiểu là hàm này thực hiện việc chuyển tất cả dữ liệu được submit lên trên url.</p>
<p>Vậy là sau khi hàm dataSearch xử lý xong, sẽ chuyển dữ liệu về action &#8220;search&#8221; trong products_controller. Lúc này sẽ tồn tại một biến mảng &#8220;$this-&gt;passedArgs&#8221; chứa dữ liệu của trang search khi submit. Hay nói đúng hơn biến &#8220;$this-&gt;passedArgs&#8221; chứa các dữ liệu được truyền ở phía trên url và đưa vào thành các mảng tương ứng. Ta sẽ xử lý dữ liệu truyền vào để tạo điều kiện lọc như sau:</p>
<blockquote><p>/*  app/controllers/products_controller.php */</p>
<p>&lt;?php<br />
class ProductsController extends AppController {</p>
<p>var $name = &#8216;Products&#8217;;<br />
var $scaffold;</p>
<p>function search()<br />
{<br />
<strong> $conditions = array();<br />
if (!empty($this-&gt;passedArgs))<br />
{<br />
if (isset($this-&gt;passedArgs['Search.name']))<br />
{<br />
$conditions[]["Product.name LIKE"] = &#8220;%{$this-&gt;passedArgs['Search.name']}%&#8221;;<br />
$this-&gt;data['Search']['name'] = $this-&gt;passedArgs['Search.name'];<br />
}</strong></p>
<p><strong>if (isset($this-&gt;passedArgs['Search.price']))<br />
{<br />
$conditions[]["Product.price "] = $this-&gt;passedArgs['Search.price'];<br />
$this-&gt;data['Search']['price'] = $this-&gt;passedArgs['Search.price'];<br />
}</strong></p>
<p><strong>if (isset($this-&gt;passedArgs['Search.model']))<br />
{<br />
$conditions[]["Product.model"] = $this-&gt;passedArgs['Search.model'];<br />
$this-&gt;data['Search']['model'] = $this-&gt;passedArgs['Search.model'];<br />
}</strong></p>
<p><strong>if (isset($this-&gt;passedArgs['Search.type']))<br />
{<br />
$conditions[]["Product.type"] = $this-&gt;passedArgs['Search.type'];<br />
$this-&gt;data['Search']['type'] = $this-&gt;passedArgs['Search.type'];<br />
}<br />
}</strong></p>
<p><strong>$this-&gt;paginate = array(&#8216;limit&#8217; =&gt; &#8216;1&#8242;, &#8216;order&#8217; =&gt; &#8216;Product.created DESC&#8217;);<br />
$this-&gt;set(&#8216;products&#8217;, $this-&gt;paginate(&#8216;Product&#8217;, $conditions));</strong><br />
}</p>
<p>function dataSearch()<br />
{<br />
// the page we will redirect to<br />
$url['controller'] = &#8216;products&#8217;;<br />
$url['action'] = &#8217;search&#8217;;</p>
<p>// build a URL will all the search elements in it<br />
// the resulting URL will be<br />
// example.com/cake/posts/index/Search.keywords:mykeyword/Search.tag_id:3<br />
foreach ($this-&gt;data as $k=&gt;$v){<br />
foreach ($v as $kk=&gt;$vv){<br />
$url[$k.'.'.$kk]=$vv;<br />
}<br />
}</p>
<p>// redirect the user to the url<br />
$this-&gt;redirect($url, null, true);<br />
}<br />
}<br />
?&gt;</p></blockquote>
<p>Trong phần controller này ta sẽ thưc hiện phân trang như bình thường trong cakephp, chỉ khác là sẽ có thêm điều kiện tìm kiếm như ở phía trên thôi.</p>
<p>Việc tiếp theo sẽ là hiển thị kết quả tìm kiếm ra trang search. Ta sẽ thêm vào view search như sau:</p>
<blockquote><p>/*  app/views/products/search.ctp */</p>
<p>&lt;?php<br />
echo $form-&gt;create(&#8216;Search&#8217;, array(&#8216;url&#8217; =&gt; &#8216;/products/dataSearch&#8217;));<br />
echo $form-&gt;input(&#8216;name&#8217;);<br />
echo $form-&gt;input(&#8216;price&#8217;);<br />
echo $form-&gt;input(&#8216;model&#8217;);<br />
echo $form-&gt;input(&#8216;type&#8217;, array(&#8216;options&#8217; =&gt; array(&#8221; =&gt; &#8221;,&#8217;Loai 1&#8242; =&gt; &#8216;Loại 1&#8242;, &#8216;Loai 2&#8242; =&gt; &#8216;Loại 2&#8242;, &#8216;Loai 3&#8242; =&gt; &#8216;Loai 3&#8242;)));<br />
echo $form-&gt;input(&#8216;description&#8217;);<br />
echo $form-&gt;end(&#8216;Search&#8217;);</p>
<p>?&gt;</p>
<p><strong>&lt;?php<br />
echo $paginator-&gt;counter(array(<br />
&#8216;format&#8217; =&gt; &#8216;Page %page% of %pages%, showing %current% records out of<br />
%count% total, starting on record %start%, ending on %end%&#8217;<br />
));<br />
?&gt;<br />
&lt;table cellpadding=&#8221;1&#8243; cellspacing=&#8221;0&#8243;&gt;<br />
&lt;tr&gt;<br />
&lt;th&gt;ID&lt;/th&gt;<br />
&lt;th&gt;Name&lt;/th&gt;<br />
&lt;th&gt;Model&lt;/th&gt;<br />
&lt;th&gt;Price&lt;/th&gt;<br />
&lt;th&gt;Created&lt;/th&gt;<br />
&lt;th&gt;Type&lt;/th&gt;<br />
&lt;th&gt;Description&lt;/th&gt;<br />
&lt;/tr&gt;<br />
&lt;?php<br />
foreach ($products as $product)<br />
{<br />
?&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['id']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['name']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['model']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['price']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['created']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['type']?&gt;&lt;/td&gt;<br />
&lt;td&gt;&lt;?=$product['Product']['description']?&gt;&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&lt;?php<br />
}<br />
?&gt;<br />
&lt;/table&gt;</strong></p>
<p><strong>&lt;!&#8211; Shows the next and previous links &#8211;&gt;</strong></p>
<p><strong>&lt;?php<br />
$paginator-&gt;options(array(&#8216;url&#8217; =&gt; $this-&gt;passedArgs));<br />
echo $paginator-&gt;prev(&#8216;« Previous &#8216;);<br />
echo $paginator-&gt;numbers();<br />
echo $paginator-&gt;next(&#8216; Next »&#8217;);<br />
?&gt; </strong></p></blockquote>
<p>Trong phần view trên thì dòng quan trọng nhất chính là &#8220;$paginator-&gt;options(array(&#8216;url&#8217; =&gt; $this-&gt;passedArgs));&#8221;. Dòng này có tác dụng là sẽ truyền toàn bộ các tham số trong mảng &#8220;$this-&gt;passedArgs&#8221; lên trên url của các link phân trang trong cake. Như vậy có nghĩa là các điều kiện tìm kiếm sẽ vẫn còn khi mọi người chuyển trang. Vậy là tôi đã thực hiện xong việc phân trang tìm kiếm trong cakephp1.2 rồi. Mọi người vào đọc thấy có gì thấy khó hiểu thì comment vào nhé. Tôi sẽ sửa lại cho dễ hiểu hơn.</p>
<p>Chúc cả nhà vui vẻ với cakephp nhé.</p>
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--></p>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<p><!--Session data--><br />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden"><!--Session data--></input>
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2009/07/phan-trang-tim-ki%e1%ba%bfm-d%e1%ba%a7y-d%e1%bb%a7-v%e1%bb%9bi-cakephp-12/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Triển khai Latex</title>
		<link>http://i-php.net/2009/07/deploy-latex/</link>
		<comments>http://i-php.net/2009/07/deploy-latex/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 04:09:14 +0000</pubDate>
		<dc:creator>hoangnd</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Khái niệm]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[equotion]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[math]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=454</guid>
		<description><![CDATA[Sử dụng Latex sẽ đá bay những vấn đề khó khăn gặp phải khi cần hiển thị những công thức toán học như căn bậc n, hàm số, tích phân&#8230; trên website.

Với những yêu cầu hiển thị thông thường trên website, blog, wiki thì định dạng text đã thỏa mãn được gần hết, khó khăn [...]]]></description>
			<content:encoded><![CDATA[<p>Sử dụng Latex sẽ đá bay những vấn đề khó khăn gặp phải khi cần hiển thị những công thức toán học như căn bậc n, hàm số, tích phân&#8230; trên website.</p>
<p><img class="aligncenter" title="math" src="http://ts1.images.live.com/images/thumbnail.aspx?q=863022493012&amp;id=6a02e85a84ce8b5062c72db0024388d5&amp;url=http%3a%2f%2fwww.kaitaia.com%2ffunny%2fg2%2fd%2f8172-2%2fbizarre_math.jpg" alt="" width="145" height="160" /></p>
<p>Với những yêu cầu hiển thị thông thường trên website, blog, wiki thì định dạng text đã thỏa mãn được gần hết, khó khăn ở chỗ những bài viết chuyên ngành toán, lý&#8230; cần thể hiện những công thức tính toán phức tạp thì text hay thậm chí là ảnh cũng pó tay, hhuh? Vậy phải lèm seo?</p>
<p>Đồng thanh hô nèo</p>
<h1 style="text-align: center;"><strong>LaTeX</strong></h1>
<p><span style="text-decoration: underline;"><strong>là gì?</strong></span> không phải word processor, mà là &#8221; <a class="mw-redirect" title="Document markup language" href="http://en.wikipedia.org/wiki/Document_markup_language">document markup language</a> and <a title="Word processor" href="http://en.wikipedia.org/wiki/Word_processor">document preparation system</a> for the <a title="TeX" href="http://en.wikipedia.org/wiki/TeX">TeX</a> <a title="Typesetting" href="http://en.wikipedia.org/wiki/Typesetting">typesetting</a> program. Within the typesetting system, its name is styled as <span class="image"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/92/LaTeX_logo.svg/48px-LaTeX_logo.svg.png" alt="\LaTeX" width="48" height="20" /></span>&#8221; (-wikipedia).</p>
<p>chào hàng thế thôi, thông tin đầy đủ có ở <a href="http://www.latex-project.org/intro.html" target="_blank">đây</a> và ở <a title="http://en.wikipedia.org/wiki/LaTeX" href="http://en.wikipedia.org/wiki/LaTeX" target="_blank">đây</a> <img src='http://i-php.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><span style="text-decoration: underline;"><strong>để làm gì?</strong></span> tất nhiên là để hỗ trợ gõ &#8211; chuyển đổi &#8211; hiển thị công thức toán học trên website.</p>
<ul>
<li>gõ tức là phải &#8230; tự gõ, cũng có nghĩa là có cú pháp &amp; định dạng riêng, cũng có nghĩa là miễn gõ tùm lum, như vậy là phải học gõ ke ke.</li>
<li>chuyển đổi nôm na như là dịch, dịch đống ký tự mình gõ sang đống gì đó mà máy nó hiểu, mà phải làm cho máy nó hiểu thì nó mới chạy được.</li>
<li>hiển thị đơn giản là show hàng, hàng là cái cục (thường là ảnh) mà máy nó trả về sau khi nó &#8216;chạy&#8217;, nhớ là nó &#8216;chạy&#8217; được thì nó phải hiểu, để nó hiểu thì mình phải ra lệnh, ra lệnh xong phải có thằng nó dịch lệnh mình cho máy <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li>
</ul>
<p>ví dụ cái,</p>
<ol>
<li>gõ như này đây [code][tex]a^2 + b^2[/tex][/code]</li>
<li>dịch dịch dịch dịch dịch &#8230;. bịch bịch bịch &#8230;</li>
<li>hiển thị cái này <img class="alignnone" title="can bac 2" src="http://www.khuvuc.com/pictures/91dcd1eb2fc092f982e5e87b8685d280_1247109898.png" alt="" width="50" height="15" /></li>
</ol>
<p>eh, ai thèm xài cái này? thì thầy cô giáo, chuyên gia, guru viết bài giảng, blog kỹ thuật hay sinh viên thảo luận trên diễn đàn &#8230; nghe pro^` vãi <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p><span style="text-decoration: underline;"><strong>xài ra làm sao?</strong></span> có mới xài được chứ =)). Hiển nhiên là muốn có thì phải lao động <img src='http://i-php.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>bỏ qua các dịch vụ sẵn có, mình đi mua đồ về tự nấu cho nó chủ động &amp; ngon lành. bếp = server, đồ ăn = các gói cài đặt và đầu bếp = ai đang đọc <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p><strong>thực hiện nấu nướng</strong></p>
<p>đi chợ nhớ mua các gói sau</p>
<p><strong>ubuntu server</strong></p>
<blockquote><p>[code]sudo apt-get install texlive texmaker[code]</p></blockquote>
<p><strong>centOS 5.x</strong></p>
<blockquote><p>[code]yum install tetex tetex-fonts tetex-dvips tetex-latex ghostscript</p>
<p>yum install ImageMagick[code]<br />
(cài imageMagick nếu chưa có)</p></blockquote>
<p>dung lượng kiếm về khoảng 60 - 200M, chế biến cài đặt xong khoảng 200M <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) <img src='http://i-php.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) vãi hàng, nấu cho cả xóm ăn.</p>
<p>xong rùi thì chiến thôi, kiếm thêm gia vị &amp; bày bàn. giả sử tại VPS này có thư mục tên latex trong /var/www/html. trong đó có 2 thư mục pictures &amp; tmp, quan trọng nữa là 2 file php class.latexrender.php và latex.php. Như vậy là ngon rồi, viết them file demo.php nữa để test thôi, nhớ là phải refer đến 2 file trên.</p>
<p>[bonus]</p>
<p>trên đây là bộ latex render viết bằng code php, tác giả là Benzamin Mayer (http://www.mayer.dial.pipex.com/tex.htm), xài ngon, được làng xóm đánh giá cao. khi sử dụng chỉ cần để ý đến các tham số cơ bản sau trong file latex.php</p>
<ul>
<li>$latexrender_path = "đường dẫn chứa bộ latex render (gồm file class.latexrender.php)";</li>
<li>$latexrender_path_http = "đường dẫn hiển thị website" - phải chính xác để có thể show ảnh công thức được render.</li>
<li>$imageformat = "định dạng ảnh - png hoặc gif" - có nghĩa là phải có thư viện render ảnh trên server, đang xài ImageMagick.</li>
</ul>
<p>[/bonus]</p>
<p><strong>tóm tắt hoạt động </strong></p>
<p>để hình thành công thức, người dùng phải gõ nội dung theo quy tắc định trước của latex. khi dữ liệu gửi đi, regular expression sẽ được gọi để bóc tách các phần chính trong nội dung nhận được để render ra dưới dạng ảnh, lưu vào một vị trí trên server &amp; đặt đường dẫn hiển thị trên website.</p>
<p><strong>tham khảo thêm</strong></p>
<ul>
<li>trang chủ dự án latex: http://www.latex-project.org/guides/</li>
<li>trên wiki: http://en.wikipedia.org/wiki/LaTeX</li>
<li>thư viện của mayer: http://www.mayer.dial.pipex.com/tex.htm</li>
<li>một bài hướng dẫn hay: http://www.linuxjournal.com/article/7870</li>
<li>demo: http://khuvuc.com/demo.php (/var/www/html/latex)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2009/07/deploy-latex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sự tàn lụi của PHP</title>
		<link>http://i-php.net/2009/04/php-down/</link>
		<comments>http://i-php.net/2009/04/php-down/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 09:41:47 +0000</pubDate>
		<dc:creator>hoangnd</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Khái niệm]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ria]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[down]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=404</guid>
		<description><![CDATA[Mặc định rằng các bạn đang đọc bài này là những người làm trong ngành nên tôi sẽ không giải thích hay ghi chú những khái niệm phổ thông. Mặt khác, lý lẽ trong bài viết này chỉ phản ánh quan điểm của cá nhân tôi, không đại diện cho ai hay tổ chức nào [...]]]></description>
			<content:encoded><![CDATA[<p>Mặc định rằng các bạn đang đọc bài này là những người làm trong ngành nên tôi sẽ không giải thích hay ghi chú những khái niệm phổ thông. Mặt khác, lý lẽ trong bài viết này chỉ phản ánh quan điểm của cá nhân tôi, không đại diện cho ai hay tổ chức nào khác.</p>
<p>&#8212;</p>
<p>Lịch sử ngành công nghiệp máy tính &amp; mạng đã chứng minh PHP là một trong số những ngôn ngữ mạnh &amp; linh động nhất trên nền Web và cũng không quá khó để thành thục ở mức phổ thông. Được phát triển và biết đến từ những năm cuối của thập kỷ trước, PHP đã đạt được sự tăng trưởng đáng kinh ngạc so với các ngôn ngữ lập trình khác.</p>
<p> </p>
<div class="wp-caption aligncenter" style="width: 443px"><a href="http://hoang188.net/"><img class=" " title="PHP timeline" src="http://hoang188.net/files/php-timeline.png" alt="PHP Timeline" width="433" height="231" /></a><p class="wp-caption-text">PHP Timeline</p></div>
<p> </p>
<p> </p>
<p>Nhìn biểu đồ trên, ta thấy con đường đi lên của PHP là theo hướng phát triển truyền thống, tức là <strong>Thiết kế -&gt; sử dụng -&gt; chỉnh sửa -&gt; lớn mạnh -&gt; phát triển</strong>. Điều thú vị là cho đến nay, rất nhiều các sản phẩm được phổ biến rộng rãi cũng đi theo con đường trên như các nền tảng .NET, Java hay Linux.</p>
<p>Ta lần lượt điểm qua một số điểm mẫu chốt sau</p>
<p><strong>Vòng đời</strong></p>
<p>Một lần nữa, nhắc lại thế mạnh của PHP trên nền web chính là tốc độ (phát triển &amp; thực thi), nhẹ &amp; dễ học. Bên cạnh đó, do đặc tính mã nguồn mở (theo <a href="http://en.wikipedia.org/wiki/PHP_License">giấy phép PHP</a>) cũng như sự đổi mới về phong cách khi ra đời, PHP sở hữu rất nhiều thứ quý giá</p>
<p> </p>
<ul>
<li>Cộng đồng lớn. Khoản này vô đối. Luôn có những guru sẵn sàng chia sẻ kinh nghiệm &amp; kiến thức, hướng dẫn những người mới và giải đáp thắc mắc.</li>
<li>Thư viện, cả nội tại và mở rộng của PHP, có chứa số lượng function cực lớn được đóng góp bởi những người tình nguyện. Con số vào khoảng 700 buit-in functions và uncountable external functions (hoangnd tính toán).</li>
<li>Framework đa dạng về số lượng cũng như chất lượng, thậm chí đa dạng cả về <span style="text-decoration: underline;">mô hình</span> và <span style="text-decoration: underline;">mục đích sử dụng.</span></li>
</ul>
<p> </p>
<p><strong>Sự mở rộng và phát triển</strong></p>
<p> </p>
<ul>
<li>Khái niệm về namespace. .NET đã có từ lâu, Java cũng có khái niệm package gần tương đương, và bây giờ chúng ta chứng kiến PHP. Đành rằng namespace ra đời với mục đích cơ bản là giúp lập trình viên dễ tổ chức và quản lý code hơn, nhưng với PHP thì tôi cho rằng là một sự ôm đồm. Mặc dù có rất nhiều những giải thích về cách gõ namespace trong PHP, nhưng thực sự là rất khó chấp nhận ký tự &#8220;\&#8221; để phân cách.  <span style="text-decoration: underline;">Thứ nhất</span>  là hơi va chạm với tư tưởng chạy đa nền của PHP vì ký tự &#8220;\&#8221; được dùng phổ biến trong windows để phân tách đường dẫn. <span style="text-decoration: underline;">Thứ hai</span> là có vẻ như PHP đã sử dụng cạn kiệt tài nguyên bàn phím. </li>
<li>PHP cho đến nay đã quá rộng lớn và các lập trình viên dễ dàng tìm được nhiều giải pháp khác nhau cho cùng một bài toán. Điều này thể hiện rất rõ ràng tư tưởng &#8220;open and share&#8221; mà nhờ nó, nhân loại mới có được kho tri thức khổng lồ (không chỉ trong ngành khoa học máy tính mà còn ở tất cả các lĩnh vực khác). Tuy nhiên, hãy nhìn Python làm, bạn có rất ít những cách để xử lý một vấn đề và thường thì những cách đó luôn là cách tốt nhất và dễ dàng nhất cho bạn, đến nỗi bạn chả buồn nghĩ tới hướng khác <img src='http://i-php.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> . Ở phía đối diện, .NET độc quyền gắn chặt với hệ điều hành Window$ của Micro$oft nhưng có sự thống nhất, rõ ràng và ổn định cực tốt (nếu bạn chọn phát triển trên nền tảng này).</li>
</ul>
<p> </p>
<p><strong>Yahoo và facebook xài PHP</strong></p>
<p>Quá đúng, bỏ qua phần backend thì chính những đoạn mã  PHP đã dựng lên bộ mặt yahoo &amp; facebook như bây giờ. Và nó đã chứng minh giá trị của mình khi cả Yahoo &amp; facebook đều đã hoặc đang trở thành những đế chế internet với danh tiếng, lợi nhuận &amp; lượng người dùng cực lớn, chưa kể đến số lượng các dịch vụ kèm theo.</p>
<p>Thế nhưng, trong các đăng báo tuyển dụng, họ luôn muốn <span style="text-decoration: underline;">ưu tiên những ứng viên biết thêm Perl hoặc Python</span> bên cạnh thành thạo PHP (bỏ qua các yêu cầu khác). Câu hỏi đặt ra là, họ (yahoo &amp; facebook) định cho những ứng viên này làm cả ở nền tảng trên &amp; dưới của hệ thống web application? hay họ muốn những ứng viên đó có được <span style="text-decoration: underline;">tư duy ngôn ngữ </span>của perl, python? hay nữa là họ muốn dự phòng và sẵn sàng chuyển đổi sang perl, python? (lol)</p>
<p><strong>Đặc điểm</strong></p>
<p>Một chút hình dung</p>
<p><a href="http://hoang188.net"></a><a href="http://hoang188.net"><img class="alignleft" title="PHP-Python-Flex" src="http://hoang188.net/files/open.png" alt="" width="273" height="296" /></a><br />
<img class="aligncenter" title=".NET" src="http://hoang188.net/files/net-bo.png" alt="" width="292" height="308" /></p>
<p>Có nghĩa lý gì? Ai cũng biết .NET là một nền tảng còn PHP là một ngôn ngữ lập trình, tất nhiên sẽ là không hợp lý nếu so sánh chúng với nhau. Cái tôi muốn đề cập là, với .NET chúng ta có thể sử dụng để lập trình web, windows application, mobile, embedded, cloud &#8230; với sự tách biệt không quá lớn dành cho lập trình viên (tất nhiên môi trường triển khai thì không nói). Còn PHP không thể đứng một mình, nó sẽ kết hợp với các công nghệ khác tạo thành những nền tảng thực thi bài toán, mà chất lượng kết quả bài toán đó phụ thuộc rất nhiều vào kinh nghiệm &amp; kiến thức của kiến trúc sư trưởng dự án. Sợi dây liên kết này tôi cho rằng là kém vững trãi hơn so với .NET</p>
<p>Ngoài ra, mô hình trên còn thể hiện một nội dung khác. Nếu coi mỗi ngôn ngữ là một tập thông tin thì chúng liên kết với nhau qua giao của những tập đó. Có nghĩa là PHP sẽ đứng chung với python, perl, ruby &#8230; Và cũng có nghĩa là tôi sẽ chọn python thay vì PHP để kết hợp với flex. Tức là PHP đã mất đi một người dùng là tôi, ít nhất là trong dự án nào đó.</p>
<p><span style="text-decoration: line-through;">Buồn ngủ quá nên đoạn này viết hơi sơ sài và lung tung, sẽ cập nhật lại sớm thôi</span></p>
<p><span style="font-weight: bold;">Tuy nhiên</span></p>
<p>Các lập trình viên PHP đừng quá buồn và suy nghĩ nhiều làm gì, PHP đã, đang và sẽ luôn làm rất tốt trong phân khúc thị trường của nó. Và trong 1, 2, 3 năm nữa có thể ta có PHP phiên bản 6.0, 6.1, 6.2 &#8230; nhưng rồi nó sẽ phát triển tiếp thành cái gì? Cộng đồng không có nhiều người biết, tôi cá là bạn không biết, còn <span style="color: #800000;">tất nhiên là tôi không biết</span> roài. <img src='http://i-php.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>(just my cent at 3 a.m)</p>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2009/04/php-down/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Mẹo vặt với Apache 2</title>
		<link>http://i-php.net/2008/12/meo-vat-apache/</link>
		<comments>http://i-php.net/2008/12/meo-vat-apache/#comments</comments>
		<pubDate>Thu, 25 Dec 2008 14:21:50 +0000</pubDate>
		<dc:creator>ngocbd</dc:creator>
				<category><![CDATA[web server]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=241</guid>
		<description><![CDATA[1. Để thêm một module vào apache (trên linux &#8211; win thì không biết )
a2enmod tên_mod
ví dụ
a2enmod rewrite
để thêm mod rewrite
2. Xem các module đã cài đặt
apache2ctl -l
]]></description>
			<content:encoded><![CDATA[<p>1. Để thêm một module vào apache (trên linux &#8211; win thì không biết )<br />
<code>a2enmod tên_mod</code><br />
ví dụ<br />
<code>a2enmod rewrite</code><br />
để thêm mod rewrite<br />
2. Xem các module đã cài đặt<br />
<code>apache2ctl -l</code></p>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2008/12/meo-vat-apache/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>enterprise PHP nè</title>
		<link>http://i-php.net/2008/12/enterprise-php-ne/</link>
		<comments>http://i-php.net/2008/12/enterprise-php-ne/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 06:46:13 +0000</pubDate>
		<dc:creator>hoangnd</dc:creator>
				<category><![CDATA[Khái niệm]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[referrence]]></category>
		<category><![CDATA[slide]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=215</guid>
		<description><![CDATA[thấy cái slide này hay hay, vác về blog xem anh em học hỏi
Enterprise PHP (php&#124;works 2008)
View SlideShare presentation or Upload your own. (tags: php phpworks)

]]></description>
			<content:encoded><![CDATA[<p>thấy cái slide này hay hay, vác về blog xem anh em học hỏi</p>
<div style="width:425px;text-align:left" id="__ss_786111"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/ijansch/enterprise-php-phpworks-2008-presentation?type=powerpoint" title="Enterprise PHP (php|works 2008)">Enterprise PHP (php|works 2008)</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpworks-enterprise-php-1227605806710884-9&#038;rel=0&#038;stripped_title=enterprise-php-phpworks-2008-presentation" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=phpworks-enterprise-php-1227605806710884-9&#038;rel=0&#038;stripped_title=enterprise-php-phpworks-2008-presentation" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/ijansch/enterprise-php-phpworks-2008-presentation?type=powerpoint" title="View Enterprise PHP (php|works 2008) on SlideShare">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/php">php</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/phpworks">phpworks</a>)</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2008/12/enterprise-php-ne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thế mạnh của PHP</title>
		<link>http://i-php.net/2008/11/th%e1%ba%bf-m%e1%ba%a1nh-c%e1%bb%a7a-php/</link>
		<comments>http://i-php.net/2008/11/th%e1%ba%bf-m%e1%ba%a1nh-c%e1%bb%a7a-php/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 07:21:15 +0000</pubDate>
		<dc:creator>ngocbd</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[web server]]></category>
		<category><![CDATA[thế mạnh của php]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=138</guid>
		<description><![CDATA[

Thứ nhất PHP có một kiến trúc độc nhất vô nhị , dựa trên triết lý &#8220;share nothing&#8221; mỗi luồng chạy php được webserver và ZendEngine thực hiện độc lập , giải phóng tài nguyên hoàn toàn sau khi kết thúc tác vụ .Điều này giúp cho PHP tuy và ngôn ngữ động và thông [...]]]></description>
			<content:encoded><![CDATA[<p><span style="line-height: 150%; font-size: 10pt; font-family: Arial;"><strong><br />
</strong></span></p>
<p style="line-height: 150%;" align="justify"><span style="font-size: 14px; line-height: 150%; font-family: Arial,Helvetica,sans-serif;"><strong>Thứ nhất </strong>PHP có một kiến trúc độc nhất vô nhị , dựa trên triết lý &#8220;share nothing&#8221; mỗi luồng chạy php được webserver và ZendEngine thực hiện độc lập , giải phóng tài nguyên hoàn toàn sau khi kết thúc tác vụ .Điều này giúp cho PHP tuy và ngôn ngữ động và thông dịch nhưng lại có tốc độ thực thi rất nhanh và đặc biết là tiêu tốn rất ít tài nguyên. Một điểm nữa là giao thức HTTP (giao thức giao tiếp của web) cũng hoạt động tương tự như vậy &#8220;</span>HTTP, each request is distinct&#8221;</p>
<p style="line-height: 150%;" align="justify"><strong>Thứ 2 <em> </em></strong><em>PHP được sinh ra để làm web </em>(<a href="http://en.wikipedia.org/wiki/Php">xem thêm</a>)  . Nên thiết kết của PHP chắc chắn hơn hẳn các ngôn ngữ khác trong công nghệ web . Bản thân PHP cũng là một template engine rất mạnh thân thiện với web (HTML-CSS-Javascript).</p>
<p style="line-height: 150%;" align="justify"><strong>Thứ 3</strong> PHP là ngôn ngữ được dùng cho web phổ biến nhất thế giới , gần như tất cả các máy chủ web đều hỗ trợ PHP . PHP cũng có số lượng các lập trình viên web đông đảo nhất thế giới qua đó đã xây dựngđược một cộng đồng rộng lớn , lớn hơn rất nhiều các cộng đồng khác .</p>
<div class="wp-caption alignnone" style="width: 490px"><a href="http://static.php.net/www.php.net/images/stats/phpstats-200707.png"><img class=" " title="thống kê của netcraft" src="http://static.php.net/www.php.net/images/stats/phpstats-200707.png" alt="thống kê của netcraft" width="480" height="300" /></a><p class="wp-caption-text">thống kê của netcraft</p></div>
<p style="line-height: 150%;" align="justify">Xem thêm đánh giá của cộng đồng trên <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE</a> , PHP đứng thứ 5 , quá cao so với một ngôn ngữ chỉ dùng làm Web &#8211; server side script .</p>
<p style="line-height: 150%;" align="justify">Xem thống kê mới nhất của <a href="http://www.nexen.net/chiffres_cles/phpversion/18824-php_statistics_for_october_2008.php">Nexen</a></p>
<p style="line-height: 150%;" align="justify"><strong>Thứ 4 </strong> PHP là ngôn ngữ mà nguồn mở , nên với hàng triệu ứng dụng có sẵn , miễn phí , thư viện mã nguồn mở giúp cho việc lập trình trên ngôn ngữ này trở nên nhanh chóng và chất lượng .</p>
<p style="line-height: 150%;" align="justify">Nếu như các ngôn ngữ khác có 1-2 sản phẩm ví dụ ASP.NET có một &#8211; hai sản phẩm diễn đàn thì PHP có vài chục sản phẩm có chất lượng tốt hơn nhiều .Có thể thấy điều tương tự qua các ứng dụng khác như : Blog , Shopping Cart , CMS .</p>
<p style="line-height: 150%;" align="justify">Các thư viện của PHP nhiều hơn bất kì công nghệ lập trình web nào khác , được đóng góp bởi cả một cộng đồng rộng lớn , trong đó có các công ty IT hàng đầu như : Oracle , Yahoo ,IBM, Zend , FaceBook ..</p>
<p style="line-height: 150%;" align="justify"><strong>Thứ 5</strong> Với stack công nghệ mã nguồn mở LAMP bao gồm : hệ điều hành <strong>Linux </strong>, webserver <strong>Apache </strong>, Hệ quản trị cơ sở dữ liệu <strong>Mysql   và PHP </strong>. Đã làm nên một nền tảng mở <strong>mạnh mẽ</strong> với chi phí rất khiêm tốn . Nhưng dễ dàng mở rộng</p>
<div class="wp-caption alignnone" style="width: 278px"><img title="LAMP" src="http://www.oracle.com/technology/pub/articles/php_experts/images/oarch1.gif" alt="Nguồn oracle" width="268" height="242" /><p class="wp-caption-text">Nguồn oracle</p></div>
<p style="line-height: 150%;" align="justify">Chính vì vậy các mạng xã hội 2.0 đã lựa chọn PHP thay vì các ngôn ngữ khác .</p>
<p style="line-height: 150%;" align="justify">Kết luận : PHP là vô địch trên sân chơi web</p>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2008/11/th%e1%ba%bf-m%e1%ba%a1nh-c%e1%bb%a7a-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Giới thiệu các webserver ít được biết tới</title>
		<link>http://i-php.net/2008/10/webserver/</link>
		<comments>http://i-php.net/2008/10/webserver/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 20:23:54 +0000</pubDate>
		<dc:creator>ngocbd</dc:creator>
				<category><![CDATA[web server]]></category>
		<category><![CDATA[Cherokee]]></category>
		<category><![CDATA[Cherrypy]]></category>
		<category><![CDATA[Google Frontend]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[Mongrel]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webserver]]></category>
		<category><![CDATA[Yaws]]></category>
		<category><![CDATA[Zope]]></category>

		<guid isPermaLink="false">http://i-php.net/?p=26</guid>
		<description><![CDATA[Ngoài Apache và IIS đã qá nổi tiếng và chiếm thị phần lớn trên internet hiện nay xuất hiện nhiều các webserver , mà thời gian gần đây bắt đầu được chú ý . Chúng ta sẽ điểm mặt qua từng loại .
1. lighttpd
Lighttpd là webserver được nhắc đến nhiều nhất trong giới công nghệ [...]]]></description>
			<content:encoded><![CDATA[<p>Ngoài Apache và IIS đã qá nổi tiếng và chiếm thị phần lớn trên internet hiện nay xuất hiện nhiều các webserver , mà thời gian gần đây bắt đầu được chú ý . Chúng ta sẽ điểm mặt qua từng loại .</p>
<p>1. lighttpd</p>
<p>Lighttpd là webserver được nhắc đến nhiều nhất trong giới công nghệ thời gian gần đây . Được khoảng 3 triệu website trên thế giới sử dụng , có tốc độ sử lí dữ liệu tĩnh cực nhanh (nhanh hơn nhiều Apache) . Hỗ trợ tốt cho CGI đặc biết nếu chạy FastCGI + PHP + Xcache thì tốc độ sẽ tăng lên đáng kể cho php . Xcache là công nghệ opcode cache của lighttpd . Ngoài ra lighttpd là webserver sử lý streaming , hoặc giả streamming  thuộc hàng khủng (do xử lý static content nhanh).</p>
<p>Youtube cũng sử dụng lighttpd để truyền video content .</p>
<p>Vậy Lighttpd có các ưu điểm</p>
<ul>
<li>Sử lý static content nhanh</li>
<li>Sử dụng FastCGI + PHP + Xcache cho tốc độ thực thi rất nhanh</li>
<li>Sử lý streaming tốt , là sự lựa chọn thay thế các media server</li>
</ul>
<p>2.Nginx</p>
<p>3.Cherokee</p>
<p>4.Yaws</p>
<p>5.Google Frontend</p>
<p>6.Mongrel</p>
<p>7.Zope</p>
<p>8.Cherrypy</p>
<h1 id="Welcometocherrypy.org"></h1>
]]></content:encoded>
			<wfw:commentRss>http://i-php.net/2008/10/webserver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
