LNMP详细搭建

来源:互联网 发布:mac的qq不能远程 编辑:程序博客网 时间:2024/05/23 19:27
在LNMP平台的四个组件中,每个组件都承担着一部分关键作用。经过时间年的发展,各组件的兼容性的道路不断的完善,协作能力与稳定性不断增强,可以构建出非常优秀的的WEB应用系统。各组件的主要要求如下。(以下需要的所有源码包全部在这个链接中http://pan.baidu.com/s/1eSj99bc)
一:LNMP 主要分为 Linux  nginx mysql PHP。
1.Linux操作系统:作为lnmp的建构基础,提供用于支撑WEB站点的操作系统,能够与其他三个组件提供更好的稳定性、兼容性(AMP组件也支持Windows、UNIX等操作系统)
2.nginx 专为性能优化而开发,其最知名的优点是他稳定性和低系统资源消耗,以及对HTTP并发连接的最高处理性能(单单台物理服务器可支持30000-50000个并发请求)。
3.MySQL 数据库服务器:作为lnmp建构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等都可以存储到MySQL数据库中,其他程序可以通过SQL语句来查询、更改这些信息。
4.PHP/Perl/Python 网页编程语言:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供WEB应用程序的开发和运行环境。其中PHP 是一种被广泛应用的开源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合WEB应用开发。
二:lnmp平台的应用优势
1.成本低廉
2.可定制
3.易于开发
4.方便应用
5.安全和稳定
第一步:安装Linux操作系统
(我们用电脑安装一个VMware Workstation Pro 用来安装操作系统)
第二步:安装nginx
首先我们先安装依赖包以及编译包
yum install -y pcre-devel zlib-devel gcc gcc-c++ make
接着我们来解压源码包到/opt目录下(nginx-1.2.8.tar.gz)
 
创建一个属于nginx的用户
useradd -M -s /sbin/nologin nginx
 
进入/opt/ nginx-1.2.8进行源码包编译
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module  && \
make && make install
编译完成之后检查是否编译错误
echo $?(输出为0时表示编译正确不为0则错误)
创建软连接(相当于windows的快捷方式)
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
 
检查nginx
nginx -t
 
制作管理脚本(方便使用service命令进行管理)
vi /etc/init.d/nginx
#!/bin/bash
# chkconfig: 35 99 20
# description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
  start)
    $PROG
    ;;
  stop)
    kill -s QUIT $(cat $PIDF)
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  reload)
    kill -s HUP $(cat $PIDF)
    ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload}"
        exit 1
esac
exit 0
给管理脚本添加可执行权限
chmod +x /etc/init.d/nginx
添加service管理
chkconfig –add nginx
配置统计页面
先进入/usr/local/nginx/conf
给配置文件做备份
mv nginx.conf nginx.conf.back
过滤配置文件的注释(以#号开头的字符都是注释)
grep -v "#" nginx.conf.back > nginx.conf
编辑配置文件
vim nginx.conf
在index  index.html index.htm;括号结束插入(大约在32行左右)
location ~ /status {
        stub_status   on;
        access_log off;
        }
解释
{ location ~ /status { //访问位置为/status
        stub_status   on; //打开状态统计功能
        access_log off; //关闭此位置的日志记录
 }
配置虚拟主机
先创建网页文件
mkdir -p /var/www/accp
mkdir -p /var/www/benet
然后输入html到网页中
echo <h1> accp </h1> > /var/www/accp/index.html
echo <h1> benet </h1> > /var/www/benet/index.html
在nginx.conf末尾添加(在配置文件的末尾单独插入就不会有影响,注意格式,主要就是注意括号问题!)
server {
        server_name  www.benet.com;
        location / {
            root   /var/www/benet;
            index  index.html index.php;
        }
    }
    server {
        server_name  www.accp.com;
        location / {
            root   /var/www/accp;
            index  index.html index.php;
        }
    }
}
}(最后这个括号是原来的)
配置完成后用nginx –t检查是否有问题(没有问题输出如下)


nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
在宿主机上的host文件末尾添加
虚拟机ip地址 www.benet.com
虚拟机IP地址 www.accp.com
开启nginx
Nginx
关闭防火墙
service iptables stop
进行测试
用浏览访问www.accp.com 和 www.accp.com


 
 
到此为止nginx配置完成
第三步:安装mysql
安装一个mysql的依赖包
yum install –y ncurses-devel
解压mysql源码包到/opt/目录下(版本mysql-5.5.24.tar.gz)
tar -zxf mysql-5.5.24.tar.gz -C /opt/
安装mysql的编译软件cmake(版本cmake-3.6.3.tar.gz)
解压cmake的源码包到/opt/目录下
tar -zxf cmake-3.6.3.tar.gz -C /opt/
进入/opt/ cmake-3.6.3/
cd /opt/cmake-3.6.3/
进行源码包编译
./configure && make && make install
检查编译是否正确
echo $?
进入到/opt/ mysql-5.5.24/目录下进行编译
cd /opt/mysql-5.5.24/
进行源码包编译
cmake  \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/home/mysql/ \
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1 \
-DWITH_SSL=bundled && \
make && make install
拷贝文件便于mysql启动
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
给启动文件添加可执行权限
chmod 755 /etc/init.d/mysqld
添加service更好的管理mysql
chkconfig --add /etc/init.d/mysqld
配置开机自启
echo "PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
运行脚本
./etc/profile
添加mysql的用户 (为了系统的安全性所以不允许mysql用户登录)
useradd  mysql -s /sbin/nologin
给mysql可读权限
chown -R mysql.mysql /usr/local/mysql
初始化数据库
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--ldata=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
创建软连接
ln-s/var/lib/mysql/mysql.sock /home/mysql/mysql.sock
到此为止mysql配置结束
开启mysql
service mysqld start
登录mysql
mysql
第四部:安装PHP
先安装PHP的依赖包
yum -y install \
libjpeg-devel \
libpng-devel \
freetype-devel \
zlib-devel \
gettext-devel \
libXpm-devel \
libxml2-devel \
fontconfig-devel \
openssl-devel \
bzip2-devel
解压PHP源码包到/opt目录下(版本php-5.6.11.tar.bz2)
tar -jxf php-5.6.11.tar.bz2 -C /opt/
进入/opt/ php-5.6.11目录 
cd /opt/php-5.6.11/
编译PHP(编译过程中有warning属于正常)
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring \
--with-jpeg-dir \
--with-openssl \
--disable-ipv6 \
--enable-fpm && \
make && make install
编译完成之后我们用echo $?来检查编译是否出问题
(输出为0时表示编译正确不为0则错误)
echo $?
拷贝模板到PHP所在的目录下
cp php.ini-development /usr/local/php5/php.ini
做软连接方便管理
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
为PHP安装加速器
解压加速器源码包到/opt目录下(版本ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz)
Tar–zxfZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz –C /opt/
进入加速器源码包的PHP目录下
cd ZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
把配置文件拷贝到PHP目录下
cp ZendGuardLoader.so /usr/local/php5/lib/php
让PHP识别加速器,编辑配置文件
vi /usr/local/php5/php.ini
在末尾添加
[Zend Guard Loader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
开启nginx支持PHP功能
进入到cd /usr/local/php5/etc/
把配置备份文件变成配置文件
cp  php-fpm.conf.default php-fpm.conf
为PHP创建用户
useradd -M -s /sbin/nologin php
修改配置文件(修改以下配置文件)
pid = run/php-fpm.pid
user = php
group = php
pm.max_children=50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
开启加速器
/usr/local/sbin/php-fpm
检查是否开启
netstat -tnal | grep 9000
让nginx支持PHP功能
编辑nginx的配置文件
vi /usr/local/nginx/conf/nginx.conf
在location条目下面添加
location ~ \.php$ {
            root           /var/www/benet;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;
        }
保存退出后检查配置是否有问题
nginx –t
编辑测试页
vim /var/www/benet/index.php
添加以下内容
<?php
phpinfo();
?>
 在网页测试“http://192.168.10.188/index.php”输入这个,后面还是要直接写
“index.php”的,虽然写了“fastcgi_index  index.php;”这个支持php格式的,
但还是不支持的
建立数据库,授权
mysql -u root
mysql> CREATE DATABASE sky;
mysql>GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123';
mysql>flush privileges;
测试数据库
编辑的php配置文件
vi /var/www/benet/index.php
(删除原来的内容添加以下内容)
<?php
$link=mysql_connect('192.168.10.188','skyuser','admin123');
if(!$link) echo "Fail !!";
else echo "Success !!";
mysql_close();
?>
如果输出的是Success!!那么表示你成功了
之后我们要在lnmp的建构上可以安装论坛、网页等。
下一个博客会发表web的缓存、双机热备份、等

原创粉丝点击