一、Lnmp架构原理

二、 Lnmp架构软件安装

1、Nginx安装脚本

#!/bin/bash
useradd -s /sbin/nologin -M www
mkdir -p /server/tools/
cd /server/tools/
wget http://nginx.org/download/nginx-1.10.3.tar.gz
tar xf nginx-1.10..tar.gz
yum install pcre-devel openssl-devel -y
cd /server/tools/nginx-1.10.
./configure --prefix=/application/nginx-1.10. --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /application/nginx-1.10./ /application/nginx
ln -s /application/nginx/sbin/nginx /usr/local/sbin/
nginx
lsof -i:

2、MySQL安装脚本

#!/bin/bash
useradd -s /sbin/nologin -M mysql
cd /server/tools
tar xf mysql-5.6.-linux-glibc2.-x86_64.tar.gz
mkdir -p /application/
mv /server/tools/mysql-5.6.-*-x86_64 /application/mysql-5.6.
ln -s /application/mysql-5.6./ /application/mysql
chown -R mysql.mysql /application/mysql/
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
\cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
/etc/init.d/mysqld start
lsof -i:
echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
chkconfig --add mysqld
chkconfig mysqld on
/application/mysql/bin/mysqladmin -u root password ''

二进制安装MySQL详细步骤:
①下载解压二进制软件包

mysql-5.6.-linux-glibc2.-x86_64.tar.gz

②创建MySQL管理用户

useradd -s /sbin/nologin  -M mysql

③将mysql解压后的程序包搬家到程序目录下,并进行重命名

mkdir -p /application/
mv /server/tools/mysql-5.6.-*-x86_64 /application/mysql-5.6.

④为mysql服务程序创建软链接

ln -s /application/mysql-5.6./ /application/mysql

⑤授权MySQL用户管理/application/mysql

chown -R mysql.mysql /application/mysql/

⑥初始化数据库

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql

⑦复制启动脚本并授权

cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

⑧修改启动脚本 和 mysql命令中的路径

sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld

⑨复制默认配置文件

\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
/etc/init.d/mysqld start

⑩登录数据库命令简化方法

echo 'export PATH=/application/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
which mysql

MySQL基础命令使用:

命令

说明

show databases;

查询显示所有的数据库信息

create database oldboy;

创建新的数据库

drop database oldboy;

删除存在的数据库

use mysql;

表示选择使用一个数据库,相当于cd进入一个数据库

show tables;

查看数据库中表信息

select database();

表示查看当前所在数据库,类似于pwd命令的功能

select user();

查看当前登录数据库的用户,类似于whoami命令

select * from user\G;

查看user表中所有信息,并且纵行显示

select user,host from user;

查看user表中指定信息,并且横行显示

select user,host from mysql.user;

查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库

drop user 'user'@'host';

删除用户

flush privileges;

刷新权限

grant all on .* to user@'host' identified by 'oldboy123';

创建用户

grant all on .* to Old_Boy@'localhost' identified by 'oldboy123';

创建用户(用户名包含大写字母)

mysqladmin -u root password '123456';

为用户设置密码

mysqladmin -uroot -p123456 password 654321

修改密码,在知道旧密码的前提下

delete from mysql.user where user="root" and host="Mysql";

遇主机名大写,特殊字符使用drop无法删除

 3、PHP安装脚本

#!/bin/bash
yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
yum -y install libmcrypt-devel mhash mcrypt
cd /server/tools/
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
cd /server/tools/
tar xf php-5.5..tar.gz
cd php-5.5.
./configure \
--prefix=/application/php-5.5. \
--with-mysql=/application/mysql/ \
--with-pdo-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-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--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-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no
ln -s /application/mysql/lib/libmysqlclient.so. /usr/lib64/
touch ext/phar/phar.phar
make && make install
ln -s /application/php-5.5./ /application/php
cp /server/tools/php-5.5./php.ini-production /application/php/lib/php.ini
cd /application/php/etc/
cp php-fpm.conf.default php-fpm.conf
/application/php/sbin/php-fpm
lsof -i:
echo "/application/php/sbin/php-fpm" >>/etc/rc.local

编译PHP详细步骤:

①安装PHP依赖

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

② libiconv软件安装---字符集转换库

cd /server/tools/
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install

无需安装libiconv依赖包编译参数

./configure \
--prefix=/application/php-5.5. \
--enable-mysqlnd \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--with-gettext \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-opcache=no \
--enable-ftp

③epel源依赖包

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum -y install libmcrypt-devel mhash mcrypt

④下载解压PHP软件:MySQL和web服务器分离编译参数

cd /server/tools/
tar xf php-5.5..tar.gz
cd php-5.5.
./configure \
--prefix=/application/php-5.5. \
--with-mysql=mysqlnd \
--with-pdo-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-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--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-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no

⑤防止PHP安装报错

ln -s /application/mysql/lib/libmysqlclient.so.  /usr/lib64/
touch ext/phar/phar.phar

⑥配置安装

make && make install

⑦创建PHP软链接

ln -s /application/php-5.5./ /application/php

⑧ 配置PHP主配置文件

cp /server/tools/php-5.5./php.ini-production /application/php/lib/php.ini
cp /application/php/etc/php-fpm.conf.default /application/php/etc/php-fpm.conf

⑨lnmp架构部署时,如果mysql和web服务器不在一台主机上,PHP编译参数需要调整

--with-mysql=/application/mysql/  更改为 --with-mysql=mysqlnd

⑩启动PHP服务

/application/php/sbin/php-fpm
echo "/application/php/sbin/php-fpm" >>/etc/rc.local

三、测试Lnmp架构互通

1、测试Nginx到PHP

server {
listen ;
server_name www.etiantian.org;
location / {
root html/www;
index index.php index.html index.htm;
}
location ~ .*\.(php|php5)?$ {
root html/bbs;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
include fastcgi.conf;
}
access_log logs/bbs_access.log main;
}
测试PHP首页文件
echo "<?php phpinfo(); ?>" >/application/nginx/html/blog/test_info.php
location ~* .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:;
fastcgi_index index.php;
include fastcgi.conf;
}

2、测试PHP到MySQL

vim test_mysql.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','wordpress','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
注:curl blog.etiantian.org/test_mysql.php 测试php与MySQL的连通性

linux运维、架构之路-Lnmp架构部署的更多相关文章

  1. linux运维、架构之路-Docker快速入门

    一.Docker介绍        Docker是Docker.lnc公司开源的一个基于LXC技术之上构建的Container容器引擎,源代码托管在Github上,基于Go语言并遵从Apache2.0 ...

  2. Linux运维企业架构实战系列

    Linux运维企业架构项目实战系列 项目实战1-LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2-LVS.nginx实现负载均衡系列 2.1 项目实战2.1-实现基于LVS负载均衡集 ...

  3. Linux运维企业架构项目实战系列

    Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建.nginx的ssl加密.权限控制的实现 项目实战2—LVS.nginx实现负载均衡系列2.1 项目实战2.1—实现基于LVS负载均衡集群 ...

  4. Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

    Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...

  5. linux运维架构师职业规划

    1.假如你从来未接触过Linux的话,首先要做的就找一本指导书来学习.现在公认的Linux的入门书籍是“鸟哥的私房菜”,讲的很全面,鸟哥的私房菜一共分为两部,一部是基础篇,一部是服务器篇.“鸟哥的私房 ...

  6. 从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

    做运维也快四年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点. 运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感 ...

  7. Linux 运维入门到跑路书单推荐

    一.基础入门 <鸟哥的Linux私房菜基础学习篇>:最具知名度的Linux入门书<鸟哥的Linux私房菜基础学习篇>,全面而详细地介绍了Linux操作系统. https://b ...

  8. Linux运维工程师成长必经之路

    本路线图是从0基础开始,全方位由浅入深,按照多年Linux培训经验和优秀教学方法制定的学习思路和学习方法,路线图包括初级入门.中级进阶.高级提升和资深冲刺四个阶段,每阶段对应着不同优秀的课程和学习方法 ...

  9. linux运维工程师面试题收集

    面试必考 mysql5和mysql6 有什么区别 mysql-server-5.5:默认引擎改为Innodb,提高了性能和扩展性,提高实用性(中继日志自动恢复) mysql-server-5.6:In ...

随机推荐

  1. java——ThreadLocal、ThreadLocalMap、Thread三者的关系

    https://www.jianshu.com/p/377bb840802f Thread类中维护了一个成员变量:ThreadLocalMap 每个Thread有一个自己的ThreadLocalMap ...

  2. 开始学习shell

    运行shell脚本有两种方法: 作为可执行程序,假如在某个目录下,编写了一个shell脚本test.sh,想要执行这个脚本,就需要先cd进入脚本所在目录, chmod +x ./test.sh # 是 ...

  3. 利用msyqlfont + plsql 客户端 完成msyql数据向oracle的转移

    方法一: 1.这是mysqlfont 连接工具 ,选中表右键点击 输出->csv文件 2.选择导出的文件为ANSI型,因为csv文件excel打开的默认编码方式为ANSI这样可以防止中文在exc ...

  4. luogu 3857 [TJOI2008]彩灯 线性基

    可以将每一个开关控制的灯的序列看作是0/1组成的二进制. 由于灯的开和关是满足异或的性质的,所以直接求一下线性基大小即可. 答案为 $2^{size}.$ #include <cstdio> ...

  5. c++几个通用工具

    Pairs(对组) 1.class pair可以将两个值视为一个单元,C++标准程序库内多处使用这个class.尤其容器类别map和multimap,就是使用pairs来管理其键值/实值(key/va ...

  6. HZOJ 20190727 T2 单(树上dp+乱搞?+乱推式子?+dfs?)

    考试T2,考试时想到了40pts解法,即对于求b数组,随便瞎搞一下就oxxk,求a的话,很明显的高斯消元,但考试时不会打+没开double挂成10pts(我真sb),感觉考试策略还是不够成熟,而且感觉 ...

  7. CodeForces 714E Sonya and Problem Wihtout a Legend(单调数列和DP的小研究)

    题意:给你n个数字,每个数字可以加减任何数字,付出变化差值的代价,求最后整个序列是严格单调递增的最小的代价. 首先我们要将这个题目进行转化,因为严格单调下是无法用下面这个dp的方法的,因此我们转化成非 ...

  8. Xshell远程连接的具体操作和Xshell多会话设置小技巧

    前几天给大家分享了Xshell的安装教程,今天给大家分享如何在Xshell中进行远程连接,并且分享一下如何设置一条命令可以发送多个终端,这里以Xshell6为例进行说明,具体的教程如下. 1.依次点击 ...

  9. easyui datagrid的API

    本文可以当做api来使用 动态编辑用到DOM解析的话参考 http://www.w3school.com.cn/xmldom/dom_htmlcollection.asp 使用方法(Usage Exa ...

  10. C++模板的偏特化与全特化

    模板的声明 类模板和函数模板的声明方式是一样的,在类定义/模板定义之前声明模板参数列表.例如: // 类模板 template <typename T1, typename T2> cla ...