以下使用的版本为:
nginx-1.15.9
mysql-boost-5.7.20
php-7.1.10
注:需要包源的可以私聊作者
一. nginx的编译安装
1.1 依赖环境包安装
yum -y install \
gcc gcc-c++ make \ //编译器gcc,gcc-c++,编译工具make
pcre-devel \ //正则表达式开发依赖包
zlib-devel //压缩依赖包
1.2 解压源码包
[root@localhost ~]#
cd /opt
tar xzvf nginx-1.15.9.tar.gz //使用的是1.15.9版本
1.3 创建程序用户
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
1.3 ./configure配置
[root@localhost ~]#
cd nginx-1.15.9/
./configure \
--prefix=/usr/local/nginx \ //指定安装路径
--user=nginx \ //程序用户
--group=nginx \ //程序用户的组
--with-http_stub_status_module //状态统计模块
1.4 make 配置文件构建出二进制文件
[root@localhost opt]# make //编译,将源代码转换为可执行的二进制程序
1.5 make install 安装
[root@localhost opt]# make install //将编译完的httpd程序及相关目录,文件复制到预设的安装目录
1.6 三个文件
1.61 主配置文件
[root@localhost opt]# vim /usr/local/aginx/conf/aginx.conf
1.62 命令文件
[root@localhost opt]# ln -s /usr/local/nginx/sbin//nginx /usr/local/bin
[root@localhost opt]# nginx -t //验证nginx的配置文件的语法
1.62 启动脚本
添加系统服务,便于systemctl 管理
[root@localhost opt]#
vi /lib/systemd/system/nginx.service
编辑模式
[Unit]
Description=nginx //描述
After=network.target //描述服务类别
[Service]
Type=forking //后台运行形式
PIDFile=/usr/local/nginx/logs/nginx.pid //PID文件位置
ExecStart=/usr/local/nginx/sbin/nginx //启动服务
ExecReload=/usr/bin/kill -s HUP $MAINPID //根据PID重载配置
ExecStop=/usr/bin/kill -s QUIT $MAINPID //根据PID终止进程
PrivateTmp=true
[Install]
WantedBy=multi-user.target //最小安装方式适用
[root@localhost opt]# chmod 754 /lib/systemd/systecm/nginx.service
1.7 开启服务
[root@localhost opt]# systemctl enable nginx.service
[root@localhost opt]# systemctl start nginx
[root@localhost opt]# netstat -anpt | grep aginx
二. Mysql 的编译安装
2.1 安装依赖环境包
[root@localhost opt]#
yum -y install \
ncurses \
ncurses-devel \ //字符终端
bison \ //通用解析器,解析C++语言
cmake
ncurses是字符终端下屏幕控制的基本库,你在TTY下登录到主机上mysql需要的,所以依赖
2.2 解压源码包
[root@localhost ~]# tar xf mysql-boost-5.7.20.tar.gz
cd /opt
2.3 ./cmake 配置
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ //通讯协议
-DSYSCONFDIR=/etc \ //指定配置文件目录
-DSYSTEMD_PID_DIR=/usr/local/mysql \ //指定PID进程目录位置
-DDEFAULT_CHARSET=utf8 \ //指定字符集
-DDEFAULT_COLLATION=utf8_general_ci \ //字符集规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //指定存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ //不支持任何索引,但使用查询缓存的存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ //黑洞引擎,写入的任何数据都会消失,用于记录binlog做复制的中继存储
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ //mysql的运行时状态记录的存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ //指定数据放置目录
-DWITH_BOOST=boost \ //C++程序库的总称
-DWITH_SYSTEMD=1 //相当于ID号
2.4 make编译成二进制文件
[root@localhost opt]# make //编译,将源代码转换为可执行的二进制程序
2.5 make install安装
[root@localhost opt]# make install //将编译完的nginx程序及相关目录,文件复制到./configure设定的安装目录
创建数据库程序用户
useradd -M -s /sbin/nologin mysql
数据库目录进行权限调整
chown -R mysql:mysql /usr/local/mysql/
2.6 三个文件
2.61 主配置文件
[root@localhost opt]# vi /etc/my.cnf //Mysql 5.7版本的my.cnf 配置文件需要设定 client , mysql, mysqld 三项
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
//
[root@localhost opt]# chown mysql.mysql /etc/my.cnf
2.62 命令文件
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
2.63 启动脚本
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
2.7 初始化数据库
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \ //初始化安全
--user=mysql \ //用户
--basedir=/usr/local/mysql \ //工作目录
--datadir=/usr/local/mysql/data //数据目录
2.8 启动数据库
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306
mysqladmin -u root -p password "abc123" //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的
mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123
三. PHP的编译安装
3.1 依赖环境包安装
[root@localhost opt]#
yum -y install \
libjpeg \
libjpeg-devel \ //支持jpg格式的图片
libpng libpng-devel \ //支持png格式图片
freetype freetype-devel \ //字体样式(宋体,斜体,黑体等)
libxml2 \
libxml2-devel \ //支持xml格式,版本2
zlib zlib-devel \ //支持压缩依赖包
curl curl-devel \ //定位远程web资源
openssl openssl-devel //安全套接字协议,增加网站访问的安全性 (搭档https,ssl证书)
3.2 解压源码包
cd /opt
tar xjvf php-7.1.10.tar.bz2
3.3 ./configure 配置
cd php-7.1.10
./configure \
--prefix=/usr/local/php \ //指定安装目录
--with-mysql-sock=/usr/local/mysql/mysql.sock \ //关联Mysql
--with-mysqli \ //启用mysql的客户端
--with-zlib \ //启用压缩功能
--with-curl \ //定位curl远程web资源
--with-gd \ //处理图片,图像,文字的库
--with-jpeg-dir \ //jpeg图片处理
--with-png-dir \ //png图片处理
--with-freetype-dir \ //字体类型
--with-openssl \ //ssl安全加密
--enable-fpm \ //动态处理模块
--enable-mbstring \ //字符串处理
--enable-xml \ //xml格式
--enable-session \ //session会话,前端的界面传送到后台,进行封装,后台处理完后,再返回到会话给前端
--enable-ftp \ //开启ftp
--enable-pdo \ //连接数据库的驱动,连接系统与物理设备的桥梁
--enable-tokenizer \ //令牌,用作身份认证
--enable-zip //压缩
3.4 make 编译成二进制文件
[root@localhost php-7.1.10]# make //编译,将源代码转换为可执行的二进制程序
3.5 make install 安装
[root@localhost php-7.1.10]# make install //将编译完的php程序及相关目录,文件复制到./configure设定的安装目录
3.6 三个文件
3.61 主配置文件
[root@localhost php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@localhost php-7.1.10]# vi /usr/local/php/lib/php.ini
##########只需要改以下两个参数就行###
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai
###########验证安装的模块###########
/usr/local/php/bin/php -m ###必须使用绝对路径否则使用不了
3.62 命令文件
ln -s /usr/local/php/bin/* /usr/local/bin/
3.63 启动脚本
依赖于nginx的启动而启动,PHP的FPM动态处理的启动端口为9000
3.7 配置及优化FPM模块
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
###########搜索pid = run/php-fpm.pid 去掉分号开头#######
pid = run/php-fpm.pid ###去掉; 启用fpm功能
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf
注:/usr/local/php/etc/php-fpm.conf 和 /usr/local/php/etc/php-fpm.d/www.conf这两个fpm模块的文件其实是一个文件, /usr/local/php/etc/php-fpm.d/www.conf是/usr/local/php/etc/php-fpm.conf 的子文件,里面指定了端口号9000等fpm模块的信息
3.8 编辑nginx主配置文件,使其支持PHP
######去掉前面井号改一下 fastcgi_param 后面的就行###
vim /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}
设置测试页
########改完之后建一个PHP的测试页####
vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
修改过nginx配置文件需要重启一下服务
nginx -t //验证一下配置文件的语法
systemctl restart nginx
3.9 测试动态页面
###http://20.0.0.30/index.php####