6月6日任务 

12.1 LNMP架构介绍
12.2 MySQL安装
12.3/12.4 PHP安装
12.5 Nginx介绍

扩展
Nginx为什么比Apache Httpd高效:原理篇

http://www.toxingwang.com/linux-unix/linux-basic/1712.html

apache和nginx工作原理比较

http://www.server110.com/nginx/201402/6543.html

mod_php 和 mod_fastcgi以及php-fpm的比较

http://dwz.cn/1lwMSd

概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM

http://www.nowamagic.net/librarys/veda/detail/1319/

https://www.awaimai.com/371.html

12.1 LNMP架构介绍

LNMP和LAMP不同的是把Apache换成了Nginx,提供web服务的是Nginx,单纯访问PHP的网站,如果都是去访问静态的图片,Nginx的用户并发量比Apache大,这个也是Apache做不到的。

12.2 MySQL安装

MySQL安装步骤如下:

1、下载mysql源码包

[root@jimmylinux- ~]# cd /usr/local/src  进入到src目录

[root@jimmylinux- src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz  wget下载MySQL源码包

2、解压源码包

[root@jimmylinux- src]# tar zxvf mysql-5.6.-linux-glibc2.-x86_64.tar.gz

3、移动目录并改名为mysql,同时进入mysql目录。

[root@jimmylinux- src]# mv mysql-5.6.-linux-glibc2.-x86_64 /usr/local/mysql

[root@jimmylinux- src]# cd /usr/local/mysql

4、创建mysql用户及data目录

[root@jimmylinux- mysql]# useradd mysql

[root@jimmylinux- mysql]# mkdir /data/

5、初始化生成mysql启动时需要的目录

[root@jimmylinux- mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录

#如果出现这个错误,解决办法(安装perl跟perl-devel即可)

执行 yum -y install perl perl-devel 后在初始化

如果初始化过程中还有以下报错,可以根据错误提示安装对应的软件包,直到可以初始化成功。

[root@jimmylinux- mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:
Data::Dumper
[root@jimmylinux- mysql]# yum install -y Perl modules [root@jimmylinux- mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.: cannot open shared object file: No such file or directory [root@jimmylinux- mysql]# yum install -y libaio*

执行初始化以后,如果看到有2个OK或者执行echo $? 结果是0表示初始化成功。

6、copy配置文件和启动脚本

[root@jimmylinux-001 mysql]# cp support-files/my-default.cnf  /etc/my.cnf
[root@jimmylinux- mysql]# vim /etc/my.cnf 把my.cnf配置文件修改成以下内容
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock [root@jimmylinux- mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@jimmylinux-001 mysql]# vim /etc/init.d/mysqld 定义启动脚本文件中路径
basedir=/usr/local/mysql
datadir=/data/mysql

7、启动mysql服务

[root@jimmylinux- mysql]# /etc/init.d/mysqld start  启动mysql服务
如果出现以下错误 Starting MySQL. :: mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mysql/jimmylinux-.pid) 把my.cnf配置文件以下内容加#注释掉就可以了 [mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid

重新启动mysql服务

[root@jimmylinux- mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/jimmylinux-001.err'.
.. SUCCESS! [root@jimmylinux- mysql]# ps aux |grep mysql
root 0.0 0.0 pts/ S : : /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/jimmylinux-.pid
mysql 6.0 7.6 pts/ Sl : : /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/jimmylinux-.err --pid-file=/data/mysql/jimmylinux-.pid --socket=/tmpmysql.sock
root 0.0 0.0 pts/ S+ : : grep --color=auto mysql

8、把mysqld服务加入到服务列表去,并设置开机自启动。

[root@jimmylinux- mysql]# chkconfig --add mysqld

[root@jimmylinux- mysql]# chkconfig mysqld on

12.3/12.4 PHP安装

在Nginx中PHP安装和Apache里面安装是不同的,需要开启php-fpm服务。

PHP安装步骤如下:

1、进入src目录,使用wget下载PHP源码包。

[root@jimmylinux- ~]# cd /usr/local/src/

[root@jimmylinux- src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

2、解压源码包,然后进入php目录。

[root@jimmylinux- src]# tar zxf php-5.6..tar.gz

[root@jimmylinux-001 src]# useradd -s /sbin/nologin php-fpm

[root@jimmylinux- src]# cd php-5.6.

3、./configure源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系

[root@jimmylinux- php-5.6.]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl

如果出现报错,根据提示安装所需要的软件包,直到配置完成。

checking target system type... x86_64-unknown-linux-gnu
checking for cc... no
checking for gcc... no  缺少gcc编译环境
configure: error: in `/usr/local/src/php-5.6.30':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

[root@jimmylinux-001 php-5.6.30]# yum install -y gcc  安装缺少的gcc包后在执行./configure

checking libxml2 install dir... yes
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.  报错xml2-config not found

可以通过yum模糊搜索安装缺少的包,yum install -y libxml2-devel

一路报错,一路安装,根据报错提示,缺少什么就安装什么,直到看到如下截图,就说明执行成功了。

4、编译并且安装

[root@jimmylinux- php-5.6.]# make && make install
[root@jimmylinux- php-5.6.]# /usr/local/php-fpm/sbin/php-fpm -m  查看加载的模块

[PHP Modules]
cgi-fcgi
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib [Zend Modules] [root@jimmylinux- php-5.6.]# /usr/local/php-fpm/sbin/php-fpm -i 查看php的相关信息
phpinfo()
PHP Version => 5.6.30

[root@jimmylinux-001 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t  测试自己配置文件语法的
[06-Jun-2018 23:09:47] ERROR: failed to open configuration file '/usr/local/php-fpm/etc/php-fpm.conf': No such file or directory (2)
[06-Jun-2018 23:09:47] ERROR: failed to load configuration file '/usr/local/php-fpm/etc/php-fpm.conf'
[06-Jun-2018 23:09:47] ERROR: FPM initialization failed  这里报错是因为没有给配置文件,想要启动这个服务,必须要有配置文件。

5、copy配置文件

[root@jimmylinux- php-5.6.]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default 原本是没有php.int文件的 [root@jimmylinux- php-5.6.]# cp php.ini-production /usr/local/php-fpm/etc/php.ini [root@jimmylinux- php-5.6.]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default php.ini 拷贝后多了一个php.ini文件

6、进入指定目录并创建配置文件vi /usr/local/php/etc/php-fpm.conf 写入以下内容

[root@jimmylinux- php-5.6.]# cd /usr/local/php-fpm/etc/

[root@jimmylinux- etc]# ls
pear.conf php-fpm.conf.default php.ini [root@jimmylinux- etc]# vim php-fpm.conf 写入以下内容
[global] 定义全局参数
pid = /usr/local/php-fpm/var/run/php-fpm.pid (pid路径)
error_log = /usr/local/php-fpm/var/log/php-fpm.log (error_log路径)
[www] 模块名
listen = /tmp/php-fcgi.sock 监听地址
listen.mode = 定义sock文件权限666
user = php-fpm 定义是那个用户
group = php-fpm 定义是那个组
pm = dynamic pm都是进程信息
pm.max_children =
pm.start_servers =
pm.min_spare_servers =
pm.max_spare_servers =
pm.max_requests =
rlimit_files =

7、进入到源码包目录,然后copy启动脚本并启动php-fpm服务。

[root@jimmylinux- etc]# cd /usr/local/src/php-5.6.30  进入到源码包目录

[root@jimmylinux- php-5.6.]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm  拷贝启动脚本到etc下面

[root@jimmylinux- php-5.6.]# chmod  /etc/init.d/php-fpm  修改文件权限为755

[root@jimmylinux- php-5.6.]# chkconfig --add php-fpm  把php-fpm服务添加到服务列表去

[root@jimmylinux- php-5.6.]# chkconfig php-fpm on  设置开机自启动

[root@jimmylinux- php-5.6.]# service php-fpm start  开启php-fpm服务
Starting php-fpm done

8、检查php-fpm服务启动状态

[root@jimmylinux- php-5.6.]# ps aux |grep php-fpm
root 0.0 0.0 ? Ss 6月06 : php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
php-fpm 0.0 0.0 ? S 6月06 : php-fpm: pool www
root 0.0 0.0 pts/ S+ : : grep --color=auto php-fpm

12.5 Nginx介绍

LNMP架构介绍、MySQL和PHP安装、Nginx介绍的更多相关文章

  1. lnmp架构、mysql的安装、php的安装、nginx相关

    1.lnmp架构 2.mysql的安装: mysql5.6自动安装脚本: yum install perl-Data-Dumper.x86_64 libaio.x86_64 libaio-devel. ...

  2. LNMP架构介绍 MySQL安装 PHP安装 Nginx介绍

  3. 部署LNMP架构及其应用

    部署企业LNMP架构 (一)首先安装nginx服务,具体请见另一篇关于nginx的博文. (二)安装MySQL数据库 .安装前准备 [root@localhost ~]# rpm -e mysql-s ...

  4. linux的LNMP架构介绍、MySQL安装、PHP安装

    LNMP架构介绍 和LAMP唯一不同的是,LNMP中的N指的是Nginx(类似于Apache的一种web服务软件).目前这种环境的应用也非常多.Nginx设计的初衷是提供一种快速.高效.多并发的Web ...

  5. 编译安装Nginx和PHP(带编译mysql)

    应用场景:目前常见的LNMP架构中很多服务都采用nginx+fastcgi+php来提供服务. 测试环境:Centos 7.2 / Nginx 1.12.0 / PHP 5.6 配置步骤: 1. 下载 ...

  6. 第十一章 LNMP架构基础介绍

    一.LNMP架构 1.简介 oLNMP是一套技术的组合,L=Linux.N=Nginx.M~=MySQL.P~=PHP不仅仅包含这些,还有redis/ELK/zabbix/git/jenkins/ka ...

  7. LNMP平台搭建---MySQL安装篇

    在前两篇中,安装了一个基本的Web服务器,但是只能提供静态网页查看,要做成动态网站,就必须要数据库或其他编程语言支持了,这里先介绍MySQL数据库的安装. MySQL是一个开源的数据库,在互联网行业应 ...

  8. ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

  9. [转] ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

  10. Windows下安装Nginx+php+mysql环境

    系统:Windows 7 64位系统 安装之前,首先下载软件: Nginx: http://nginx.org/en/download.html PHP Stable PHP 5.6.26: http ...

随机推荐

  1. 正则表达式和python中的re模块

    ---恢复内容开始--- 常用的正则匹配规则 元字符 量词 字符组 字符集 转义符 贪婪匹配 re模块使用正则表达式 实例引入(是否使用re模块和正则表达式的区别) # 不使用正则表达式 phone_ ...

  2. loadrunner常用web动作函数

    web_custom_request  ---允许使用任何http请求方法 脚本一: web_custom_request("baidu_request","URL=ht ...

  3. hack the box -- sizzle 渗透过程总结,之前对涉及到域内证书啥的还不怎么了解

     把之前的笔记搬运过来 ---   1 开了443,用smbclient建立空连接查看共享 smbclient -N -L \\\\1.1.1.1 Department Shares Operatio ...

  4. RabbitMQ-交换机模式

    在说正题之前先解释一下交换机模式是个笼统的称呼,它不是一个单独的模式(包括了订阅模式,路由模式和主题模式),交换机模式是一个比较常用的模式,主要是为了实现数据的同步. 首先,说一下订阅模式,就和字面上 ...

  5. [考试反思]0719NOIP模拟测试6 + 0722NOIP模拟测试7

    连续爆炸,颇为愉快. 第6次:Rank #4 第7次:Rank #9 对于第6次考试,个人比较满意,因为T1只是差了一个卡常. 因为在考试前两天刚讲了矩阵,满脑子都是矩阵,还想到了循环矩阵优化. 整个 ...

  6. NOIP模拟18 T2

    不知道为什么很多人拒绝这题打搜索...其实搜索在充分剪枝后时间是非常优秀的,不管数据怎样基本都可跑出 首先一个显然结论:对于某种状态,他抓到的小精灵一定是一个连续的区间. 因此我们可以枚举这个区间的左 ...

  7. p1594(巨坑题!!!)

    护卫车队在一条单行的街道前排成一队,前面河上是一座单行的桥.因为街道是一条单行道,所以任何车辆都不能超车.桥能承受一个给定的最大承载量.为了控制桥上的交通,桥两边各站一个指挥员.护卫车队被分成几个组, ...

  8. Apache的虚拟主机功能

    Apache的虚拟主机功能 (Virtual Host) 是可以让一台服务器基于IP.主机名或端口号实现提供多个网站服务的技术. 第一种情况:基于IP地址 这种情况很常见:一台服务器拥有多个IP地址, ...

  9. python面试看这一篇就够了

    python-面试通关宝典 有面Python开发方向的,看这一个repo就够啦? 语言特性 1.谈谈对 Python 和其他语言的区别 Python属于解释型语言,当程序运行时,是一行一行的解释,并运 ...

  10. 反射与泛型--使用泛型反射API打印出给定类的所有内容

    package chapter8Demos; import java.lang.reflect.*; import java.util.Arrays; import java.util.Scanner ...