首先,浏览器发送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@server1 ~]# yum install -y gcc
[root@server1 ~]# tar zxf mysql-boost-5.7.11.tar.gz
[root@server1 ~]# yum install cmake-2.8.12.2-4.el6.x86_64.rpm
[root@server1 ~]# cd mysql-5.7.17/
[root@server1 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 \ #安装 innodb 存储引擎
> -DDEFAULT_CHARSET=utf8 \ #使用 utf8 字符
> -DDEFAULT_COLLATION=utf8_general_ci \ #校验字符
> -DEXTRA_CHARSETS=all #安装所有扩展字符集
[root@server1 mysql-5.7.17]# rm -fr CMakeCache.txt #清空缓存文件
[root@server5 mysql-5.7.11]# yum install ncurses-devel gcc-c++ -y #解决依赖包
再次将编译程序跑一边,后面加上boots指定路径
[root@server1 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 -DWITH_BOOST=boost/boost_1_59_0/ #boots指定路径
[root@server1 mysql-5.7.17]# yum install bison -y #系统可以跳过warning错误
[root@server1 mysql-5.7.17]# make #编译,链接,生成可执行文件
[root@server1 mysql-5.7.17]# make install #安装
注意: 报错后一定要先清除缓存后再次编译
[root@server1 mysql-5.7.17]# cd /usr/local/lnmp/mysql/
[root@server1 mysql]# rpm -qa|grep mysql
mysql-libs-5.1.71-1.el6.x86_64
[root@server1 mysql]# cd support-files/
[root@server1 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
[root@server1 support-files]# vim /etc/my.cnf
[root@server1 support-files]# file mysql.server #查看文件是一个脚本
mysql.server: POSIX shell script text executable
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld #服务器配置文件
[root@server1 mysql]# groupadd -g 27 mysql
[root@server1 mysql]# useradd -u 27 -g 27 -M -d /usr/loca /lnmp/mysql/data -s /sbin/nologin mysql #创建mysql用户
[root@server1 mysql]# ll
[root@server1 mysql]# chown -R mysql.mysql . #修改mysql目录下文件的权限
[root@server1 mysql]# cd bin
[root@server1 bin]# pwd
/usr/local/lnmp/mysql/bin
[root@server1 bin]# cd
[root@server1 ~]# vim .bash_profile #将mysql添加到系统的环境变量里
[root@server1 ~]# source .bash_profile #刷新环境变量文件
[root@server1 ~]# mysqld --initialize --user=mysql #初始化mysql
[root@server1 mysql]# /etc/init.d/mysqld start
[root@server1 mysql]# chown root . -R #为了安全,改回权限
[root@server1 mysql]# chown mysql data/ -R #只将data文件设为mysql用户可写
[root@server1 mysql]# mysql_secure_installation
Enter password for user root: #输入初始化密码
New password: #输入新密码
enter new password:
Re-Change the password for root ? ((Press y|Y for Yes, any other key for No) :
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y #删除匿名
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y #不允许远程root登陆
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y #删除测试数据库并访问
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y #重新加载权限表
[root@server1 mysql]# mysql -p #登陆mysql
[root@server1 ~]# tar jxf php-5.6.35.tar.bz2 #解压
[root@server1 ~]# yum install -y openssl-devel curl-devel gd-devel-2.0.35-11.el6.x86_64.rpm gmp-devel libmcrypt-* net-snmp-devel libxml2-devel libpng-devel
[roo[root@server1 ~]# rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
[root@server1 ~]# cd php-5.6.35
[root@server1 php-5.6.35]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gettext --with-gmp --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
看到这个界面说明编译成功,如果还有报错,说明还有依赖的安装包没有解决完,根据最后的error提示继续安装依赖包,再次将编译程序跑一遍,直到没有error为止。
[root@server1 php-5.6.35]# make #编译,链接,生成可执行文件
[root@server1 php-5.6.35]# make install
[root@server1 ~]# cd /usr/local/lnmp/php/
[root@server1 php]# cd etc/
[root@server1 etc]# ls
pear.conf php-fpm.conf.default
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 etc]# cd
[root@server1 ~]# cd php-5.6.35
[root@server1 php-5.6.35]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 php-5.6.35]# cd /usr/local/lnmp/php/
[root@server1 php]# cd etc/
[root@server1 etc]# vim php.ini
[root@server1 etc]# vim php-fpm.conf
[root@server1 etc]# useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin nginx #创建用户
[root@server1 etc]# cd
[root@server1 ~]# cd php-5.6.35
[root@server1 php-5.6.35]# cd sapi/
[root@server1 sapi]# cd fpm/
[root@server1 fpm]# file init.d.php-fpm #查看文件是否为脚本
init.d.php-fpm: POSIX shell script text executable
[root@server1 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm
[root@server1 fpm]# chmod +x /etc/init.d/php-fpm #给执行权限
[root@server1 fpm]# /etc/init.d/php-fpm start #开启服务
Starting php-fpm done
[root@server1 fpm]# netstat -antlp
[root@server1 ~]# tar zxf nginx-1.10.1.tar.gz
[root@server1 ~]# tar zxf nginx-sticky-module-ng.tar.gz
[root@server1 ~]# cd nginx-1.10.1
[root@server1 nginx-1.10.1]# vim src/core/nginx.h
[root@server1 nginx-1.10.1]# vim auto/cc/gcc
[root@server1 nginx-1.10.1]# yum install -y pcre-devel #安装依赖性
[root@server1 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-threads --with-file-aio
[root@server1 nginx-1.10.1]# make
[root@server1 nginx-1.10.1]# make install
[root@server1 nginx-1.10.1]# cd /usr/local
[root@server1 local]# cd lnmp/
[root@server1 lnmp]# cd nginx/
[root@server1 nginx]# ls
conf html logs sbin
[root@server1 nginx]# pwd
/usr/local/lnmp/nginx
[root@server1 nginx]# cd conf/
[root@server1 conf]# vim nginx.conf
[root@server1 ~]# vim /etc/security/limits.conf
[root@server1 ~]# vim .bash_profile
[root@server1 ~]# source .bash_profile
[root@server1 ~]# nginx -t
[root@server1 ~]# nginx
[root@server1 ~]# cd /usr/local/lnmp/nginx/html
[root@server1 html]# vim index.php
[root@server1 ~]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
[root@server1 conf]# nginx -t
[root@server1 conf]# nginx -s reload
搭建论坛
[root@server1 ~]# yum install -y unzip
[root@server1 ~]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
[root@server1 ~]# cd /usr/local/lnmp/
[root@server1 lnmp]# ls
mysql nginx php
[root@server1 lnmp]# cd nginx/
[root@server1 nginx]# cd html
[root@server1 html]# cd upload/
[root@server1 html]# mv upload/ bbs
[root@server1 html]# cd bbs
[root@server1 bbs]# chmod 777 config/ data/ uc_server/ uc_client/ -R
[root@server1 bbs]# /etc/init.d/mysqld start
[root@server1 etc]# vim php.ini
[root@server1 etc]# /etc/init.d/php-fpm reload
Reload service php-fpm done
[root@server1 etc]# cd /usr/local
[root@server1 local]# cd lnmp/
[root@server1 lnmp]# cd mysql/
[root@server1 mysql]# chmod 755 data
[root@server1 ~]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# cd bbs/
[root@server1 bbs]# cd install/
[root@server1 install]# rm -fr index.php #下次登陆论坛时,不用再次重新安装
再次刷新网页