十二周一次课(3月12日)

时间:2022-01-18 23:14:00

LNMP架构介绍

  • 和LAMP唯一不同的是,LNMP中指的是Ngix(类似于Apache的一种Web服务软件。

  • Ngix设计的初衷是提供一种快速、高效、多并发的Web服务软件。

  • 在静态页面的处理上,Ngix比Apache更好一些,但是在动态页面的处理上,Ngix并不比apache有优势。

  • Ngix提供web服务,并且php是作为一个独立服务存在的,这个服务叫做php-fpm

    -Ngix直接处理静态请求,动态请求会转发给php-fpm

  • 它们之间的关系
    十二周一次课(3月12日)


MySQL安装

- 安装过程

由于之间已经搭建过了LAMP环境,那么现在安装mysql是需要删除之前的安装目录/usr/local/mysql和启动脚本/etc/init.d/mysqld

1 . 切换到/usr/local/src目录下

2 . 使用wget命令下载我们所需要的2进制免编译包

3 . tar命令解压缩下载后的二进制免编译包

4 . mv命令将解压缩后的目录移动并改名

mv mysql-5.6.36-linux-glibc2.5-x86_64  /usr/local/mysql  //在mv之前/usr/local/下是不能存在mysql目录的

5 . 切换到mysql目录下,使用ls命令查看是否存在多个子目录以及2个文件

6 .需要创建mysql用户和/data/目录

useradd   mysql //创建用户为mysql
mkdir /data/ //创建此目录

7 .初始化的过程是为了mysql启动所需要的目录生成。

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql   //前面是指定用户,后面是指定安装目录。

如果提示-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录 //要安装perl-Data-Dumper包

如果提示Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory需要安装libaio-devel

完成后可以看过程中是否出现2次OK ,或执行echo $?命令来查看结果是否为0。0表示正确,1表示有错误。

8 .拷贝配置文件

cp support-files/my-default.cnf   /etc/my.cnf 

如果系统中已经有了/etc/my.cnf,可以不用拷贝。直接修改为如下这样即可
十二周一次课(3月12日)

9 .拷贝启动脚本

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

再编辑/etc/init.d/mysql,定义2个地方即可
十二周一次课(3月12日)

10 启动服务

/etc/init.d/mysqld start 

11 查看服务是否已启动,可以查看进程

ps aux |grep mysqld

查看端口

netstat  -lntp 

12 . 将mysql加入到服务列表中去

chkconfig   --add mysqld

设置为开机启动

chkconfig  mysqld  on 

13 .启动与停止命令

service mysqld stop 
service mysqld start

php安装

  • . 这里和LAMP的安装方法是有差异的,需要开启php-fpm服务的。在LNMP中PHP是独立的服务,与Ngix是没有关系的。

  • 安装过程 :
    1 . 切换到/usr/local/src目录下

    2 .下载php软件包

 wget  http://cn2.php.net/distributions/php-5.6.30.tar.bz2

3 .解压缩

tar -jxvf php-5.6.30.tar.bz2

4 . 切换到php-5.6.30目录下,如果之前编译过了,可以使用make clean命令来恢复到刚解压后的一个状态。

5 .执行以下命令

[root@chunt php-5.6.30]# ./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

在过程中根据提示需要可能需要安装几个包,不知道安装什么,也可以去bing上面搜索答案。

6 . 再次执行make && make install

7 .在/usr/local/php-fpm/下的sbin下有一个php-fpm的文件,该文件用来启动php-fpm服务的。
在/usr/local/php-fpm/下的log中有一个log(存放日志)和一个run(存放
pid)

8 . /usr/local/php-fpm/sbin/php-fpm -m/usr/local/php-fpm/bin/php -m
显示的信息是一样的,也可以加上-i选项。
其中/usr/local/php-fpm/sbin/php-fpm -t /测试配置文件语法的。

10 .配置文件

cp php.ini-production  /usr/local/php-fpm/etc/php.ini

11 . 切换到cd /usr/local/php-fpm/etc下去,创建php-fpm.conf并写入以下内容。

[global]     //定义全局参数
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www] //模块名字
listen = /tmp/php-fcgi.sock //监听的地址
listen.mode = 666 //定义sock文件权限
user = php-fpm
group = php-fpm
pm = dynamic
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

12 .切换到/usr/local/src//php-5.6.30下

 cp sapi/fpm//init.d.php-fpm  /etc/init.d/php-fpm 

修改权限为755 chmod 755 /etc/init.d/php-fpm

加入服务列表,并设置为开机启动。

chkconfig --add php-fpm


chkconfig php-fpm on

13 启动服务

service php-fpm  start //启动
Starting php-fpm done //启动成功