LNMP架构下的nginx、mysql、php的源码安装
一、LNMP的介绍
LNMP就是Linux+Nginx+Mysql+Php这种网站服务架构。Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统,常见版本有:centos、ubuntu、debain、fedora、gentoo等。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为开源软件,组合在一起成为免费、高校、扩展性强的网站服务系统。
二、mysql的源码编译及配置
(一) 源码编译
1) 安装源码编译工具cmake(cmake在软件包中有,但版本低于2.8,所以需要自己下载一个2.8以上的rpm包)
---> yum install -y cmake-2.8.12.2-4.e16.x86_64.rpm
2)从官网中下载mysql源码包,并解压
---> tar zxf mysql-boost-5.7.17.tar.gz
3)创建预编译环境,添加自己所需要的安装条件
---> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql # 指定mysql安装路径
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data # 数据存储位置
-DWITH_INNOBASE_STORAGE_ENGINE=1 # 安装inmodb的存储引擎
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock # socket文件存储路径
-DWITH_MYISAM_STORAGE_ENGINE=1 # 安装myisam存储引擎
-DDEFAULT_CHARSET=utf8 # 使用编码格式为utf-8
-DDEFAULT_COLLATION=utf8_general_ci # 校验字符
-DEXTRA_CHARSETS=all # 安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/ # boost路径
解决方法:--- > yum install gcc gcc-c++ -y
# 安装编译器之后,再次编译,还会出现如下问题:(二)没有ncurses-devel包
解决方法:---> yum install -y ncurses-devel
---> rm -f CMakeCache.txt
# 此时再次进行预编译,我们可以看到已经顺利通过了。 (在此过程中,缺什么依赖包,我们下什么就行。有时也有可能会使用openssl-devel包)
4)编译汇编
---> make && make install # 该过程需要几十分钟
(二)mysql的配置
1)进入mysql安装目录,把默认配置文件放在/etc下
---> rpm -qa | grep mysql # 查看mysql的版本
---> cd /etc
---> mv my.cnf my.cnf.bak # 先将/etc下的mysql配置文件重命名
---> cd support-files
---> cp my-default.cnf /etc/my.cnf # 将配置文件拷贝到/etc(系统默认配置文件目录下 )
---> vim /etc/my.cnf # 修改如下内容。
---> cp /usr/local/lnmp/mysql/support-files/mysql.server /etc/init.d/mysqld #若mysqld无执行权限,使用:chmod +x /etc/init.d/mysqld
4) 将编译生成的mysql二进制命令放进系统变量中。(方便直接使用mysql使用数据库)
---> vim ~/.bash_profile
---> source ~/.bash_profile # 加载.bash_profile,是配置生效
5) 对mysql服务进行限制
---> groupadd -g 27 mysql # 生成uid和gid均为27的mysql用户
---> useradd -u 27 -g 27 mysql
---> id mysql # 进行用户信息的查看
# 当前目录在/usr/local/lnmp/mysql下
---> chown root.mysql . -R # 为了保证数据的安全性,进行目录执行权限的设定
---> chown mysql.mysql . -R
(三)mysql的安全初始化
1)mysql密码的设置
---> bin/mysqld --initialize --user=mysql # 生称随机密码
---> /etc/init.d/mysqld start # 启动mysql服务
---> mysql_secure_installation # 自己设置密码,首密码为上面的随机密码(两个回车,四个y)
2)设置完成之后,我们试着登陆以下mysql。
---> mysql -p
三、PHP的源码安装
1)首先对php源码包进行解压
---> tar jxf php-5.6.35.tar.bz2
---> cd php-5.6.35
2)预编译及所需环境的安装(后面加了什么参数,就需要安装相应的依赖包)
---> ./configure --prefix=/usr/local/lnmp/php # php安装目录
--with-config-file-path=/usr/local/lnmp/php/etc # 配置文件所在位置
--enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd
--with-pdo-mysql=mysqldnd # 支持与mysql建立连接
--with-openssl # 支持openssl的加密
--with-snmp --with-gd --with-zlib --with-curl
--with-libxml-dir # 支持libxml函数
--with-png-dir --with-jpeg-dir --with-freetype-dir # 支持php处理图片
--with-pear --with-gettext --with-gmp --enable-inline-optimization --enable-soap
--enable-ftp --enable-sockets --enable-mbstring
--enable-fpm --with-mcrypt --with-mhash # 开启fpm模式(nginx服务使用);mcrypt提供加密算法;mhash使用hash加密
3) 解决依赖性锁需要的包
# 之后,再次预编译,就可以成功了
4)编译和安装
---> make && make install
5) 创建nginx用户
---> useradd nginx
6) 修改php的配置文件
---> cd /usr/local/lnmp/php/etc # 进入配置文件所在目录
---> cp php-fpm.conf.default php-fpm.conf # 配置文件重命名
---> vim php-fpm.conf # 取消pid的注释,并添加nginx用户
---> cp /root/php-5.6.35/php.ini-production /usr/local/lnmp/php/etc/php.ini
---> vim php.ini # 修改数据的时区。
7)把php执行脚本复制到/etc/init.d/目录下
---> cd /root/php-5.6.35/sapi/fpm
---> cp init.d.php-fpm /etc/init.d/php-fpm
---> chmod +x /etc/init.d/php-fpm
8) 启动php-fpm服务,并查看端口是否开启
---> /etc/init.d/php-fpm start # 启动php服务,默认在9000端口
---> netstat -antlp
四、Nginx的源码编译
1)下载源码包,并解压(带有sticky模块的nginx)
---> tar zxf nginx-1.14.0.tar.gz
---> yum install unzip -y
---> unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
2)去掉nginx的版本号
---> cd /root/nginx-1.14.0
---> vim src/core/nginx.h
3) 注释掉debug(可以减少安装内容)
---> cd /root/nginx-1.14.0
---> vim auto/cc/gcc
4) 预编译
---> ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
5) 依赖包的安装(按照提示,少什么包安装什么包即可)
---> yum install -y pcre-devel -y
6) 编译安装
---> make && make install
7) 配置nginx服务
---> cd /usr/local/lnmp/nginx/conf
---> vim nginx.conf # 修改用户,最大文件数,cpu,发布首页面,php信息
---> sysctl -a | grep file # 查看系统最大文件数
---> vim /etc/security/limits.conf # 修改nginx用户做限制
8)为了方便使用nginx二进制命令,我们可以做一个软连接
---> ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin
9) 编写nginx默认发布文件
---> cd /usr/local/lnmp/nginx/html
---> vim index.php
10)启动nginx服务,并在浏览器中进行测试。
---> nginx # nginx的其他命令: nginx -s reload|stop # 重新加载配置文件|关闭服务;
# 在浏览器中结果如下
到此,所有软件的安装就完成了。接下来,我们就可以进行论坛的部署了。