第二十节课预习
第二十课预习任务
12.1 LNMP架构介绍
12.2 MySQL安装
12.3/12.4 PHP安装
12.5 Nginx介绍
12.6 Nginx安装
12.1 LNMP架构介绍
LNMP和LAMP不同的是把Apache换成了Nginx,提供web服务的是Nginx,单纯访问PHP的网站,如果都是去访问静态的图片,Nginx的用户并发量比Apache大,这个也是Apache做不到的。

12.2 MySQL安装

MySQL安装步骤如下:
1、下载mysql源码包
[root@Linux001 ~]# cd /usr/local/src 进入到src目录
[root@Linux001 src]# wget
http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
wget下载MySQL源码包
2、解压源码包
[root@linux-01 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
3、移动目录并改名为mysql,同时进入mysql目录。
[root@linux-01 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@Linux001 src]# cd /usr/local/mysql
4、创建mysql用户及data目录
[root@Linux001 mysql]# useradd mysql
[root@Linux001 mysql]# mkdir /data/
5、初始化生成mysql启动时需要的目录
[root@Linux001 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
yum install libaio* -y
yum -y install perl perl-devel
yum install -y Perl modules
执行初始化以后,如果看到有2个OK或者执行echo $? 结果是0表示初始化成功。
6、copy配置文件和启动脚本
[root@Linux001 mysql]# cp support-files/my-default.cnf /etc/my.cnf
或者直接
[root@Linux001 mysql]# vim /etc/my.cnf
把my.cnf配置文件修改成以下内容
[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#!includedir /etc/my.cnf.d
[root@Linux001 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@Linux001 mysql]# vim /etc/init.d/mysqld
定义启动脚本文件中路径
basedir=/usr/local/mysql
datadir=/data/mysql
7、启动mysql服务
[root@Linux001 mysql]# /etc/init.d/mysqld start 启动mysql服务
[root@Linux001 mysql]#
ps aux |grep mysql
root 23014 0.0 0.1 113304 1628 pts/1 S 13:42 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-01.pid
mysql 23153 2.2 44.6 1302728 449788 pts/1 Sl 13:42 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=linux-01.err --pid-file=/data/mysql/linux-01.pid --socket=/tmp//mysql.sock
root 23217 0.0 0.0 112720 984 pts/1 S+ 13:43 0:00 grep --color=auto mysql
8、把mysqld服务加入到服务列表去,并设置开机自启动。
[root@Linux001 mysql]# chkconfig --add mysqld
[root@Linux001 mysql]# chkconfig mysqld on
12.3/12.4 PHP安装

在Nginx中PHP安装和Apache里面安装是不同的,需要开启php-fpm服务。
PHP安装步骤如下:
1、进入src目录,使用wget下载PHP源码包。
[root@Linux001 ~]# cd /usr/local/src/
[root@Linux001 src]#
wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2
2、解压源码包,然后进入php目录。
[root@Linux001 src]#
tar jxvf php-5.6.32.tar.bz2
[root@Linux001 src]# useradd -s /sbin/nologin php-fpm
[root@Linux001 src]# cd php-5.6.32
3、./configure源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系
[root@Linux001 php-5.6.32]# ./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
yum install -y gcc
yum install -y libxml2-devel
yum install openssl openssl-devel
yum -y install curl-devel
yum -y install libjpeg-devel
yum install -y epel-release
yum install -y libmcrypt-devel
4、编译并且安装
[root@Linux001 php-5.6.32]# make && make install
[root@Linux001 php-5.6.32]# /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@Linux001 php-5.6.32]# /usr/local/php-fpm/sbin/php-fpm -i 查看php的相关信息
phpinfo()
PHP Version => 5.6.32
[root@Linux001 php-5.6.32]# /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@Linux001 php-5.6.32]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default 原本是没有php.int文件的
[root@Linux001 php-5.6.32]# cp php.ini-production /usr/local/php-fpm/etc/php.ini
[root@Linux001 php-5.6.32]# 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@Linux001 php-5.6.32]# cd /usr/local/php-fpm/etc/
[root@Linux001 etc]# ls
pear.conf php-fpm.conf.default php.ini
[root@Linux001 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 = 666 定义sock文件权限666
user = php-fpm 定义是那个用户
group = php-fpm 定义是那个组
pm = dynamic pm都是进程信息
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
7、进入到源码包目录,然后copy启动脚本并启动php-fpm服务。
[root@Linux001 etc]# cd /usr/local/src/php-5.6.32 进入到源码包目录
[root@Linux001 php-5.6.32]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 拷贝启动脚本到etc下面
[root@Linux001 php-5.6.32]# chmod 755 /etc/init.d/php-fpm 修改文件权限为755
[root@Linux001 php-5.6.32]# chkconfig --add php-fpm 把php-fpm服务添加到服务列表去
[root@Linux001 php-5.6.32]# chkconfig php-fpm on 设置开机自启动
[root@Linux001 php-5.6.32]# service php-fpm start 开启php-fpm服务
Starting php-fpm done
8、检查php-fpm服务启动状态
[root@Linux001 php-5.6.32]# ps aux |grep php-fpm
root 43099 0.0 0.0 123656 4952 ? Ss 6月06 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm 43100 0.0 0.0 123656 4708 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43101 0.0 0.0 123656 4708 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43102 0.0 0.0 123656 4708 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43103 0.0 0.0 123656 4708 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43104 0.0 0.0 123656 4712 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43105 0.0 0.0 123656 4712 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43106 0.0 0.0 123656 4712 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43107 0.0 0.0 123656 4712 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43108 0.0 0.0 123656 4712 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43109 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43110 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43111 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43112 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43113 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43114 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43115 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43116 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43117 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43118 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
php-fpm 43119 0.0 0.0 123656 4716 ? S 6月06 0:00 php-fpm: pool www
root 43139 0.0 0.0 112720 984 pts/0 S+ 00:03 0:00 grep --color=auto php-fpm
扩展
Nginx为什么比Apache Httpd高效:原理篇 http://www.toxingwang.com/linux-unix/linux-basic/1712.html
https://coding.net/u/aminglinux/p/nginx/git/blob/master/4z/IO.md?public=true
https://www.zhihu.com/question/64727674
apache和nginx工作原理比较 http://www.server110.com/nginx/201402/6543.html
概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM https://www.awaimai.com/371.html

浙公网安备 33010602011771号