lamp架构,linux,mysql,apache,php; p- hp是做为apache的一个模块存在,libphp5或者libphp7用来解析php,apache的提供服务的叫httpd,当一个用户登陆网站的时候,apache会将请求给php模块,让它去和数据库交互。php
lnmg架构,linx,mysql,nginx,phpcss
php是做为一个独立的服务存在的,这个服务叫作php-fpm,nginx提供的服务叫nginx,当一个用户登陆网站的时候,nginx会将请求交给php服务,让它去和数据库交互java
在静态页面的处理上,nginx会比apache更快一下,主要是底层的一些架构不一样,在动态页面的处理上上,nginx并不比apache有优点mysql
nginx的用户并发支持会很大,能够达到好几万,这是apache作不到的。
linux
[root@linux-129 ~]# cd /usr/local/src
[root@linux-129 src]# http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@linux-129 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@linux-129 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql [root@linux-129 src]# cd /usr/local/mysql
[root@linux-129 mysql]# useradd -M mysql -s /sbin/nologin
[root@linux-129 msyql]# mkdir /data/
首先安装依赖包:perl-Data-Dumper libaio [root@linux-129 msyql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@linux-129 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@linux-129 mysql]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql datadir=/data/mysql 注意:若是遇到服务器上装了别的mysql,这里在启动脚本里面定义一个默认配置文件路径,由于linux系统默认的mysql配置文件路径是在/etc/my.cnf,因此这里须要指定一下
[root@linux-129 mysql]# cp support-files/my-default.cnf /usr/local/mysql/my.cnf
basedir = /usr/local/mysql datadir = /data/mysql
[root@linux-129 mysql]# /etc/init.d/mysqld start
[root@linux-129 mysql]# chkconfig --add mysqld
[root@linux-129 mysql]# chkconfig mysqld on [root@linux-129 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:关
cd /usr/local/src/
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
tar zxf php-5.6.30.tar.gz
useradd -s /sbin/nologin php-fpm [root@linux-129 php-5.6.30]# tail -3 /etc/passwd chrony:x:997:995::/var/lib/chrony:/sbin/nologin mysql:x:1000:1000::/home/mysql:/sbin/nologin php-fpm:x:1001:1001::/home/php-fpm:/sbin/nologin
cd php-5.6.30
4. 安装一个扩展源:nginx
yum install -y epel-release.noarch 若是没有包,安装如下依赖包 yum install -y epel-release.noarch bzip2-devel libjpeg-turbo-devel libpng-devel freetype-devel libtomcrypt-devel openssl-devel php-mcrypt libmcrypt libmcrypt-devel gcc libtool-ltdl-devel expat-devel pcre-devel libxml2-devel libcurl-devel
[root@linux-129 php-5.6.30]# make clean find . -name \*.gcno -o -name \*.gcda | xargs rm -f find . -name \*.lo -o -name \*.o | xargs rm -f find . -name \*.la -o -name \*.a | xargs rm -f find . -name \*.so | xargs rm -f find . -name .libs -a -type d|xargs rm -rf rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi libphp5.la modules/* libs/*
[root@linux-129 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
若是php和mysql不在同一台服务器上
编译web
./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-mysqli --with-pdo-mysql --with-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 --enable-pdo --enable-mysqlnd
错误信息: sql
编译php后发生warning:configure:WARNING:unrecognizedoptions:--with-mysql 只是php不支持mysql模块 ./configure --help 查看configure的正确语法,从新编译php支持mysql,改用--with-pdo-mysql
[root@linux-129 php-5.6.30]# yum list |grep libcurl
[root@linux-129 php-5.6.30]# yum install -y libcurl-devel
从新编译后
数据库
[root@linux-129 php-fpm]# make [root@linux-129 php-fpm]# make install [root@linux-129 php-fpm]# cd /usr/local/php-fpm/ [root@linux-129 php-fpm]# ls bin etc include lib php sbin va [root@linux-129 php-fpm]# ls /usr/local/php-fpm/sbin/php-fpm //这个文件是启动文件 /usr/local/php-fpm/sbin/php-fpm 它也能够使用 -m 查看模块,-i 查看phpinfo,-t检查配置文件正确仍是错误
这里报错:没有配置文件apache
[root@linux-129 php-fpm]# /usr/local/php-fpm/sbin/php-fpm -t [10-Apr-2018 16:07:44] ERROR: failed to open configuration file '/usr/local/php-fpm/etc/php-fpm.conf': No such file or directory (2) [10-Apr-2018 16:07:44] ERROR: failed to load configuration file '/usr/local/php-fpm/etc/php-fpm.conf' [10-Apr-2018 16:07:44] ERROR: FPM initialization failed
[root@linux-129 php-fpm]# cp /usr/local/src/php-5.6.30/php.ini-production /usr/local/php-fpm/etc/php.ini
[root@linux-129 php-fpm]# cd /usr/local/php-fpm/etc [root@linux-129 etc]# ls pear.conf php-fpm.conf.default php.ini \\php-fpm.conf.default这个就是模板,这里咱们直接编辑 [root@linux-129 etc]# vim 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 \\监听的地址 也能够写成ip:端口的形式 #listen = 127.0.0.1:9000 \\由于php和nginx是在同一台机器上,是在本地通讯,因此这里能够是127.0.0.1,能够使用别的IP,默认端口是9000 ;这里只能使用一种监听模式,咱们注释掉一个。 listen.mode = 666 \\当定义的监听是sock的时候,这个语句才会生效,定义sock的文件权限是666 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
[root@linux-129 etc]# cd /usr/local/src/php-5.6.30 [root@linux-129 php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@linux-129 php-5.6.30]# ls /etc/init.d/php-fpm /etc/init.d/php-fpm
[root@linux-129 php-5.6.30]# chmod 755 /etc/init.d/php-fpm
11 . 添加服务列表
[root@linux-129 php-5.6.30]# chkconfig --add php-fpm
[root@linux-129 php-5.6.30]#chkconfig php-fpm on [root@linux-129 php-5.6.30]# 注意:该输出结果只显示 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:关
[root@linux-129 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t [10-Apr-2018 16:39:37] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
[root@linux-129 php-5.6.30]# service php-fpm start Starting php-fpm done
[root@linux-129 php-5.6.30]# ps aux |grep php-fpm
• Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 • Nginx应用场景:web服务、反向代理、负载均衡 反向代理一台机器叫反向代理,代理2台机器就叫作负载均衡 • Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都同样,和Nginx的最大区别在于Tenging增长了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 • Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928