文档章节

lnmp源码部署

庆沉
 庆沉
发布于 2015/11/19 17:59
字数 1820
阅读 57
收藏 8
点赞 0
评论 0

Linux下搭建Nginx+MySQL+PHP.

首先来介绍一下Nginx.Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。Nginx不仅可以作为web服务器,也可以作为负载均衡器,之前也有文章介绍,大家可以看一下.

MySQL是一款开源免费的数据软件,MySQL是一个小型关系型数据库管理系统,其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.

PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。

下载最新版本1.8.0

http://nginx.org/en/download.html

nginx会有几个依赖包,我们首先安装依赖,不要安装过程中会报错:

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

一般源代码安装分4个步骤,解压(tar命令)预编译(执行源码包下的configure),编译(make),编译安装(make install)
首先我们解压源码包:

tar -zxvf nginx-1.0.13.tar.gz

这里解释下加压参数,z代表gzip(也就是后面的.gz文件)x代表加压,v表示显示详细信息,-f使用档案文件或设备(必选参数)

然后我们进行预编译,一般预编译会带上一些参数,已达到我们想要安装的效果,比如启用某个功能,禁用某个功能:
进入源码包目录进行预编译:

cd nginx-1.0.13
 ./configure --prefix=/usr/local/nginx\   # 指定安装目录为/usr/local/nginx
--with-openssl=/usr/include/openssl\  # 启用ssl
--with-pcre\                          # 启用正规表达式
--with-http_stub_status_module        # 安装可以查看nginx状态的程序

其中./configure指执行当前目录下的configure文件

预编译完成后我们就可以进行编译和安装:

make           #编译

执行后make后会有大量输出,等待输出完成后如果没有报错就可以进行安装执行:

make install   #安装

安装完成后我们可以到相应的目录查看安装的文件:

ls /usr/local/nginx/
conf  html  logs  sbin

好了,下面我们启动nginx:

/usr/local/nginx/sbin/nginx

通过查看端口看nginx是否启动成功,nginx占用TCP的80端口,执行下面命令:

 netstat -antlp ¦ grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      5946/nginx

我们查看80端口是开放的

然后打开浏览器访问http://192.168.3.120,我们会看到Welcome to nginx(之前的版本是 It’s Work):

nginx安装完毕后我们来安装MySQL :

安装依赖:

yum -y install ncurses-devel

创建MySQL用户:

useradd -M -s /sbin/nologin mysql  # -M不创建home目录,-s指定shell为不登录

然后进行安装:

tar -zxvf mysql-5.0.95.tar.gz
cd mysql-5.0.95
./configure --prefix=/usr/local/mysql \
--without-debug \                                 # 取消调试模式提高性能
--with-extra-charsets=utf8,gbk \                  # 仅仅指定需要的默认字符集提高性能
--enable-assembler \                              # 使用汇编模式提高性能
--with-mysqld-ldflags=-all-static \               # 以静态方式编译提高性能
--with-client-ldflags=-all-static \
--with-unix-socket-path=/tmp/mysql.sock \         # 使用unix socket提高性能
--with-ssl
make
make install

安装完成后复制配置文件和启动脚本:

cp support-files/my-medium.cnf /etc/my.cnf         # 复制配置文件
cp support-files/mysql.server /etc/init.d/mysqld   # 复制启动脚本
chmod +x /etc/init.d/mysqld         # 给启动脚本执行权限

为了以后方便我们为所有的二进制可执行文件和动态链接库文件做一个软连接:

ln -s /usr/local/mysql/bin/* /usr/local/bin/              # 为可执行的二进制文件做软连接
ln -s /usr/local/mysql/lib/mysql/lib* /usr/lib/  # 为动态链接库做一个软连接

然后我们初始化数据库:

mysql_install_db --user=mysql  # 用MySQL用户安装数据库

为了MySQL能正常使用我们需要更改一下MySQL安装目录和MySQL的数据库目录的属主和属组:

chown -R root.mysql /usr/local/mysql/           # 更改安装目录属主为root,属组为mysql
chown -R mysql.mysql /usr/local/mysql/var/      # 更改数据库目录属主和属组都为mysql

这里的-R参数用来应用到所有子目录和文件

配置完毕后我们启动mysql:

service mysqld start

现在我们查看MySQL是否启动成功,MySQL占用TCP的3306端口,我们查看端口是否被占用:

netstat -antlp ¦ grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      32143/mysqld

然后我们通过mysql命令来连接mysql:

mysql

会显示如下内容表示已经成功启动MySQL并已经连接上

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.95-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

MySQL安装完毕下面我们就来安装PHP,安装PHP前首先要安装几个源码包依赖:
libmcrypt mhash mcrypt

参考:http://www.th7.cn/system/lin/201410/74518.shtml

首先来安装几个源码包依赖:

wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.bz2/download
tar -jxvf libmcrypt-2.5.8.tar.bz2   # 这个包是bz2的  使用-j参数解压
cd libmcrypt-2.5.8
./configure
make
make install

####################################################
wget http://sourceforge.net/projects/mhash/files/mhash/0.9.9.9/mhash-0.9.9.9.tar.bz2/download
tar -jxvf mhash-0.9.9.9.tar.bz2
cd mhash-0.9.9.9
./configure
make
make install
# 这两个包安装完成后要把动态链接库做一个软连接到/usr/lib,以为接下来的mcrypt依赖于这两个包
ln -s /usr/local/lib/libmcrypt* /usr/lib
ln -s /usr/local/lib/libmhash.* /usr/lib/
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
###########################################################
wget http://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make
make install

然后下载php:

wget http://cn2.php.net/get/php-5.4.0.tar.bz2/from/this/mirror

安装依赖:

yum –y install libxml2-devel curl-devel libpng-devel openldap-devel

我们使用nginx调用php的时候使用fpm的方式,在php 5.4中加入了对php-fpm的支持,所以就不需要打补丁了.安装PHP:

tar -jxvf php-5.4.0.tar.bz2
cd php-5.4.0
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql/ --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap
make
make install

到这里整个LNMP已经安装完成.下面我们就配置php和nginx能运行php网站:
首先为php创建配置文件:

cp php.ini-production /usr/local/php/php.ini # 如果是开发就复制php.ini-development
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
ln -s /usr/local/php/bin/php /usr/bin/

配置php-fpm,编辑php-fpm.conf

vi /usr/local/php/etc/php-fpm.conf

找到listen那一行,修改成如下内容:

listen = /var/run/php-fpm/php-fpm.sock   # 使用unix socket

启动php-fpm

mkdir /var/run/php-fpm
/usr/local/php/sbin/php-fpm

然后配置nginx,编辑nginx配置文件

vi /usr/local/nginx/conf/nginx.conf

修改nginx配置文件支持php:

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.php index.html index.htm;         # 添加index.php的首页文件
        }

        # 添加下面内容
        location ~ \.php$ {
            fastcgi_pass        unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index       index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
        }

修改完毕后保存退出重启nginx:

pkill -9 nignx
/usr/local/nginx/sbin/nginx

然后在/usr/local/nginx/html下创建index.php,

vi /usr/local/nginx/html/index.php

添加下面内容:

[php] view plaincopy

  1. <?php  

  2. phpinfo();  

  3. ?>  

保存退出后访问http://192.168.3.120/index.php,看到下面页面表示已经安装配置成功:


© 著作权归作者所有

共有 人打赏支持
庆沉
粉丝 35
博文 218
码字总数 140118
作品 0
深圳
运维
自动部署LNMP脚本

最近抽时间写了一份LNMP部署脚本,使用源码安装所需软件,源码软件包网络上很容易获取,这里仅贴出脚本内容,大家可以自行在网络上下载对应的软件放在脚本当前目录即可,实际下载的软件包如果...

丁丁历险 ⋅ 2015/12/12 ⋅ 0

CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使...

HMLinux ⋅ 2017/06/05 ⋅ 0

查看源码,网站资源链接都是乱码。。

在做网站部署时,发现有一台服务器上搭建的两个网站访问时,浏览器查看源码,资源链接都有一长串乱码,不过不影响访问。。换了机器跟浏览器都一样(源代码都是正常的资源链接) 虽然没实际影...

jimchan ⋅ 2014/05/08 ⋅ 3

部署LNMP环境

部署LNMP环境 1.1 问题 安装部署Nginx、MariaDB、PHP环境 安装部署Nginx、MariaDB、PHP、PHP-FPM; 启动Nginx、MariaDB、FPM服务; 并测试LNMP是否工作正常。 1.2 方案 在RHEL7系统中,源码安...

天亮说再见 ⋅ 2017/11/09 ⋅ 0

LNMP、LAMP、LANMP一键安装脚本

LNMP、LAMP、LANMP一键安装脚本(定期更新) 2012-02-06 Posted by yeho 这个脚本是使用shell编写,为了快速在生产环境上部署LNMP/LAMP/LANMP(Linux、Nginx/Tengine、MySQL/MariaDB/Percona...

youxizhe ⋅ 2014/05/18 ⋅ 0

Shell 一键安装 LNMPT

前言 为了更加快速的节约时间,我选择用shell脚本一键执行! 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp / lamp /lnmpa 。 (Linux、Nginx/Tengine MySQL /MariaDB /Percona、P...

我不是九爷 ⋅ 2017/11/21 ⋅ 0

nginx php动态编译加载模块.

#Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #nginx version: nginx/1.12.0 #built by gcc 4.8.5 20150623 (R......

一招拜师 ⋅ 2017/07/12 ⋅ 0

OneinStack 1.0 发布,一键 PHP/JAVA 安装工具

这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa/lnmt(Linux、Nginx/Tengine、MySQL/MariaDB/Percona、PHP、Apache、Tomcat),适用于CentOS 5~7(包括redhat)、Debia...

lj2007331 ⋅ 2015/09/01 ⋅ 21

OneinStack 1.3 发布,一键 PHP/JAVA 安装工具

OneinStack 1.3 发布了,这个脚本是使用 shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa/lnmt(Linux、Nginx/Tengine/OpenResty、 MySQL/MariaDB/Percona、PHP、Apache、Tomcat),适用...

lj2007331 ⋅ 2016/04/29 ⋅ 11

lnmp、lamp、lnmpa一键安装包

(Updated: 2016-8-21) 这个脚本是使用shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa(Linux、Nginx/Tengine/OpenResty、MySQL/MariaDB/Percona、PHP),适用于CentOS 5~7(包括red...

Yomut ⋅ 2016/09/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如...

honeymose ⋅ 昨天 ⋅ 0

myeclipse10 快速搭建spring boot开发环境(入门)

1.创建一个maven的web项目 注意上面标红的部分记得选上 2.创建的maven目录结构,有缺失的目录可以自己建立目录补充 补充后 这时候一个maven的web项目创建完成 3.配置pom.xml配置文件 <proje...

小海bug ⋅ 昨天 ⋅ 0

nginx.conf

=========================================================================== nginx.conf =========================================================================== user nobody; #......

A__17 ⋅ 昨天 ⋅ 0

645. Set Mismatch - LeetCode

Question 645. Set Mismatch Solution 思路: 遍历每个数字,然后将其应该出现的位置上的数字变为其相反数,这样如果我们再变为其相反数之前已经成负数了,说明该数字是重复数,将其将入结果r...

yysue ⋅ 昨天 ⋅ 0

Python这么强?红包杀手、消息撤回也可以无视,手机App辅助!

论述 标题也许有点不好理解,其实就是一款利用Python实现的可以监控微信APP内的红包与消息撤回的助手。不得不说,这确实是一款大家钟意的神器。 消息撤回是一件很让人恶心的事,毕竟人都是有...

Python燕大侠 ⋅ 昨天 ⋅ 0

压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具

压缩打包介绍 压缩的好处不仅能节省磁盘空间而且在传输的时候节省传输时间和网络带宽 windows系统下文件带有 .rar .zip .7z 后缀的就是压缩文件 linux系统下则是 .zip, .gz, .bz2, .xz, ...

黄昏残影 ⋅ 昨天 ⋅ 0

观察者模式

1.利用java原生类进行操作 package observer;import java.util.Observable;import java.util.Observer;/** * @author shadow * @Date 2016年8月12日下午7:29:31 * @Fun 观察目标 **/......

Cobbage ⋅ 昨天 ⋅ 0

Ubuntu打印服务器配置

参考:https://blog.csdn.net/gsls200808/article/details/50950586 https://blog.csdn.net/jiay2/article/details/80252369 https://wiki.gentoo.org/wiki/HPLIP 由于媳妇儿要大量打印资料,......

大熊猫 ⋅ 昨天 ⋅ 0

面试的角度诠释Java工程师(二)

原文出处: locality 续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会...

颖伙虫 ⋅ 昨天 ⋅ 0

github中SSH的Key

https://help.github.com/articles/connecting-to-github-with-ssh/ https://help.github.com/articles/testing-your-ssh-connection/ https://help.github.com/articles/adding-a-new-ssh-k......

whoisliang ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部