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 && gmake && 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 && 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" >> /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 && 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>&> dev</code><code>/null</code> <code>&& pgrep </code><code>"php-fpm"</code> <code>&> </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><?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>?></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> create database skyucdb; </code>
<code>Query OK, 1 row affected (0.00 sec)</code>
<code>mysql> 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,如需转载请自行联系原作者