linux 源码搭建lnmp_Linux搭建lnmp环境

首先,什么是lnmp ? lnmp就是 Linux+nginx + mysql + PHP,如果您还不懂,那么请麻烦点一下浏览器上方的一个x按钮,退出本页面。

在开始搭建之前,我先来交代一下我的Linux系统环境,为centos,即使其他的linux系统也没关系,只是为了保证不出错误还是尽量和我的系统保持一致,那如果不一致怎么办,比如你的Linux系统为ubuntn,那就把我的一些命令换成ubuntu的命令就可以了。

另外说明的一点,本次搭建的lnmp环境,我们会分开安装各个软件,并且是采用源码编译安装,如果你觉得这并不是你阅读本篇文章的作用,而是想集成安装,那么请访问LNMP一键安装包 - CentOS/RadHat/Debian/Ubuntu下自动编译安装Nginx,PHP,MySQL,PHPMyAdmin 网址来根据步骤一步步的安装吧。好了,废话不多说,让我开始吧,let's do it!

一.安装PHP

在安装PHP之前需要安装一些依赖包,执行下面的命令就可以了,如果安装过请忽略

yum install vim gcc gcc++ wget libxml2-devel wget -y

1.下载PHP

找到自己想要安装的版本来进行下载,我这里就以我自己的需求来选个一个地址

http://cn2.php.net/get/php-5.6.34.tar.gz/from/this/mirror

2.登陆到自己的Linux系统

3.进入自己的家目录,如果你是超级管理员用户,那么你的家目录是在/root下面,如果你是普通用户,你的目录是在/home ,当然了,像PHP这种服务,我们还是尽量用超级管理员用户登陆。

wget http://cn2.php.net/get/php-5.6.34.tar.gz/from/this/mirror

执行上面的目录来下载,这里来解释一下,mirror 这个是什么东西,这个就是和.gz 等的一样的压缩包,很多人等下载完这个东西,看到没有.zip,.gz 等这些后缀名,以为下载失败,其实不是,所以请放心。

接下来让我们解压文件

tar zxvf mirror

解压完就会在当前文件夹看到PHP的安装包,比如我的解压完是

mirror php-5.6.34

其中php-5.6.34就是我们需要用到的压缩包,让我们进入目录进行安装

cd php-5.6.34

进入目录之后就会发现有需要的文件,这些就是PHP的源文件

然后我们编译PHP文件生成makefile 文件

这里需要普及一个小的知识点,那就是fastcgi

php本来的请求是,当一个请求出现,PHP会启动一个进程来完成请求,然后关闭,但是这很耗费系统的资源,不符合我们的要求,我们需要php-fpm,然后可以监听php请求 ,如果有请求出现,那么开始提供进程来执行,如果业务多的话会创建一个新的,如果没有多余的请求的时候,php-fpm会释放掉多余的资源,而fastcgi就是php-fpm使用的前提,编译安装的时候必须加上这个参数。所以编译的时候需要加上--enable-fpm 选项

./configure --prefix=/usr/local/php --enable-fpm

./configure 就是就是编译makefile文件的工具 --prefix 就是指定安装PHP到哪个目录

执行完成之后下面的命令

make && make install

我们执行完成./configure 只是把我们的配置写入makefile文件,还没有安装,make 命令就是安装,到此我们就安装完成PHP了。

接下来我们简单介绍一下怎么运行我们自己写的PHP文件

比如我们随便在一个地方写一个index.php文件,然后写入内容

echo "hello world";

然后保存退出,执行

/usr/local/php/bin/php index.php

这个时候输出hello world就代表文件执行成功,/usr/local/php/bin/php 是PHP文件执行的入口,如果我们要将PHP写如Linux环境变量,需要加入的目录为/usr/local/php/bin

二.安装mysql

同样的在安装之前先安装一些依赖工具和依赖包,如果安装求忽略

yum install cmake gcc gcc++ gcc-c++ ncurses-devel bison perl-Data-Dumper boost boost-doc boost-devel git -y

需要说明是其中的cmake工具,新版的mysql都采用cmake安装,所以请务必安装这个工具。

1.下载mysql的安装包

mysql的官方地址为:MySQL

在下载地址选择自己想要下载的版本,我这里就以我的情况提供一个下载地址

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

然后执行下载,注意,下载地址像上面一样选择家目录

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz

然后解压

tar zxvf mysql-5.7.21.tar.gz

然后进入目录

cd mysql-5.7.21

然后编译

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_USWE=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled -DMITH_ZLIB:STRING=bundled -DWITH_BOOST=/usr/include/boost

然后安装

make && make install

根据机器的不同,安装时间也会不同。

安装完成之后还不可以,因为我们是编译安装的,在my.cnf 配置文件中,mysql指定mysql用户来作为mysql的权限,但是我们的系统里这个时候并没有mysql。

建立mysql用户组和mysql用户

groupadd mysql //建立用户组

useradd mysql mysql //建立用户并关联用户组

你以为到这里就结束里,并没有,新版的mysql数据库,需要在启动mysql的之前先初始化数据库,也就是将表结构写入数据库,执行

/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql

然后启动mysql

启动mysql的方式有三种,这里只列出一种

/usr/local/mysql/bin/mysqld_safe --user=mysql &

执行完按回车键,然后查看是否已经启动成功

ps aux | grep mysql

如果启动失败了,不会看到mysql的进程,并且在启动的环节就会报错,错误不会很大,无非就是文件没有权限了,把相应的文件的所属用户和用户组修改一下就好了,例如

chown -R mysql:mysql /var/run/mysql //这里只是一个举个例子,根据实际情况而定

如果对用户和用户组不知道是啥的,请参照我的另外一篇文章Linux用户以及用户组

如果还报错,请在下方给我留言,并附上错误的原因,程序员直接贴代码就好了

三.安装nginx

安装nginx之前先安装一个扩展pcre,这个是正则匹配用到的扩展,官方网址

可以在这个网站下载自己喜欢的版本,我这里就选择最新的版本,并附上安装过程

cd ~

wget https://ftp.pcre.org/pub/pcre/pcre-8.00.tar.gz

tar zxvf pcre-8.00.tar.gz

cd pcre-8.00

./configure

make

make install

下载nginx

nginx的官方网址:nginx news ,可以在这里选择下载自己喜欢的版本,我这里以最新版为例

cd ~

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

tar zxvf cd nginx-1.12.2.tar.gz

cd nginx-1.12.2

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

make

make install

然后启动nginx

/usr/local/nginx/sbin/nginx

查看是否已经启动

ps aux | grep nginx

然后访问

127.0.0.1 //如果打印输出Welcome to nginx! 说明安装成功

增加nginx对PHP的支持

假设我们设定PHP的目录为

/usr/local/www/

打开nginx的配置文件

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

然后将这段代码改成下面这样

location ~ \.php$ {

root /home/www; //网站目录

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

然后保存退出

cd /home

mkdir www

cd www

vim index.php

然后输入

echo "hello world";

?>

然后重启php和nginx

/usr/local/nginx/sbin/nginx

/usr/local/php/sbin/php-fpm

打开浏览器,输入

127.0.0.1/index.php

如果输出hello world 代表着成功。

至此,我们的lnmp环境已经搭建完毕,如果您有什么问题,请在下方留言,我看到会第一时间回复的哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值