lnmp的mysql分离_LNMP分离式部署搭建

本文详细介绍了如何在三台虚拟机上搭建LNMP环境,包括Nginx Web、PHP和MySQL的分离部署。首先,配置了Nginx Web服务器,然后通过二进制方式安装MySQL数据库,接着安装并配置Nginx支持PHP程序,最后安装PHP并以FastCGI方式启动。整个过程包括创建用户、安装依赖、配置文件和启动服务。
摘要由CSDN通过智能技术生成

一、前期准备

1、准备三台虚拟机,分别为:Nginx Web:192.168.200.142PHP:192.168.200.128Mysql:192.168.200.143

二、服务搭建

一、Nginx Web搭建

yum install -y pcre-devel openssl-devel #用本地yum仓库安装依赖包

wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件源码包

useradd -s /sbin/nologin -M www #创建程序用户

tar xf nginx-1.10.2.tar.gz -C /usr/src/#解压缩

cd /usr/src/nginx-1.10.2

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #预配置

make &&make install #编译和安装

ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #给命令做软连接,以便PATH能找到

/usr/local/nginx/sbin/nginx #启动nginx

特别提示: /usr/local/nginx/sbin/nginx -s reload nginx平滑重启命令/usr/local/nginx/sbin/nginx -s stop nginx停止服务命令

(2)、加工Nginx配置文件

cd /usr/local/nginx/conf

egrep -v "#|^$"nginx.conf.default>nginx.conf

2、安装二进制MySQL数据库

(1)、创建mysql用户的账号

groupadd mysql

useradd -s /sbin/nologin -g mysql -M mysql

(3)、采用二进制方式安装MySQL

tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C /usr/local/

cd /usr/local/

mv mysql-5.5.32-linux2.6-x86_64 mysql-5.5.32

ln -s mysql-5.5.32mysql

(4)、初始化MySQL配置文件my.cnf

cd /usr/local/mysql

ls -l support-files/*.cnf

/bin/cp support-files/my-small.cnf /etc/my.cnf

53b801312a1e3cd3e78797542d59d875.png

(5)、初始化MySQL数据库文件

mkdir -p /usr/local/mysql/data #建立MySQL数据文件目录

chown -R mysql.mysql /usr/local/mysql #授权mysql用户管理MySQL的安装目录

yum -y install libaio #光盘源安装依赖包,否则下一步的编译会报错

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

#初始化MySQL数据库文件,会有很多信息提示,如果没有ERROR级别的错误,会有两个OK的字样,表示初始化成功,否则就要解决初始化的问题

46d1ba37f901ed03c74866bd49299996.png

以上的命令主要作用是生成如下数据库文件51996f8e4b554b8524533168a5f7fa8f.png这些MySQL数据文件是MySQL正确运行所必需的基本数据库文件,其功能是对MySQL权限,状态等进行管理。

(6)、配置并启动MySQL数据库5476ddce4bbfa80f2c76f2e37a55252f.png

启动MySQL数据库6c002b88296063a8b0d30c71f2295365.png

设置MySQL开机自启动569aacfa0e20ed9821d6805a19d2ed4b.png

(7)配置mysql命令的全局使用路径

f987383630b2386eb5350d034ed5442f.png

(8)登陆MySQL测试53053cf78b94616a345ab8e0c08ff2e2.png

16b3cc82ead6b5f4ee381b236c80e675.png

(9)、MySQL安全配置、为MySQL的root用户设置密码

mysqladmin -u root password '123123'#设置root用户密码

mysql -uroot -p123123 #用root用户登录数据库

a269362e1c0a58804ae8a6f5b7d1e913.png

二、安装Nginx

1、安装解压

yum install -y pcre-devel openssl-devel #用本地yum仓库安装依赖包

#wget -q http://nginx.org/download/nginx-1.10.2.tar.gz #下载软件源码包

tar xf nginx-1.10.2.tar.gz -C /usr/src/#解压缩

cd /usr/src/nginx-1.10.2

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #预配置,命令说明:--with-http_stub_status_module 要运用的模块名,--with指定模块

make &&make install #编译和安装

ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ #给命令做软连接,以便PATH能找到

2、创建一个程序用户

useradd -M -s /sbin/nologin nginx #创建程序用户

/usr/local/nginx/sbin/nginx #启动nginx

特别提示:/usr/local/nginx/sbin/nginx -s reload nginx平滑重启命令

/usr/local/nginx/sbin/nginx -s stop nginx停止服务命令

web排错三部曲下面介绍客户端排查的思路

第一步,在客户端上ping服务器端IP,命令如下:

ping 10.0.0.8排除物理线路问题影响

第二步,在客户端上telnet服务器端IP,端口,命令如下:

telnet 10.0.0.880排除防火墙等得影响

第三步,在客户端使用wget命令检测,如下:

wget 10.0.0.8(curl -I 10.0.0.8)模拟用户访问,排除http服务自身问题,根据输出在排错

3、安装完成后进入配置文件目录加工下配置文件

Nginx主配置文件nginx.conf,路径:/usr/local/nginx/conf/nginx.conf

egrep -v "#|^$"nginx.conf.default>nginx.conf #去掉包含#号和空行的内容

4、配置Nginx支持PHP程序请求访问

(1)查看nginx当前的配置

[root@LNMP conf]#vim nginx.conf

worker_processes 1;

events {

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

include extra/www.conf;

include extra/mail.conf;

include extra/blog.conf;

}

(2)PHP解析,这里以blog为例讲解,内容如下:

[root@LNMP extra]#cat blog.conf

server {

listen 80;

server_name blog.shidu.com;

location /{

root html/blog;

index index.html index.htm;

}

}

最终blog虚拟机的完整配置如下:

[root@LNMP extra]#cat blog.conf

server {

listen 80;

server_name blog.shidu.com;

location /{

root html/blog;

index index.html index.htm;

}

location ~.*\.(php|php5)?$ {

root html/blog;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

}

}

5、检查并启动Nginx7bb2c023939df6fea96cdd8fe7bfaa34.png

三、PHP安装

1 检查Nginx及MySQL的安装情况

(1)检查确认Nginx及MySQL的安装路径

[root@LNMP ~]#ls -ld /usr/local/nginx

drwxr-xr-x.11root root 4096Nov900:42/usr/local/nginx

[root@LNMP ~]#ls -ld /usr/local/mysql

lrwxrwxrwx.1mysql mysql 12Nov901:00/usr/local/mysql ->mysql-5.5.32

(2)检查端口及启动情况167946af034ff05a68ba47d2f698973c.png

(3)测试访问Nginx及MySQL是否OKb13f35d8d0b19bbe4c9b4d5603ee52b0.png

2 安装相关的lib软件包

yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd libcurl-devel libxslt-devel

安装后的结果如下:769987b429803ff55cecba5faa5b193f.png

从上图结果看出,仅有libiconv-devel这个包没有安装,因为默认的yum源没有此包,后面会编译安装。

3、安装yum无法安装的libiconv库

e347b07350068d6d0b8dc31cad575793.png

./configure --prefix=/usr/local/libiconv && make && make install #开始编译安装

4、安装libmcrypt库\mhash加密扩展库\mcrvpt加密扩展库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo #推荐使用简单的在线yum的方式安装

cd /etc/yum.repos.d/

yum -y install libmcrypt-devel #安装libmcrypt库

yum -y install mhash #安装mhash加密扩展库

yum -y install mcrypt #mcrvpt加密扩展库

6、解压配置PHP

tar xf php-5.3.28.tar.gz -C /usr/src/

cd /usr/src/php-5.3.28/

./configure \

>--prefix=/usr/local/php5.3.28\

>--with-mysql=mysqlnd \

>--with-iconv-dir=/usr/local/libiconv \

>--with-freetype-dir \

>--with-jpeg-dir \

>--with-png-dir \

>--with-zlib \

>--with-libxml-dir=/usr \

>--enable-xml \

>--disable-rpath \

>--enable-safe-mode \

>--enable-bcmath \

>--enable-shmop \

>--enable-sysvsem \

>--enable-inline-optimization \

>--with-curl \

>--with-curlwrappers \

>--enable-mbregex \

>--enable-fpm \

>--enable-mbstring \

>--with-mcrypt \

>--with-gd \

>--enable-gd-native-ttf \

>--with-openssl \

>--with-mhash \

>--enable-pcntl \

>--enable-sockets \

>--with-xmlrpc \

>--enable-zip \

>--enable-soap \

>--enable-short-tags \

>--enable-zend-multibyte \

>--enable-static\

>--with-xsl \

>--with-fpm-user=www \

>--with-fpm-group=www \

>--enable-ftp

287a844790a0033810bf367716b2b84a.png

7、编译安装:make && make install

8、 配置PHP引擎配置文件php.ini(1)设置软链接以方便访问

[root@LNMP ~]#ln -s /usr/local/php5.3.28/ /usr/local/php

[root@LNMP ~]#ls -l /usr/local/php

lrwxrwxrwx.1root root 21Nov905:30/usr/local/php ->/usr/local/php5.3.28/

(2)查看PHP配置默认模版文件

[root@LNMP ~]#cd /usr/src/php-5.3.28/

[root@LNMP php-5.3.28]#ls php.ini*

php.ini-development php.ini-production

请注意以上两文件的异同之处,可通过diff或vimdiff命令比较,如下图所示

35240eda2d054b61c439278e9a0500eb.png

(3)拷贝PHP配置文件到PHP默认目录,并更改文件名称为php.inicp php.ini-production /usr/local/php/lib/php.ini

10、配置PHP(FastCGI方式)的配置文件php-fpm.conf

[root@LNMP etc]#ls

pear.conf php-fpm.conf.default

[root@LNMP etc]#cp php-fpm.conf.defaultphp-fpm.conf

[root@LNMP etc]#ls

pear.conf php-fpm.conf php-fpm.conf.default

11、启动PHP服务(FastCGI方式)(1)启动PHP服务php-fpm

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

(2)检查PHP服务php-fpm的进程及启动端口的情况

ps -ef |grep php-fpm

lsof -i:9000#默认9000端口提供服务

三、测试

1、测试LNMP环境生效情况(1)进入指定的默认站点目录后,编辑index.php,添加如下内容:

[root@LNMP blog]# pwd/usr/local/nginx/html/blog[root@LNMP blog]# echo "<?php phpinfo(); ?>" >test_info.php[root@LNMP blog]# cat test_info.php<?php phpinfo(); ?>

以上代码为显示PHP配置信息的简单PHP文件代码

(2)调整Windows下的host解析192.168.200.128 www.shidu.com blog.shidu.com mail.shidu.com

667a81013ed82bac2eb861442d6cf1c1.png

(3) 打开浏览器输入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值