LNMP分离式部署搭建

LNMP分离式部署搭建

首先准备3台虚拟机:

Nginx:192.168.200.135

PHP:192.168.200.146

MySQL:192.168.200.147

Nginx搭建

首先安装支持包

yum -y install pcre-devel openssl-devel gcc gcc-c++ make automake

在这里插入图片描述

创建程序用户

useradd -s /sbin/nologin -M www

在这里插入图片描述

解压缩和预配置,编译和安装

wget 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.tar.gz
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

在这里插入图片描述

在这里插入图片描述

做Nginx软链接

ln -s /usr/local/nginx/sbin/* /usr/local/sbin

在这里插入图片描述

修饰一下Nginx配置文件

cd /usr/local/nginx/conf
egrep -v "#|^$" nginx.conf.default > nginx.conf

在这里插入图片描述

MySQL二进制搭建方法

创建程序用户

useradd -s /sbin/nologin -M mysql

在这里插入图片描述

二进制方式安装MySQL

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

cd /usr/local
    
ln -s mysql-5.5.32-linux2.6-x86_64 mysql

在这里插入图片描述

初始化MySQL配置文件到my.cnf

cd /usr/local/mysql

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

在这里插入图片描述

工作中如果主机名,在你本地没有映射,有可能会有错误出现

echo “192.168.200.147 LNMP” >> /etc/hosts
在这里插入图片描述

初始化MySQL数据库文件

chown -R mysql.mysql /usr/local/mysql

在这里插入图片描述

光盘源安装依赖包,否则编译会报错

    yum -y install libaio
   /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

在这里插入图片描述

在这里插入图片描述

设置MySQL启动脚本

cp support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

/etc/init.d/mysqld start

ss -antup | grep 3306

chkconfig --add mysqld

chkconfig mysqld on

在这里插入图片描述

制作软连接,让linux有mysql命令

ln -s /usr/local/mysql/bin/* /usr/local/bin

which mysql

在这里插入图片描述

创建MySQL密码

mysqladmin -uroot password '123123'

在这里插入图片描述

PHP服务搭建

安装PHP所需的lib库

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

yum无法安装的libiconv库

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar xf libiconv-1.14.tar.gz -C /usr/src/

cd /usr/src/libiconv-1.14/

./configure --prefix=/usr/local/libiconv && make && make install

在这里插入图片描述

安装libmcrypt库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 
(没有wget则需要使yum安装)

yum -y install libmcrypt-devel

在这里插入图片描述

安装mhash加密扩展库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 
(上面已经下载了,直接使yum安装)

yum -y install mhash

在这里插入图片描述

安装mcrvpt加密扩展库

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 
(上面已经下载了,直接使yum安装)

yum -y install mcrypt

在这里插入图片描述

编译过程中需要用到www程序用户,所以需要创建一个

useradd -s /sbin/nologin -M www

在这里插入图片描述

解压并编译安装PHP

w

get http://cn2.php.net/get/php-5.3.28.tar.gz

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

最后的正确输出提示为:Thank you for using PHP.

在这里插入图片描述

在这里插入图片描述

如果出现configure: error: Cannot find OpenSSL’s <evp.h>
安装openssl-devel
yum -y install openssl-devel

编译PHP并安装

make && make install

make install

设置软链接

ln -s /usr/local/php5.3.28/ /usr/local/php

在这里插入图片描述

PHP配置默认模版文件

生产环境:php.ini-development 开发环境:php.ini-production

开发环境更多的是开启日志,调试信息,而生产环境都是关闭状态

cd /usr/src/php-5.3.28

cp php.ini-production /usr/local/php/lib/php.ini

cd /usr/local/php/etc/

cp php-fpm.conf.default php-fpm.conf

关于php-fpm.conf,暂时可用默认的配置,先把服务搭好,以后再进行优化。

在这里插入图片描述

分离式部署特别提示

vim php-fpm.conf

listen = 192.168.200.71:9000 --->要监听本地IP端口,让远程访问(151行)

在这里插入图片描述

启动PHP服务,查询端口并确认

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

ss -antup | grep 9000

在这里插入图片描述

测试阶段

Nginx配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.yunjisuan.com;
        location / {
            root   /www;
            index  index.html index.htm;
        }
        location ~ .*\.(php|php5)?$ {
            root	/www;
            fastcgi_pass 192.168.200.146:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }
}

Nginx网页目录默认填写在/www下所以需要创建一个www的目录并修改属主和属组

mkdir /www

chown -R www.www /www

在这里插入图片描述

在Nginx网页目录创建静态内容

cd /www

echo "`hostname -I` www.yunjisuan.com" > index.html

在这里插入图片描述

启动Nginx服务并在Windows网页上测试(需要做windows本地映射这里就不演示了)

/usr/local/nginx/sbin/nginx

在这里插入图片描述

在PHP网页目录创建动态内容(需要创建网页目录并让Nginx程序用户有权限访问)

mkdir /www

chown www.www /www

echo "<?php phpinfo(); ?>" > index.php

在这里插入图片描述

用动态网页当默认首页测试结果

Nginx配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  www.yunjisuan.com;
        location / {
            root   /www;
            index  index.php;
        }
        location ~ .*\.(php|php5)?$ {
            root   /www;
            fastcgi_pass 192.168.200.146:9000;
            fastcgi_index index.php;
            include fastcgi.conf;
        }
    }
}

Nginx和PHP网页目录

修改完配置文件重启Nginx并Windows网页测试

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

在这里插入图片描述

从上图发现把Nginx网页目录清空用Windows网页测试报错403,在Nginx服务器创建一个空的网页内容测试一下

在这里插入图片描述

从而得知

Nginx安全机制跳转首页的时候,发现跳转的首页找不到(网页空目录),默认会给你权限拒绝访问,防止网页目录的内容都让人看到,所以内部的安全机制就给禁止访问了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值