LNMP环境搭建

Linux + Nginx + MySQL + PHP

PHP是一种脚本语言,当前中国乃至世界上使用PHP语言开发的网站非常普遍

Nginx是一个web服务软件,和apache是一类软件,目前使用nginx的企业越来越多。

MySQL是当前最为流行的小型关系型数据库

和LAMP不同的是LNMP中的N指的是Nginx(类似于Apache的一种web服务软件)其他都一样。目前这种环境应用的也是非常之多。Nginx设计的初衷是提供一种快速高效多并发的web服务软件。在静态页面的处理上Nginx的确胜Apache一筹,然而在动态页面的处理上Nginx并不比Apache有多少优势。但是,目前还是有很多爱好者对Nginx比较热衷,随着Nginx的技术逐渐成熟,它在web服务软件领域的地位越来越高。

安装MySQL

步骤和LAMP中的mysql安装步骤是一模一样的。

1,下载mysql到/usr/local/src/

[root@CentOS100src]#wget http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz

这是64位的包,32位系统要用32位的包:

http://syslab.comsenz.com/downloads/linux/mysql-5.1.40-linux-i686-icciglibc23.tar.gz

2, 解压下载的包

[root@CentOS100 src]# tar -xvzf mysql-5.1.40-linux-x86_64-icc-glibc23.tar.gz

3,把解压的包移动到/usr/local/并改名为mysql

[root@CentOS100 src]# mv mysql-5.1.40-linux-x86_64-icc-glibc23 /usr/local/mysql

4,建立mysql用户

[root@CentOS100 src]# useradd -s /sbin/nologin mysql

5,建立mysql数据库文件夹,并修改所属主和所属组

[root@CentOS100 mysql]# mkdir -p /data/mysql ; chown -R  mysql:mysql /data/mysql

6,初始化数据库

[root@CentOS101 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

./scripts/mysql_install_db 这个文件是数据库文件夹里的文件,--user 定义数据库的所属主, --datadir 定义数据库安装到哪里,建议放到大空间的分区上,这个目录需要自行创建,执行后如果看到两个 “OK” 说明执行正确。出问题可根据问题来解决(最后附问题解决办法!)

7, 拷贝配置文件

[root@CentOS101 mysql]# cp support-files/my-large.cnf  /etc/my.cnf

8, 拷贝启动脚本文件并修改其属性

[root@CentOS101 mysql]# cp support-files/mysql.server  /etc/init.d/mysqld

[root@CentOS101 mysql]# chmod 755 /etc/init.d/mysqld

9, 修改启动脚本

[root@CentOS101 mysql]# vim /etc/init.d/mysqld

需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)

把启动脚本加入系统服务项,并设定开机启动,启动mysql

[root@CentOS101 mysql]# chkconfig --add mysqld

[root@CentOS101 mysql]# chkconfig mysqld on

[root@CentOS101 mysql]# service mysqld start

如果启动不了,到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err. 检查mysql是否启动的命令为:

[root@CentOS101 mysql]# ps aux |grep mysqld

安装php

这里要先声明一下,针对Nginx的php安装和针对apache的php安装是有区别的,因为Nginx中的php是以fastcgi的方式结合nginx的,可以理解为nginx代理了php的fastcgi,而apache是把php作为自己的模块来调用的。在LNMP中,安装PHP之前必需先安装mysql,其它的没有先后顺序。php官方下载地址: http://www.php.net/downloads.php

1.下载php

[root@CentOS5 src]# wget http://am1.php.net/distributions/php-5.3.27.tar.gz

2.解压php

[root@CentOS5 src]# tar -xvzf php-5.3.27.tar.gz

3.创建相关账户

[root@localhost src]# useradd -s /sbin/nologin php-fpm

4.配置编译参数

[root@localhost src]# cd php-5.3.27

[root@localhost php-5.3.27]# make clean

此命令为了清除之前安装PHP时生成的一些文件,避免与之前的编译混淆。

[root@localhost php-5.3.27]# ./configure --prefix=/usr/local/php_nginx --with-config-file-path=/usr/local/php_nginx/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir  --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp  --enable-mbstring --enable-exif --enable-zend-multibyte --disable-ipv6 --with-pear --with-curl --with-openssl

配置参数里和之前的有些不同,--enable-fpm必需加上,不加无法生成fpm文件。--with-config-file-path是指定php配置文件的路径,即php.ini的路径。

错误信息:

configure: error: Please reinstall the libcurl distribution -

easy.h should be in <curl-dir>/include/curl/

解决办法:

yum install -y libcurl-devel

5.编译php

[root@localhost  php-5.3.27]# make

在这一步,通常会遇到一些错误

/usr/bin/ld: cannot find -lltdl

collect2: ld returned 1 exit status

make: *** [sapi/fpm/php-fpm] 错误 1

解决办法:

yum install -y libtool-ltdl-devel

6.安装php

[root@localhost php-5.3.27]# make install

以上每一个步骤,如果没有完全执行正确,那么下一步是无法进行的,是否还记得判断执行是否正确的方法? 使用 echo $? 看结果是否为 “0” , 如果不是,就是没有执行正确。

7.拷贝配置文件

[root@localhost php-5.3.27]# cp php.ini-production /usr/local/php_nginx/etc/php.ini

[root@localhost php-5.3.27]# cp sapi/fpm/php-fpm.conf /usr/local/php_nginx/etc/

保存配置文件后,检验配置是否正确的方法为:

/usr/local/php_nginx/sbin/php-fpm -t

如果出现诸如 “test is successful” 字样,说明配置没有问题。

8.启动php-fpm

先拷贝启动文件 cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

chmod 755 /etc/init.d/php-fpm

service php-fpm start

如果想让它开机启动,执行:

chkconfig php-fpm on

检测是否启动:

ps aux |grep php-fpm

netstat -lnp | grep php

tcp    0   0 127.0.0.1:9000    0.0.0.0:*   LISTEN      11265/php-fpm

安装nginx

Nginx官方网站(http://nginx.org), 从官方网站可以看到nginx更新速度很快,这也反映了一个事实,目前使用nginx跑网站的公司或者个人越来越多。

(近期nginx报出一个安全漏洞,影响版本很广 CVE-2013-4547,所以之前的老版本都需要升级一下, 1.4.4, 1.5.7以及往后版本没有问题)

1.下载nginx

cd /usr/local/src/

wget http://nginx.org/download/nginx-1.6.2.tar.gz

2.解压nginx

tar -xvzf nginx-1.6.2.tar.gz

3.配置编译参数

cd nginx-1.4.4

./configure --prefix=/usr/local/nginx --with-pcre

编辑过程中出错:

checking for PCRE library ... not found

checking for PCRE library in /usr/local/ ... not found

checking for PCRE library in /usr/include/pcre/ ... not found

checking for PCRE library in /usr/pkg/ ... not found

checking for PCRE library in /opt/local/ ... not found

缺少pcre ,pcre用来支持正则表达式,解决方法:

yum install -y pcre-devel

4.编译nginx

make

5.安装nginx

make install

因为nginx比较小,所以很快就会安装完,而且也不会出什么错误。

6. 启动nginx,nginx很小巧,本身没有启动服务文件。

/usr/local/nginx/sbin/nginx

查看:ps aux | grep nginx

netstat -lnp | grep nginx

测试:从浏览器直接访问本机IP

7.更改nginx配置

配置文件位置:/usr/local/nginx/conf/nginx.conf

vim /usr/local/nginx/conf/nginx.conf

修改:

events {

worker_connections  4096;

}

这个值一般调成很大的数。

“server { }”相关配置就是虚拟主机,server里面的“location”需要改:

location / {

root   /web/123;

index  index.html index.htm index.php;

}

root指定虚拟主机的目录,这里换成LAMP时安装的discuz的目录。把下面location和php相关的内容打开,并修改:

location ~ \.php$ {

root           /web/123;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /web/123$fastcgi_script_name;

include        fastcgi_params;

保存配置后,先检验一下配置文件是否有错误存在:

/usr/local/nginx/sbin/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

重新加载nginx:

/usr/local/nginx/sbin/nginx -s reload

如果不能启动,请查看 “/usr/local/nginx/logs/error.log” 文件

LNMP环境搭建的更多相关文章

  1. 阿里云(ECS)Centos服务器LNMP环境搭建

    阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是 ...

  2. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  3. LNMP环境搭建——MySQL篇

    The world's most popular open source database 1.Install MySQL root@kallen:~# apt-get install mysql-s ...

  4. LNMP环境搭建之php安装,wordpress博客搭建

    LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...

  5. Ubuntu16.04 lnmp 环境搭建

    Ubuntu16.04 lnmp 环境搭建 nginx 安装 sudo apt-add-repository ppa:nginx/stablesudo apt-add-repository ppa:o ...

  6. LNMP环境搭建之编译安装指南(php-5.3.27.tar.gz)

    测试环境:CentOS release 6.5 (Final) 软件安装:nginx   mysql-5.5.32-linux2.6-x86_64.tar.gz   php-5.3.27.tar.gz ...

  7. LNMP环境搭建哈哈

    经过一番折腾,终于将LNMP环境搭建完成了.本文介绍的LNMP环境是在windows的Oracle VM VirtualBox中的Centos虚拟机上搭建的,各个软件的版本为:Centos7 + Ng ...

  8. LNMP环境搭建--Centos7

    LNMP环境搭建--Centos7 | 刘鹏--博客 盒子 盒子 博客 分类 搜索 文章目录 在Centos7环境安装LAMP环境,备忘哈哈. 准备 首先去官网下载php,nginx 编译安装php ...

  9. zabbix学习(一)——LNMP环境搭建及zabbix安装

    第一部分:LNMP环境搭建 一.环境说明: OS:   centos7.6_x64nginx:nginx-1.16.0php:   php-7.1.11mysql:mysql-5.6.44 zabbi ...

随机推荐

  1. 更新整理本人所有博文中提供的代码与工具(Java,2013.08)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...

  2. 推荐25款实用的 HTML5 前端框架和开发工具【下篇】

    快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5.HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的速度,性能和体验. ...

  3. pywebsocket的搭建

    Python可以搭建pywebsocket(Web服务器,python websocket),搭建pywebsocket必须要已经安装了python,点我查看python的下载与安装.在这篇Blog中 ...

  4. 根据网址把图片下载到服务器C#代码

    根据网址把图片下载到服务器C#代码 ASPX页面代码: <%@ Page Language="C#" AutoEventWireup="true" Cod ...

  5. go语言 类型:整型

    整型是所有编程语言里最基础的数据类型.

  6. php获取数组第一个值 current()

    获取数组第一个元素的值,如果是数字索引那还好,直接$array[0],如果键名是字符串,你又未知这个字符串呢?用current()函数就可以做到. current() 函数返回数组中的当前元素(单元) ...

  7. Asp.net EasyUI中的combogrid实现分页功能

    在jquery.easyUI.js 要实现分页,必须在后台接收参数时声明两个变量:page(当前第几页),rows(每页显示多少条信息),否者easyUI前台传递不了分页参数. 这两个属性的名称在ea ...

  8. CSS代码记录

    1. 内容横向滚动的代码 .ul { display: box; display: -webkit-box; width: 250px; background: yellow; overflow-y: ...

  9. 避开unity的坑(转摘)

    避开unity的坑(转摘) 以下总结一部分来自经验之谈,一部分来自其他人的分享.总的来讲,unity开发原型和效果.验证想法,确实是无比便利.可能一个月就把核心玩法做得差不多.强大的编辑器功能让我们也 ...

  10. Xcode常用快捷键

    1. 文件CMD + N: 新文件CMD + SHIFT + N: 新项目CMD + O: 打开CMD + S: 保存CMD+OPt+S:保存所有文件CMD + SHIFT + S: 另存为CMD + ...