首先,浏览器发送http request请求到服务器(Nginx),服务器响应并处理web请求,将一些静态资源(CSS,图片,视频等)保存服务器上,然后将php脚本通过接口传输协议(网关协议)PHP-FCGI(fast-cgi)传输给PHP-FPM(进程管理程序),PHP-FPM不做处理,然后PHP-FPM调用PHP解析器进程,PHP解析器解析php脚本信息。PHP解析器进程可以启动多个,进行并发执行。然后将解析后的脚本返回到PHP-FPM,PHP-FPM再通过fast-cgi的形式将脚本信息传送给Nginx.服务器再通过Http response的形式传送给浏览器。
[root@foundation38 Desktop]# scp -r lnmp/ [email protected]:/root/
[root@vm1 ~]# cd lnmp/
[root@vm1 lnmp]# tar zxf mysql-boost-5.7.17.tar.gz
[root@vm1 lnmp]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y ##解决依赖性
[root@vm1 lnmp]# yum install gcc gcc-c++ ncurses-devel -y
[root@vm1 mysql-5.7.17]# cd mysql-5.7.17/ ##必须进入mysql目录再编译
[root@vm1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DEXTRA_CHARSETS=all \
当编译报错时,必须执行:
[root@vm1 mysql-5.7.17]# make clean
[root@vm1 mysql-5.7.17]# rm -fr CMakeCache.txt
重新编译
[root@vm1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \ ##安装路径
> -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \ ##数据库存放路径
> -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ ##配置文件存放路径
> -DWITH_MYISAM_STORAGE_ENGINE=1 \ ##安装myisam存储引擎
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \ ##安装innobase存储引擎
> -DDEFAULT_CHARSET=utf8 \ ##使用utf8字符
> -DDEFAULT_COLLATION=utf8_general_ci \ ##校验字符
> -DEXTRA_CHARSETS=all \ ##安装所有扩展字符集
> -DWITH_BOOST=boost/boost_1_59_0/ ##boots指定路径
[root@vm1 mysql-5.7.17]# yum install bison -y ##解决编译警告
[root@vm1 mysql-5.7.17]# poweroff
vm3内存给1024,虚拟硬盘给20G
必须在/root/lnmp/mysql-5.7.17/下安装
[root@vm1 mysql-5.7.17]# make && make install #编译链接生成可执行文件 && 安装
其他:
0.0.0.0 默认网关————wifi连着,不可访问外网————解决/etc/sysconfig/network注释网关,重启网络;临时办法route del default gw 172.25.254.250
[root@vm1 ~]# cd lnmp/mysql-5.7.17/support-files/
[root@vm1 support-files]# cp mysql.server /etc/init.d/mysqld ##添加启动脚本
[root@vm1 support-files]# vim /etc/my.cnf
[root@vm1 support-files]# cd /etc/
[root@vm1 etc]# cp my.cnf my.cnf.bak ##备份原文件
[root@vm1 etc]# cd -
/root/lnmp/mysql-5.7.17/support-files
[root@vm1 support-files]# cp my-default.cnf /etc/my.cnf ##重新拷贝安装包里的过去
cp: overwrite `/etc/my.cnf'? y
[root@vm1 support-files]# cd /etc/
[root@vm1 etc]# vim my.cnf ##里面写入安装路径,数据库存放路径,文件路径
[root@vm1 etc]# groupadd -g 27 mysql
[root@vm1 etc]# useradd -u 27 -g 27 mysql ##创建mysql用户,root用户开启进程不安全,因root权力太大
[root@vm1 etc]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)
[root@vm1 etc]# chown mysql.mysql /usr/local/lnmp/mysql/ -R ##修改mysql目录下所有人及所有组
[root@vm1 etc]# vim ~/.bash_profile ##将mysql用户添加到系统的环境变量中
[root@vm1 etc]# source ~/.bash_profile ##刷新,使之生效
[root@vm1 etc]# mysqld --user=mysql --initialize ##初始化mysql;会看到初始密码
[root@vm1 etc]# chown root /usr/local/lnmp/mysql/ -R ##为了安全,把mysql目录下所有人还原为root
[root@vm1 etc]# chown mysql /usr/local/lnmp/mysql/data/ -R ##只改data文件所有人
[root@vm1 etc]# ll /usr/local/lnmp/mysql/
[root@vm1 etc]# chmod +x /etc/init.d/mysqld ##给启动脚本加执行权限
[root@vm1 etc]# /etc/init.d/mysqld start
[root@vm1 etc]# mysql -uroot -p'Wv_,FOLNT1kk' ##用初始密码登陆后会报错提示改密码
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
[root@vm1 etc]# mysql_secure_installation -p'Wv_,FOLNT1kk' ##输入新密码后,一直回车(不启用密码检测插件...)
[root@vm1 etc]# mysql -uroot -predhat ##登陆mysql
[root@vm1 ~]# cd lnmp/
[root@vm1 lnmp]# tar jxf php-5.6.35.tar.bz2
[root@vm1 lnmp]# yum install re2c-0.13.5-1.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm -y
[root@vm1 lnmp]# cd php-5.6.35 ##必须在此目录下编译
[root@vm1 php-5.6.35]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash ##编译(要把刚才编译的mysql参数加进来;添加mysql的驱动mysqlnd)
报错1:
error: xml2-config not found. Please check your libxml2 installation.
[root@vm1 php-5.6.35]# yum install libxml2-devel libcurl-devel -y
再次编译
报错2:
error: Cannot find OpenSSL's
[root@vm1 php-5.6.35]# yum install openssl-devel -y
再次编译
报错3:
No such command: whatprodives. Please use /usr/bin/yum --help
[root@vm1 php-5.6.35]# yum whatprovides */jpeglib.h
[root@vm1 php-5.6.35]# yum install libjpeg-turbo-devel-1.2.1-1.el6.x86_64 -y
再次编译
报错4:
error: png.h not found.
[root@vm1 php-5.6.35]# yum whatprovides */png.h
[root@vm1 php-5.6.35]# yum install libpng-devel-1.2.49-1.el6_2.x86_64 -y
再次编译
报错5:
error: freetype-config not found.
[root@vm1 php-5.6.35]# yum whatprovides */freetype-config
[root@vm1 php-5.6.35]# yum install freetype-devel-2.3.11-14.el6_3.1.x86_64 -y
再次编译
报错6:
error: Unable to locate gmp.h
[root@vm1 php-5.6.35]# yum whatprovides */gmp.h
[root@vm1 php-5.6.35]# yum install gmp-devel-4.3.1-7.el6_2.2.x86_64 -y
再次编译
报错7:
error: Could not find net-snmp-config binary. Please check your net-snmp installation.
[root@vm1 php-5.6.35]# yum search net-snmp
[root@vm1 php-5.6.35]# yum install net-snmp net-snmp-devel -y
[root@vm1 php-5.6.35]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash ##编译成功
[root@vm1 php-5.6.35]# make && make install ##编译 && 安装
[root@vm1 php-5.6.35]# cd /usr/local/lnmp/php/
[root@vm1 php]# useradd nginx ##添加nginx用户
[root@vm1 php]# cd etc/
[root@vm1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@vm1 etc]# vim php-fpm.conf ##use、group为nginx;pid打开
[root@vm1 etc]# cd
[root@vm1 ~]# cd lnmp/php-5.6.35
[root@vm1 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@vm1 php-5.6.35]# cd /usr/local/lnmp/php/etc/
[root@vm1 etc]# vim php.ini ##设置时区
[root@vm1 etc]# cd -
/root/lnmp/php-5.6.35
[root@vm1 php-5.6.35]# cd sapi/fpm/
[root@vm1 fpm]# pwd
/root/lnmp/php-5.6.35/sapi/fpm
[root@vm1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@vm1 fpm]# chmod +x /etc/init.d/php-fpm
[root@vm1 fpm]# /etc/init.d/php-fpm start
[root@vm1 fpm]# netstat -antlpe|grep php
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 0 207203 10938/php-fpm
[root@vm1 fpm]# netstat -antlpe|grep mysql
tcp 0 0 :::3306 :::* LISTEN 27 88459 19430/mysqld
[root@vm1 lnmp]# tar zxf nginx-1.14.0.tar.gz
[root@vm1 lnmp]# cd nginx-1.14.0
[root@vm1 nginx-1.14.0]# vim auto/cc/gcc ##关闭debug模式
[root@vm1 nginx-1.14.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx
[root@vm1 nginx-1.14.0]# yum install pcre-devel -y
[root@vm1 nginx-1.14.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --user=nginx --group=nginx
[root@vm1 nginx-1.14.0]# make && make install
[root@vm1 nginx-1.14.0]# cd /usr/local/lnmp/nginx/
[root@vm1 nginx]# cd conf/
[root@vm1 conf]# vim nginx.conf
注:fastcgi在php解释器上运行php文件,并把执行结果返回到nginx页面。mysql通过php读写
[root@vm1 conf]# ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
[root@vm1 conf]# nginx -t
[root@vm1 conf]# nginx
[root@vm1 conf]# netstat -antlpe|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 211898 14882/nginx
[root@vm1 conf]# cd /usr/local/lnmp/nginx/html/
[root@vm1 html]# vim index.php ##php测试页面
[root@vm1 html]# nginx -s reload
检测:访问172.25.38.1
[root@vm1 ~]# cd lnmp
[root@vm1 lnmp]# yum install unzip
[root@vm1 lnmp]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
[root@vm1 lnmp]# cd /usr/local/lnmp/nginx/html/
[root@vm1 html]# mv upload/ bbs
[root@vm1 html]# cd bbs/
检测:访问172.25.38.1/bbs
[root@vm1 bbs]# chmod 777 config/ -R
[root@vm1 bbs]# chmod 777 data/ -R
[root@vm1 bbs]# chmod 777 uc_server/ uc_client/ -R
[root@vm1 bbs]# vim /usr/local/lnmp/php/etc/php.ini
[root@vm1 bbs]# /etc/init.d/php-fpm reload