Linux下搭建lnmp环境

前提:假设阅读本文的读者已经拥有基本的linux使用技巧,能够解决系统安装问题,以及软件安装的技巧。

注意: 本文所涉及的主要安装包(需要下载使用的)安装包,在本文最后会给出百度云盘链接,需要使用的,可以自由下载。

建议: 建议先通篇阅读本文,了解Nginx 各组件之间的关系后再进行安装,做到胸有大局,然后进行进一步的操作。

安装所在的机器配置:

  • linux 内核版本:2.6.32
  • linux 发行版本:CentOS 6.4 64位
  • 系统内存: 1G。
  • 虚拟机的话建议使用2G。编译会快点。

百度云盘:链接: http://pan.baidu.com/s/1o8SyQ2e 密码: i6hk

0、 添加软件运行所需的用户

groupadd nginx
useradd -g nginx nginx
groupadd mysql
useradd -g mysql mysql

1、安装gcc 和c++ 编译器。

yum -y install gcc gcc-c++

2、了解依赖关系

nginx 需要第三方库的支持:

gzip 用来压缩网页。gzip 需要 zlib库。

rewrite 用来实现网页重定向的功能。 rewrite 需要 pcre(Perl Compatible Regular Expression)库。

ssl 是一个加密库。如https.ssl 功能需要 openssl库

3、解决nginx依赖关系

yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

那么既然已经安装了 zlib openssl pcere 包为什么还要安装 zlib-devel 等包呢?

devel 包主要是供开发使用的,包里面至少包括以下2个东西。

1、头文件

2、链接库

以zlib 和 zlib-devel 为例.
如果你安装的是基于zlib 开发的程序,只需要安装zlib就行。
如果你要你变使用了glib的源代码,则需要使用glib-devel。
本文中我们要先安装zlib,由于不确定我们机器里面有没有这个库,所以就一并将zlib-devel安装上了。
由于yum会自动解决依赖,所以即使没有安装-devel,应该也会自己安装。作为了解原理,建议大家还是手动安装。

4、安装nginx

mkdir -p  /usr/local/webserver/source 

cd /usr/local/webserver/source

从文后的百度云盘中下载nginx-1.8.0.tar.gz 文件。

tar -xf nginx-1.8.0.tar.gz                                      //解压文件

cd nginx-1.8.0

./configure --help                                              //查看编译

选项

4.1 配置nginx

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module 

4.2 安装nginx

make && make install

/usr/local/webserver/nginx/sbin/nginx -V                          //查看nginx的版本信息

/usr/local/webserver/nginx/sbin/nginx -h                          //查看nginx的帮助信息

/usr/local/webserver/nginx/sbin/nginx                             //启动nginx

打开浏览器,输入linux的ip。可以看到欢迎的信息。

/usr/local/webserver/nginx/sbin/nginx    -s stop                    //关闭nginx

/usr/local/webserver/nginx/sbin/nginx                               //重新启动,以便后续操作。  

5、安装mysql

5.1、 解决mysql的安装依赖

cmake 用来编译mysql,所以要先下载cmake。

ncurses 和 ncurses-devel 是mysql的字符终端处理库。

yum -y install cmake ncurses ncurses-devel

5.2 、 安装mysql

下载文后网盘中的mysql-5.6.24.tar.gz 文件至 /usr/local/webserver/source

tar -xf mysql-5.6.24.tar.gz                                     // 解压mysql

cd /usr/local/webserver/source/mysql-5.6.24
查看编译选项:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。

5.3、编译配置mysql:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

以下为编译选项解释

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \          //mysql的安装路径
-DMYSQL_DATADIR=/usr/local/webserver/mysql/data \            //mysql的表数据存储路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \                             //装载MYISAM存储引擎。注:mysql的存储引擎是插件化的。需要按需加载。
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                           //装载INNODB存储引擎。
-DWITH_MEMORY_STORAGE_ENGINE=1 \                             // 装载 memory引擎,该引擎并不常用。
-DWITH_READLINE=1 \                                          // 不知道这是什么意思。
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \                //mysql 的sock文件路径。
-DMYSQL_TCP_PORT=3306 \                                      //mysql的监听端口,默认3306.
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \                                     //默认的字符集为utf8
-DDEFAULT_COLLATION=utf8_general_ci
执行编译: make && make install

我这里用单核的服务器使用了整整20分钟,虚拟机可能要30分钟以上。耐心等待,不要执行其他操作,此时cpu处于99%的满载状态。

5、4 创建mysql自带的数据库

/usr/local/webserver/mysql/scripts                  

./scripts/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql

5、5 启动mysql

设置开机启动:

/usr/local/webserver/mysql/support-files
cp ./mysql.server /etc/init.d/mysql            //复制到系统自启动目录。
chkconfig mysql on                             //设置开机启动
service mysql start                            //启动MySQL
PATH=/usr/local/webserver/mysql/bin/:$PATH     //将mysql命令设置到全局命令路径中
export PATH                                    //将PATH设置为全局变量
source /etc/profile                            //重新载入系统配置
5.6 测试mysql

mysql -u root
set password = password('密码')                  //设置密码
exit                                           //退出

//之后的测试就不讲了。

6、安装php

6.1、解决环境依赖

yum -y install libxml2 libxml2-devel
yum -y install libcurl libcurl-devel

6.2、 安装php

下载文后所示网盘中的 php-5.6.24.tar.gz 文件至/usr/local/webserver/source

cd /usr/local/webserver/source

tar -xf php-5.6.24.tar.gz

cd /usr/local/webserver/source/php-5.6.24

./configure --help                          //查看下配置项

配置项如下:

./configure --prefix=/usr/local/webserver/php --enable-fpm --with-config-file-path=/usr/local/webserver/php/conf --with-zlib --with-curl --enable-mysqlnd --enable-pdo --enable-mbstring --with-mysql=/usr/local/webserver/mysql --with-pdo-mysql=mysqlnd --with-openssl-dir --disable-fileinfo

make && make install

6.3、配置php

cd /usr/local/webserver/php

mkdir conf

/usr/local/webserver/source/php-5.6.24/php.ini-development ./conf/php.ini    //复制配置

cd /usr/local/webserver/php/etc

mv php-fpm.conf.default  php-fpm.conf

ls /usr/local/webserver/source/php-5.6.24/sapi/fpm/php-fpm /usr/local/bin/
php-fpm -h  //查看php的配置信息
php-fpm -m  //查看加载了那些模块                                  

7、关联php 与nginx

修改nginx配置,使其支持php后缀的文件。

//约52行 65行。

location / {
    root   html;
    index  index.php index.html index.htm;
}

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME              $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

修改php的配置,修改时间选项。

//约925行
date.timezone = Asia/Shanghai       //你不在上海也填上海。这个指的是时区。

8、将执行命令放置进/usr/local/bin 下。变成快捷命令

ln -s /usr/local/webserver/nginx/sbin/nginx /usr/local/bin/   

ln -s /usr/local/webserver/php/sbin/php-fpm /usr/local/bin/

cd /

执行 nginx

执行 php-fpm

cd  /usr/local/webserver/nginx/html/

mv index.html index.php
写一个phpinfo(); 的函数。去浏览器看下效果。

9、备注:

以上,已经将nginx 、php 、mysql 三者结合在了一起。如果你已经按照上面的提示安装成功,那么恭喜你,你运气真好。实践的过程中,可能会遇到各种各样的报错,一定要详细的看报错的信息,根据报错的信息去安装相应的组件。每个人的机器不同,可能报错的类别也不一样,遇到报错的欢迎大家到评论区提问,共同研讨,共同提高。

这篇文章的目的在于让大家了解到nginx 、php 、mysql三者之间的组合关系。本文中没有安装GD库,Reids 和 Memcache 等库。这留在后续的文章中逐步的去讲。如何让php通过打补丁(phpize)的方式将未加的组件编译进来。

原文地址:https://www.cnblogs.com/roverliang/p/9206368.html

时间: 2024-10-15 00:34:12

Linux下搭建lnmp环境的相关文章

linux下搭建lamp环境以及安装swoole扩展

linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 输入下面命令: yum -y update 1.安装Apache [[email protected] ~]# yum -y install httpd # 开机自启动 [[email protected] ~]# chkconfig httpd on # 启动httpd 服务 [[email protected] ~]# service httpd s

Java学习心得之 Linux下搭建JavaWeb环境

1. 前言2. Java安装3. tomcat安装4. tomcat简单命令 一.前言 本篇博文记录了Linux下JavaWeb环境的搭建,本文内容基于以下文章: http://m.blog.csdn.net/article/details?id=7727927(ubuntu下搭建java web开发环境的详细步骤)http://blog.csdn.net/xiaoyao6650/article/details/4029946 (用Ant编译Java Web程序) 关于JavaWeb的学习资料h

Ruby学习心得之 Linux下搭建Ruby环境

Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一.前言 本篇博文记录了Linux下Ruby编程环境的搭建. 本文内容基于以下文章:http://www.cnblogs.com/xfiver/archive/2012/03/08/2385833.html (linux下ruby安装[ubuntu10.10])http://www.360doc.com/content/07/0131/17/4910_351421.shtml (Ruby 在 Linux 上

linux下搭建hexo环境

最近对搭建个人博客比较感兴趣,但是刚搭建好next主题基本博客,电脑就坏了,借了一台电脑继续搞,不想在他电脑中弄太多环境,所以我准备在自己电脑的服务器上搭建hexo环境 服务器环境: (1)centos (2)git 已安装 1.node.js安装    (1)从官网下载linux版本的node.js 或者直接采用wget方式下载 wget下载:wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz    官网地址:h

Linux下搭建github环境并push pull代码

一.准备工作 1.有一个github账号,没有的话请到到github.com注册 2.已经安装了git 通过下面的命令检查是否已经安装了git $ git --version ###检查是否安装了git,如果没有安装就执行下一条命令 $ sudo apt-get install git ###安装git的命令 二.搭建github环境 1.命令生成ssh key公钥 $ ssh-keygen -t rsa -C "your email address" ###比如我的邮箱是[email

Linux下搭建Java环境变量并实现第一个Java小程序

1.首先,我们打开虚拟机里面的Linux操作系统,然后点击下图菜单下的虚拟机选项: 在点击虚拟机下的设置菜单,如下图所示: 这里我已经添加进去我所需要的文件夹了,我放在本机E盘下的as文件夹里面到底放了什么呢? 上图这两个压缩文件,一个是android studio的压缩包,上年发布出来的,一直没用它,今天本来想在windows下安装这个软件,发现所需要的jdk是1.7,而我在windows下的jdk版本为1.6,所以打算在Linux操作系统下安装jdk1.7,并安装andoid studio工

Centos7 Linux下搭建Elasticsearch环境

1.先准备好Elasticsearch的gz包,这里我用的是6.2.3版本的     以及一台Linux主机,在没有啦! 2.把gz包放入linux下,然后解压, tar -zxvf 压缩文件 当然你还需要安装jdk,需要环境变量 同样把压缩包拖入linux主机里面,解压完成后 再在 vim etc/profile 编辑如下文件 JAVA_HOME=你的jdk解压路径 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAV

linux下搭建测试环境

1.jdk的下载和安装 下载jdk的linux版本(建议下载1.8版本) 使用xshell连接linux 进入/usr/local目录(将jdk的包放入该文件下,以防出现权限问题) 使用rz命令上传jdk压缩包 使用tar -zxvf xxxx.tar  解压jdk的压缩包 进入/etc目录下进行配置环境变量 执行vim profile,进入编辑模式在文末添加配置项 JAVA_HOME=/usr/local/tools/jdk1.8.0 CLASSPATH=$:CLASSPATH:$JAVA_H

linux下的LNMP环境搭建

首先了解一下LNMP这四个字母的意思:可以把四个字母分开来看:L:linux的操作系统:N:Nginx网站服务:M:mysql数据库:P:php解析环境. 本次主要能学会Nginx网站服务的基本构建: 学会构建Nginx主机:(这个和apache的网站服务的虚拟web主机类似,本次不做过多讲解) 学会部署LNMP网站服务平台 今天我准备了天空网络电影系统.所以简单的把这个点播系统部署上(http://www.skyuc.com/) 一:Nginx服务基础         Nginx的优点:(1)