天天看点

LNMP平台部署及应用

     LAMP平台应该是目前应用最为广泛的网站服务器架构,但随着Nginx在企业中的使用越来越多,LNMP(或LEMP)架构也受到越来越多Linux系统工程师的青睐,其中"E"来自于Nginx的发音[engine x]

构建LNMP网站平台

    构建LNMP平台需要Linux服务器、Nginx服务器、MySQL数据库、PHP解析环境,具体方法和LAMP差不多,Nginx服务器的搭建方法上篇博客已经介绍了,下面以安装好的Nginx服务器为基础,搭建LNMP平台

1. 安装MySQL数据库

    MySQL数据库的安装方法以前讲过了,配置命令就不做解释了

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<code>[root@localhost ~]</code><code># yum -y install ncurses-devel</code>

<code>[root@localhost ~]</code><code># tar zxf cmake-2.8.12.tar.gz </code>

<code>[root@localhost ~]</code><code># cd cmake-2.8.12</code>

<code>[root@localhost cmake-2.8.12]</code><code># ./configure &amp;&amp; gmake &amp;&amp; gmake install</code>

<code>[root@localhost cmake-2.8.12]</code><code># cd ~</code>

<code>[root@localhost ~]</code><code># tar zxf mysql-5.5.38.tar.gz </code>

<code>[root@localhost ~]</code><code># cd mysql-5.5.38</code>

<code>[root@localhost mysql-5.5.38]</code><code># cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 </code>

<code>-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=</code><code>/etc/</code>

<code>[root@localhost mysql-5.5.38]</code><code># make &amp;&amp; make install</code>

<code>[root@localhost mysql-5.5.38]</code><code># cp support-files/my-medium.cnf /etc/my.cnf </code>

<code>cp</code><code>:是否覆盖</code><code>"/etc/my.cnf"</code><code>? y</code>

<code>[root@localhost mysql-5.5.38]</code><code># cp support-files/mysql.server /etc/init.d/mysqld</code>

<code>[root@localhost mysql-5.5.38]</code><code># chmod +x /etc/init.d/mysqld </code>

<code>[root@localhost mysql-5.5.38]</code><code># chkconfig --add mysqld</code>

<code>[root@localhost mysql-5.5.38]</code><code># echo "PATH=$PATH:/usr/local/mysql/bin" &gt;&gt; /etc/profile</code>

<code>[root@localhost mysql-5.5.38]</code><code># . /etc/profile</code>

<code>[root@localhost mysql-5.5.38]</code><code># groupadd mysql</code>

<code>[root@localhost mysql-5.5.38]</code><code># useradd -M -s /sbin/nologin mysql -g mysql</code>

<code>[root@localhost mysql-5.5.38]</code><code># chown -R mysql:mysql /usr/local/mysql</code>

<code>[root@localhost mysql-5.5.38]</code><code># /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ </code>

<code>--datadir=</code><code>/usr/local/mysql/data/</code> <code>--user=mysql</code>

<code>[root@localhost mysql-5.5.38]</code><code># service mysqld start</code>

<code>Starting MySQL..                                           [确定]</code>

<code>[root@localhost mysql-5.5.38]</code><code># mysqladmin -u root password 123456</code>

2. 安装PHP解析环境

    添加FPM模块,用来对PHP解析实例进行管理、优化解析效率

<code>[root@localhost ~]</code><code># yum -y install gd libxml2-devel libjpeg-devel libpng-devel</code>

<code>[root@localhost ~]</code><code># tar zxf php-5.3.28.tar.gz </code>

<code>[root@localhost ~]</code><code># cd php-5.3.28/</code>

<code>[root@localhost php-5.3.28]</code><code># ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql </code>

<code>--with-config-</code><code>file</code><code>-path=</code><code>/usr/local/php5</code> <code>--</code><code>enable</code><code>-mbstring --</code><code>enable</code><code>-fpm --with-jpeg-</code><code>dir</code><code>=</code><code>/usr/lib</code>

<code>[root@localhost php-5.3.28]</code><code># make &amp;&amp; make install</code>

<code>[root@localhost php-5.3.28]</code><code># cp php.ini-development /usr/local/php5/php.ini</code>

<code>[root@localhost php-5.3.28]</code><code># ln -s /usr/local/php5/bin/* /usr/local/bin/</code>

<code>[root@localhost php-5.3.28]</code><code># ln -s /usr/local/php5/sbin/* /usr/local/sbin/</code>

<code>[root@localhost ~]</code><code># tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz </code>

<code>[root@localhost ~]</code><code># cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/</code>

<code>[root@localhost php-5.3.x]</code><code># cp ZendGuardLoader.so /usr/local/php5/lib/php/</code>

<code>[root@localhost php-5.3.x]</code><code># vim /usr/local/php5/php.ini </code>

<code>zend_extension=</code><code>/usr/local/php5/lib/php/ZendGuardLoader</code><code>.so</code>

<code>zend_loader.</code><code>enable</code><code>=1</code>

3. 配置Nginx支持PHP环境

    若要让Nginx能够解析PHP网页,有两种方法:

方式一:充当中介,将访问PHP页面的Web请求转交给其他服务器(LAMP),从而实现由Nginx负责静态页面、LAMP负责动态页面的分离效果

方式二:通过使用PHP的FPM模块来调用本机的PHP环境

一、对于第一种方式,需要配置Nginx

<code>[root@localhost ~]</code><code># vim /usr/local/nginx/conf/nginx.conf</code>

<code>server {</code>

<code>……</code>

<code> </code><code>location ~ \.php$ {</code>

<code>     </code><code>proxy_pass   http:</code><code>//192</code><code>.168.1.100;     </code><code>//Apache</code><code>服务器的监听地址 </code>

<code>   </code><code>}</code>

<code>}</code>

二、本篇博客采用第二种方式,配置方法如下:

(1)启用php-fpm进程

30

31

32

33

34

35

36

<code>[root@localhost ~]</code><code># cd /usr/local/php5/etc/</code>

<code>[root@localhost etc]</code><code># cp php-fpm.conf.default php-fpm.conf</code>

<code>[root@localhost etc]</code><code># useradd -M -s /sbin/nologin php</code>

<code>[root@localhost etc]</code><code># vim php-fpm.conf</code>

<code>pid = run</code><code>/php-fpm</code><code>.pid             </code><code>//</code><code>确认pid文件位置</code>

<code>user = php                         </code>

<code>group = php</code>

<code>pm.start_servers = 20             </code><code>//</code><code>启动时开启的进程数</code>

<code>pm.min_spare_servers = 5          </code><code>//</code><code>最少空闲进程数</code>

<code>pm.max_spare_servers = 35</code>

<code>pm.max_children = 50              </code><code>//</code><code>最多空闲进程数</code>

<code>[root@localhost etc]</code><code># /usr/local/sbin/php-fpm       //启动php-fpm进程</code>

<code>[root@localhost etc]</code><code># netstat -anpt | grep php-fpm</code>

<code>tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      123330</code><code>/php-fpm</code>

<code>[root@localhost etc]</code><code># vim /etc/init.d/nginx      //添加以下内容,以便php-fpm程序随Nginx的控制启动或关闭</code>

<code>PROG_FPM=</code><code>"/usr/local/sbin/php-fpm"</code>

<code>PIDF_FPM=</code><code>"/usr/local/php5/var/run/php-fpm.pid"</code>

<code>case</code> <code>"$1"</code> <code>in</code>

<code>start)</code>

<code>netstat</code> <code>-anpt | </code><code>grep</code> <code>"php-fpm"</code> <code>&amp;&gt; dev</code><code>/null</code> <code>&amp;&amp; pgrep </code><code>"php-fpm"</code> <code>&amp;&gt; </code><code>/dev/null</code>

<code>if</code> <code>[ $? -</code><code>eq</code> <code>0 ]; </code><code>then</code>

<code>echo</code> <code>"php-fpm is running"</code>

<code>else</code>

<code>$PROG_FPM</code>

<code>fi</code>

<code>;;</code>

<code>stop)</code>

<code>killall -s QUIT php-fpm</code>

<code>echo</code> <code>"php-fpm is down"</code>

<code>esac</code>

(2)配置Nginx支持PHP解析

<code>server {                                       </code><code>//</code><code>找到以下文件,去掉</code><code>#</code>

<code>        </code><code>location ~ \.php$ {</code>

<code>            </code><code>root           </code><code>/var/www/ysf</code><code>;       </code><code>//PHP</code><code>网页文档根目录</code>

<code>            </code><code>fastcgi_pass   127.0.0.1:9000;     </code><code>//php-fpm</code><code>的监听地址</code>

<code>            </code><code>fastcgi_index  index.php;          </code><code>//PHP</code><code>首页文件</code>

<code>            </code><code>include        fastcgi_params;     </code><code>//</code><code>包括fastcgi_params样本配置</code>

<code>        </code><code>}</code>

<code>[root@localhost ~]</code><code># service nginx restart      //重启服务即可生效</code>

(3)PHP页面访问测试

<code>[root@localhost ~]</code><code># vim /var/www/ysf/test.php     //创建测试网页</code>

<code>&lt;?php</code>

<code>$link=mysql_connect(</code><code>"localhost"</code><code>,</code><code>"root"</code><code>,</code><code>"123456"</code><code>);</code>

<code>if</code><code>($link) </code><code>echo</code> <code>"welcome to database!!!"</code><code>;</code>

<code>mysql_close();</code>

<code>?&gt;</code>

    先创建一个测试文件,在浏览器中访问,测试PHP是否正常解析,以及能否访问MySQL数据库

在LNMP平台中部署Web应用

    LNMP平台与LAMP平台是非常相似的,区别主要在于使用Web服务软件的不同,而这与使用PHP开发的Web应用程序并无太大关系。下面以“天空网络电影系统”为例,介绍在LNMP平台部署过程

    天空网络电影系统(简称SKYUC ),是一套PHP视频点播系统,支持各种P2P流媒体软件,应用范围非常广泛,其官网地址为http://www.skyuc.com/ 

1. 下载并调整程序代码 

<code>[root@localhost ~]</code><code># yum -y install unzip</code>

<code>[root@localhost ~]</code><code># unzip SKYUC.v3.4.2.SOURCE.zip             //将下载的SKYUC文件解压</code>

<code>[root@localhost ~]</code><code># mv SKYUC.v3.4.2.SOURCE/wwwroot /var/www/ysf/skyuc    //将wwwroot移到网站根目录</code>

<code>[root@localhost ~]</code><code># cd /var/www/ysf/skyuc/                               //调整相关权限</code>

<code>[root@localhost skyuc]</code><code># chown -R php:php admincp/ data/ templates/ upload/</code>

<code>[root@localhost skyuc]</code><code># mysql -u root -p </code>

<code>Enter password: </code>

<code>……                                </code><code>//</code><code>新建skyuc专用数据库及授权用户,降低数据库的风险</code>

<code>mysql&gt; create database skyucdb;          </code>

<code>Query OK, 1 row affected (0.00 sec)</code>

<code>mysql&gt; grant all on skyucdb.* to ysf@localhost identified by </code><code>"123456"</code><code>;</code>

<code>Query OK, 0 rows affected (0.00 sec)</code>

2. 安装Web应用

3. 访问Web应用系统

本文转自 杨书凡 51CTO博客,原文链接:http://blog.51cto.com/yangshufan/2060600,如需转载请自行联系原作者