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)的方式将未加的组件编译进来。
Linux下搭建lnmp环境的更多相关文章
- Linux下搭建PHP环境
转载于: http://www.uxtribe.com/php/405.html 该站下有系列PHP文章. 在Linux下搭建PHP环境比Windows下要复杂得多.除了安装Apache,PHP等软件 ...
- Java学习心得之 Linux下搭建Java环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...
- Java学习心得之 Linux下搭建JavaWeb环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...
- Ruby学习心得之 Linux下搭建Ruby环境
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...
- linux 下搭建php环境
linux 下搭建php环境 1.下载apache (http://httpd.apache.org/download.cgi) 下载php组件 ( http://cn2.php.net/get/ph ...
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- Linux下搭建JSP环境
Linux下搭建JSP环境 作为一名Java EE系统架构工程师,经常需要搭配和建立JSP(Java Server Pages)的开发环境和运行环境,所以本人在平时的工作中积累了一些在Linu ...
- Linux 下搭建 Kafka 环境
Linux 下搭建 Kafka 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Kafka 环境 CSDN:Linux 下搭建 Kafka 环境 环境要求 操作系统:CentOS 7 下 ...
- Linux 下搭建 Hadoop 环境
Linux 下搭建 Hadoop 环境 作者:Grey 原文地址: 博客园:Linux 下搭建 Hadoop 环境 CSDN:Linux 下搭建 Hadoop 环境 环境要求 操作系统:CentOS ...
随机推荐
- Navicat创建视图与美化SQL
数据库-->视图-->新建视图,点击视图创建工具,将需要用到的表拖入到右侧,然后再底部填写具体的字段等,示意图如下: 注意:视图的字段别名或者列名是不能重复的,否则创建失败: 当视图语句非 ...
- Swift基础
github上找了swift中文翻译,上传到百度云,给大家分享下 链接:http://pan.baidu.com/s/1hqGOxfe 密码:asto
- ASP.NET开发,从二层至三层,至面向对象 (5)
此是一系列博文,最后一篇了.也是面向初学者而作,望你们能有更好,更多对ASP.NET面向对编程了解与认识. 前一篇中<ASP.NET开发,从二层至三层,至面向对象 (4)>http://w ...
- 使用VS2013 + EF6 连接Mysql数据库
使用VS2013 + EF6 + .NET4.5 连接Mysql数据库 1.安装插件 在使用Visual Studio 2013添加ADO.NET实体数据模型新建连接时,默认是没有Mysql选项的.此 ...
- Java并发编程-闭锁
闭锁是一种同步器 ( Synchronizer ),它可以延迟线程的进度直到线程到达终止状态,CountDownLatch是一个灵活的闭锁实现:1)允许一个或多个线程等待一个事件集的发生,闭锁的状态包 ...
- 盒子模型的margin负数用法
盒子的margin用法大家都应该很清楚,在实际中一般使用margin来水平居中或者让自己移动相应的位置,但是margin给负数在实际中也是有用的. 如图为两个浮动的盒子. 给左边的盒子margin-l ...
- 【17】迭代器模式(Iterator Pattern)
一.引言 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合.在这一章中,将介绍一下迭代器模式. 二.迭代器模式的介绍 迭代器是针对集合 ...
- php面向对象精要(1)
1.静态属性与方法 每一个类的实例拥有自己的属性和方法,每一个类也可以包含静态属性,静态属性不属于类的任何实例,可以把静态属性理解成存储在类中的全局变量,可以在任何地方通过类名引用静态属性. < ...
- HDU1083(KB10-C 二分图最大匹配)
Courses Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total S ...
- LOJ#6085. 「美团 CodeM 资格赛」优惠券(set)
题意 题目链接 Sol 考虑不合法的情况只有两种: 进去了 再次进去 没进去 但是出来了 显然可以用未知记录抵消掉 直接开个set维护一下所有未知记录的位置 最优策略一定是最后一次操作位置的后继 同时 ...