<?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>Solo Estoy &#187; Debian</title>
	<atom:link href="http://www.opslife.com/tag/debian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.opslife.com</link>
	<description>人生不过是一场旷日持久却又无法rollback的operation而已</description>
	<lastBuildDate>Mon, 16 Jan 2012 01:34:11 +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>Debian Lenny安装nginx+PHP+MySQL傻瓜手记</title>
		<link>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/</link>
		<comments>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 08:05:06 +0000</pubDate>
		<dc:creator>dawnh</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://opslife.com/install-nginx-php-mysql-on-debian-lenny/</guid>
		<description><![CDATA[新搞了个VPS，打算把Blog以及全套行头迁移过来。 以前的那套图省事，用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套，主要是人懒不想折腾而已。这次换了个新的VPS提供商，心血来潮想折腾Debian。所以把过程记录下来，避免以后不折腾了却忘记自己当初怎么搭。 总体思路还是采取懒汉办法，有官方源的从官方源安装，没官方源找第三方社区源，再没有的话自己做deb，无论如何，避免从源代码直接编译。 首先把最简单的MySQL装上，用官方源，一句话搞定： apt-get install mysql-server MySQL配置文件稍后再搞，对于小Blog来说MySQL的优化意义不大。 其次是nginx，说实话这东西不熟，不过貌似最近挺流行，Debian Lenny也将其收进官方源了，那就简单apt之 apt-get install nginx 简单netstat看一下发现80已经在监听了，访问http://&#60;IP&#62;发现出现欢迎页“Welcome to nginx!”，接下来就是怎么让PHP在nginx上跑起来。 很没技术含量不是，很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊，不就是一个玩儿么。 PHP稍微麻烦点，因为Nginx没有像Apache那样的SAPI调用PHP的方式，而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程，结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理，这东西的灵活性比spawn-fcgi还要高不少，但代价是要往PHP源代码里打Patch才能用，也就意味着&#8211;要重新编译整个PHP。 简单权衡了一下，我觉得我还是想用php-fpm，但是又想偷懒不编译源代码，于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的&#8211; http://www.dotdeb.org/，这个社区致力于维护Debian下的LAMP类软件的非官方二进制包，恰好它们近期重做了PHP，使用了PHP5.3.1版本，并集成入了Suhosin安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包，并给其加了SysV类的启动脚本，这样PHP的FastCGI方式即可以有自己单独的conf文件，又有单独的init.d控制脚本，可谓完美。 无废话说干就干。 修改/etc/apt/source.list，加入dotdeb的源设置： deb http://php53.dotdeb.org stable all deb-src http://php53.dotdeb.org stable all 然后apt之： apt-get update apt-get install php5-cgi php5-fpm 这样PHP就算完事了，简单验证一下，运行如下命令，观察phpinfo()输出是否正常： php-cgi –i 再保险点看一下PHP的FastCGI进程有没有跑起来，ps aux&#124;grep php，应该能看到有进程为”/usr/bin/php5-fpm &#8211;fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。 剩下的事就是搞定nginx的配置文件把站点建好，并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件，放在/etc/php5/fpm/nginx-site-conf.sample，改改拿来用就好了。 我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf，然后简单修改几个参数，改好的配置文件是这样： # # nginx-site-conf.sample: # Php <a href='http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>新搞了个VPS，打算把Blog以及全套行头迁移过来。</p>
<p>以前的那套图省事，用了CentOS5 Kloxo AllinOne BOX。基本上依靠这个CP搞定了全套，主要是人懒不想折腾而已。这次换了个新的VPS提供商，心血来潮想折腾Debian。所以把过程记录下来，避免以后不折腾了却忘记自己当初怎么搭。</p>
<p>总体思路还是采取懒汉办法，有官方源的从官方源安装，没官方源找第三方社区源，再没有的话自己做deb，无论如何，避免从源代码直接编译。</p>
<p>首先把最简单的MySQL装上，用官方源，一句话搞定：</p>
<blockquote><p>apt-get install mysql-server</p>
</blockquote>
<p>MySQL配置文件稍后再搞，对于小Blog来说MySQL的优化意义不大。</p>
<p>其次是nginx，说实话这东西不熟，不过貌似最近挺流行，Debian Lenny也将其收进官方源了，那就简单apt之</p>
<blockquote><p>apt-get install nginx</p>
</blockquote>
<p>简单netstat看一下发现80已经在监听了，访问<a href="http://&lt;IP">http://&lt;IP</a>&gt;发现出现欢迎页“Welcome to nginx!”，接下来就是怎么让PHP在nginx上跑起来。</p>
<p>很没技术含量不是，很不幸后面的也没啥技术含量。一破Blog日IP不过300折腾个什么劲啊，不就是一个玩儿么。</p>
<p>PHP稍微麻烦点，因为Nginx没有像Apache那样的SAPI调用PHP的方式，而是使用FastCGI来调。这里就存在一个对PHP的FastCGI进程如何管理的问题。官方源的php5-cgi本身没有进程管理机制。一个比较好的选择是用spawn-fcgi(源自lighttpd的小东东)来起PHP进程，结果查了一下spawn-fcgi到现在还在sid呆着。还有一个选择是使用php-fpm来做FastCGI进程管理，这东西的灵活性比spawn-fcgi还要高不少，但代价是要往PHP源代码里打Patch才能用，也就意味着&#8211;要重新编译整个PHP。</p>
<p>简单权衡了一下，我觉得我还是想用php-fpm，但是又想偷懒不编译源代码，于是就求助于第三方二进制源了。随便搜了一下发现还真有正合适的&#8211; <a title="http://www.dotdeb.org/" href="http://www.dotdeb.org/">http://www.dotdeb.org/</a>，这个社区致力于维护Debian下的LAMP类软件的非官方二进制包，恰好它们近期重做了PHP，使用了PHP5.3.1版本，并集成入了<a href="http://www.suhosin.org/">Suhosin</a>安全补丁。最让人舒服的是吧php-fpm做成了一个php5-fpm的安装包，并给其加了SysV类的启动脚本，这样PHP的FastCGI方式即可以有自己单独的conf文件，又有单独的init.d控制脚本，可谓完美。</p>
<p>无废话说干就干。</p>
<p>修改/etc/apt/source.list，加入dotdeb的源设置：</p>
<blockquote><p>deb <a href="http://php53.dotdeb.org">http://php53.dotdeb.org</a> stable all      <br />deb-src <a href="http://php53.dotdeb.org">http://php53.dotdeb.org</a> stable all</p>
</blockquote>
<p>然后apt之：</p>
<blockquote><p>apt-get update     <br />apt-get install php5-cgi php5-fpm</p>
</blockquote>
<p>这样PHP就算完事了，简单验证一下，运行如下命令，观察phpinfo()输出是否正常：</p>
<blockquote><p>php-cgi –i</p>
</blockquote>
<p>再保险点看一下PHP的FastCGI进程有没有跑起来，ps aux|grep php，应该能看到有进程为”/usr/bin/php5-fpm &#8211;fpm-config /etc/php5/fpm/php5-fpm.conf”在跑。</p>
<p>剩下的事就是搞定nginx的配置文件把站点建好，并让其能调用后台的PHP。这个dotdeb社区源做的php5-fpm好心到都提供了一个nginx的example配置文件，放在/etc/php5/fpm/nginx-site-conf.sample，改改拿来用就好了。</p>
<p>我是将其复制到/etc/nginx/sites-enabled/opslife.com.conf，然后简单修改几个参数，改好的配置文件是这样：</p>
<blockquote><p>#     <br /># nginx-site-conf.sample:      <br /># Php Site configuration for nginx webserver      <br />#      <br /># 1. set server root /path/to/your/website;      <br /># 2. Rename this file. Copy it to /etc/nginx/sites-available, /etc/nginx/sites-enabled      <br />#&#160;&#160;&#160; or otherwise ensure that this file is included by the nginx.conf      <br /># 3. Restart nginx webserver, and php-fpm service.      <br /># </p>
<p>server { </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160; /home/dawnh/opslife.com; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; server_name&#160;&#160;&#160;&#160; opslife.com www.opslife.com d9.opslife.com;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; listen&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; 80; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; access_log&#160; /var/log/nginx/opslife.com.access.log; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; location / {     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; index&#160; index.html index.htm index.php;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; #error_page&#160; 404&#160; /404.html; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; # redirect server error pages to the static page /50x.html     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; #      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; error_page&#160;&#160; 500 502 503 504&#160; /50x.html;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; location = /50x.html {      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; root&#160;&#160; /var/www/nginx-default;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; } </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; # pass the *.php scripts to php-fpm listening on tcp port 9000     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; #      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; location ~ \.php$ { </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_pass&#160;&#160; 127.0.0.1:9000;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_index&#160; index.php; </p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; include fastcgi_params;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_param SERVER_NAME $http_host;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; fastcgi_ignore_client_abort on;      <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</p>
<p>}</p>
</blockquote>
<p>这样站点配置就算是完成了，/etc/init.d/nginx restart重启后，新站点应该就会跑起来了，使用域名opslife.com、<a href="http://www.opslife.com">www.opslife.com</a>、 d9.opslife.com都应该访问到新建立的站点。</p>
<p>最后再验证一下，扔一个info.php放到/home/dawnh/opslife.com，内容就一句：</p>
<blockquote><p>&lt;?php phpinfo();?&gt;</p>
</blockquote>
<p>由于主域名还没指过来，先用子域名访问测试，直接访问<a href="http://d9.opslife.com/info.php">http://d9.opslife.com/info.php</a>，看到返回正确的phpinfo信息。到此最后一步也算顺利完成。</p>
<p>&#160;</p>
<p>剩下就是把wordpress的东西从老的VPS迁移过来了，依旧是没什么技术含量。有空再记录。</p>
<ul class="related_post"><li>2009/03/15 -- <a href="http://www.opslife.com/nginx-php-fastcgi-mysql-under-linux-vps/" title="手记:VPS上安装Nginx+PHP+FastCGI+MySQL">手记:VPS上安装Nginx+PHP+FastCGI+MySQL</a> (3)</li><li>2009/05/12 -- <a href="http://www.opslife.com/different-way-of-blogging/" title="独立Blog的几种玩法">独立Blog的几种玩法</a> (5)</li><li>2008/10/30 -- <a href="http://www.opslife.com/blog%e8%bf%81%e7%a7%bb%e5%88%b0vps/" title="Blog迁移到VPS">Blog迁移到VPS</a> (8)</li><li>2008/10/17 -- <a href="http://www.opslife.com/buying-new-swvps/" title="新玩具&#8211;VPS入手">新玩具&#8211;VPS入手</a> (6)</li><li>2007/10/10 -- <a href="http://www.opslife.com/sep-personal-summary/" title="近期小结">近期小结</a> (2)</li><li>2009/04/25 -- <a href="http://www.opslife.com/why-use-standalone-blog/" title="为什么需要独立Blog">为什么需要独立Blog</a> (15)</li><li>2009/02/26 -- <a href="http://www.opslife.com/my-blog-revolution/" title="革命啦，每年都来一回！">革命啦，每年都来一回！</a> (4)</li><li>2008/12/22 -- <a href="http://www.opslife.com/blog-speed-optimize/" title="Blog访问速度优化">Blog访问速度优化</a> (2)</li><li>2008/11/25 -- <a href="http://www.opslife.com/use-cacti-to-monitor-load-average/" title="抽空弄了个Cacti来画一下性能图表">抽空弄了个Cacti来画一下性能图表</a> (0)</li><li>2008/06/03 -- <a href="http://www.opslife.com/windows-live-write-new-technical-preview/" title="Windows Live Write new Technical Preview">Windows Live Write new Technical Preview</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.opslife.com/install-nginx-php-mysql-on-debian-lenny/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

