2018-3-12 12周1次课 LNMP下的MySQL、PHP安装和配置

12.1 LNMP架构介绍

和LAMP不同的是,提供web服务的是Nginx

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

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

用户并发支持很大,可以上好几万,Apache做不到





12.2 MySQL安装

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
(过程省略)
[[email protected] src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
(过程省略)
[[email protected] src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[[email protected] src]# cd ../mysql/
[[email protected] mysql]# ls
bin  COPYING  data  docs  include  lib  man  mysql-test  README  scripts  share  sql-bench  support-files
[[email protected] 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                            ##需要装perl-Data-Dumper.x86_64包
[[email protected] mysql]# useradd mysql
[[email protected] mysql]# mkdir /data
[[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
(过程省略)
[[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf
[[email protected] mysql]# vim /etc/my.cnf

[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
SUCCESS!
[[email protected] mysql]# ps aux |grep mysql
root       1214  0.1  0.1 113264  1600 pts/0    S    21:59   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql      1351  5.7 44.9 1300784 449548 pts/0  Sl   21:59   0:00 /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/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock
root       1375  0.0  0.0 112676   984 pts/0    R+   21:59   0:00 grep --color=auto mysql
[[email protected] mysql]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      803/sshd
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      904/master
tcp6       0      0 :::22                   :::*                    LISTEN      803/sshd
tcp6       0      0 ::1:25                  :::*                    LISTEN      904/master
tcp6       0      0 :::3306                 :::*                    LISTEN      1351/mysqld
[[email protected] mysql]# chkconfig --add mysqld
[[email protected] mysql]# chkconfig --list
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysqld         0:关1:关2:开3:开4:开5:开6:关
netconsole     0:关1:关2:关3:关4:关5:关6:关
network        0:关1:关2:开3:开4:开5:开6:关
[[email protected] mysql]# chkconfig mysqld on            ##加入开机启动
[[email protected] mysql]# service mysqld stop            ##现在可以用服务命令
Shutting down MySQL.. SUCCESS!
[[email protected] mysql]# service mysqld start
Starting MySQL. SUCCESS!




12.3/12.4 PHP安装

·LNMP下的PHP安装和LAMP下PHP安装有差别,需要开启php-fpm服务

·如果之前编译过php,那么进到源码包中,用make clean清除之前make过的文件

[[email protected] src]# cd php-5.6.30/
[[email protected] php-5.6.30]# make clean


·如果没有编译过的php,甚至么有下载php源码包,那么从下载开始做

[[email protected] src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.bz2
(过程省略)
[[email protected] src]# tar jxvf php-5.6.30
(过程省略)
[[email protected] php-5.6.30]# useradd -s /sbin/nologin php-fpm           ##也可以直接useradd php-fpm
[[email protected] 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
(过程省略)
[[email protected] php-5.6.30]# make && make install
(过程省略)
[[email protected] php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -m        ##查看模块
(此处省略)
[[email protected] php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -i        ##查看信息
(此处省略)
(php-fpm -m 和 php-fpm -i 配合php -m 和 php -i 使用)
[[email protected] php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t        ##测试语法
[12-Mar-2018 22:37:17] ERROR: failed to open configuration file '/usr/local/php-fpm/etc/php-fpm.conf': No such file or directory (2)
[12-Mar-2018 22:37:17] ERROR: failed to load configuration file '/usr/local/php-fpm/etc/php-fpm.conf'
[12-Mar-2018 22:37:17] ERROR: FPM initialization failed
[[email protected] php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini
[[email protected] php-5.6.30]# cd /usr/local/php-fpm/etc/
[[email protected] etc]# vim php-fpm.conf

(listen也可以为127.0.0.1:9000,监听内部网络

listen.mode = 666 定义/tmp/php-fcgi.sock的权限为666)


[[email protected] etc]# cd ..
[[email protected] php-fpm]# cp /usr/local/src/php-5.6.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[[email protected] php-fpm]# cd /etc/init.d/
[[email protected] init.d]# chmod 755 php-fpm            ##更改php-fpm权限为755
[[email protected] init.d]# chkconfig --add php-fpm
[[email protected] init.d]# chkconfig php-fpm on
[[email protected] init.d]# chkconfig
注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请执行 'systemctl list-unit-files'。
查看在具体 target 启用的服务请执行
'systemctl list-dependencies [target]'。
mysqld         0:关1:关2:开3:开4:开5:开6:关
netconsole     0:关1:关2:关3:关4:关5:关6:关
network        0:关1:关2:开3:开4:开5:开6:关
php-fpm        0:关1:关2:开3:开4:开5:开6:关
[[email protected] init.d]# service php-fpm start
Starting php-fpm  done
[[email protected] init.d]# ps aux |grep php-fpm
root     123135  0.0  0.4 123612  4952 ?        Ss   22:59   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm  123136  0.0  0.4 123612  4708 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123137  0.0  0.4 123612  4708 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123138  0.0  0.4 123612  4708 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123139  0.0  0.4 123612  4708 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123140  0.0  0.4 123612  4712 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123141  0.0  0.4 123612  4712 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123142  0.0  0.4 123612  4712 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123143  0.0  0.4 123612  4712 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123144  0.0  0.4 123612  4712 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123145  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123146  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123147  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123148  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123149  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123150  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123151  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123152  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123153  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123154  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
php-fpm  123155  0.0  0.4 123612  4716 ?        S    22:59   0:00 php-fpm: pool www
root     123162  0.0  0.0 112676   976 pts/0    R+   23:00   0:00 grep --color=auto php-fpm

(右侧的www就是php.ini配置文件中的www,而左侧php-fpm就是配置文件中定义的用户)

[[email protected] init.d]# ll /tmp/php-fcgi.sock
srw-rw-rw- 1 root root 0 3月  12 23:04 /tmp/php-fcgi.sock

(而sock文件权限也是配置文件中定义的666)

·安装问题汇总:

1,configure: error: Please reinstall the libcurl distribution - easy.h should be in <curl-dir>/include/curl/

安装libcrul-devel

yum install -y libcurl-devel





12.5 Nginx介绍

·Nginx官网 nginx.org

·Nginx应用场景:web服务、反向代理、负载均衡

·Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,

和Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并

·Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty

参考http://jinnianshilongnian.iteye.com/blog/2280928

原文地址:http://blog.51cto.com/11530642/2085834

时间: 2024-10-02 23:33:38

2018-3-12 12周1次课 LNMP下的MySQL、PHP安装和配置的相关文章

2018.4.12 16周2次课

十六周二次课(4月12日) 19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagi

2018.1.9 5周2次课

五周第二次课(1月9日) 7.6 yum更换国内源 7.7 yum下载rpm包 7.8/7.9 源码包安装 7.6 yum更换国内源 1.恢复之前备份的文件 2. 进入"/etc/yum.repos.d"目录 3.删除"CentOS-Base.repo"文件 4.下载"163.repo"文件 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo curl -O http://mirrors

2018.1.16 6周2次课

六周第二次课(1月16日) 9.4/9.5 sed 9.4/9.5 sed 其实grep工具的功能还不够强大,它实现的只是查找功能,而不能把查找的内容替换.以前用vim操作文档的时候,可以查找也可以替换, 但只限于在文本内部操作,而不能输出到屏幕上.sed工具以及后面要介绍的awk工具就能把替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed和awk都是流式编辑器,是针对文档的行来操作的. sed  '/x/'p filename:匹配x字符 sed  -n  '/x/'p  filenam

2018.3.1 10周2次课

十周第二次课(3月1日) 11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机 11.14/11.15 Apache和PHP结合 配置httpd支持php httpd主配置文件/usr/local/apache2.4/conf/httpd.conf vim /usr/local/apache2.4/conf/httpd.conf   //修改以下4个地方 ServerName 搜索ServerName,把#ServerName www.example

2018.4.23 17周4次课

十七周4次课(4月23日) 20.20 告警系统主脚本 20.21 告警系统配置文件 20.22 告警系统监控项目 20.20 告警系统主脚本 创建告警系统的目录: [[email protected] /usr/local/sbin]# mkdir mon [[email protected] /usr/local/sbin]# ls mon  nginx_log_rotate.sh [[email protected] /usr/local/sbin]# cd mon [[email pro

2018.1.12 5周5次课

五周第五次课(1月12日) 8.10 shell特殊符号cut命令 8.11 sort_wc_uniq命令 8.12 tee_tr_split命令 8.13 shell特殊符号下 8.10 shell特殊符号cut命令 1. 特殊符号 * 任意个任意字符 *代表零个或多个任意字符 ? 任意一个字符 ?只代表一个任意的字符 # 注释字符 表示注释说明,即#后面的内容都会被忽略 \ 脱义字符 这个字符会将后面的特殊符号 (如*) 还原为普通字符 | 管道符 这个字符前面曾多次出现过,它的作用是将前面

2018.2.28 10周1次课

十周第一次课(2月28日) 11.10/11.11/11.12 安装PHP5 11.13 安装PHP7 11.10/11.11/11.12 安装PHP5 关于PHP版本,目前大多企业都会使用5.4及更高版本,甚至越来越多的企业使用PHP7版本.7和5两个版本还是有很大差异的,据说7版本有很大的性能提升,但7版本还是太新了,很多企业的网站不一定能兼容.新事物取代旧事物是必然趋势,所以在后续的学习和工作中,建议你要与时俱进,敢于尝试.在本实验中,使用的PHP版本为5.6,PHP的官方下载地址为 :

2018.4.25 18周1次课

十八周一次课(4月25日) 20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数 20.27 分发系统介绍 expect是一种能够按照脚本内容里面设定的方式与交互式程序进行"会话"的程序.根据脚本内容,Expect可以知道程序会提示或反馈什么内容以及什么是正确的应答.它是一种可以提供"分支和嵌套结构"来引导程序流程的解释型脚本语言. 我们熟知的shell编程功能虽然很强大,但是

2018.1.24 7周3次课

七周三次课(1月24日) 10.11 Linux网络相关 10.12 firewalld和netfilter 10.13 netfilter5表5链介绍 10.14 iptables语法 10.11 Linux网络相关 用ifconfig命令查看网卡IP 前面曾用过ip addr这个命令来查看系统的IP地址.其实在centos 7之前,我们使用最多的命令是ifconfig,它类似于Windows的ipconfig命令,后面不加任何选项和参数时,只打印当前网卡的相关信息 (如子网掩码. 网关等).