【最新版lnmp编译安装】编译安装nginx1.10.2最新版、php7.0.12最新版、mysql5.7.16最新版

哈理工大学软件学院的hustoj 服务器 学校给了公网ip。高配带宽、CPU、存储。所以把当时都通过yum安装的 较低版本的lamp。全都通过源码编译的方式重塑一下web环境。

全都是lnmp 全都是官网最新稳定版。一朝升级,十年不用动了。换成nginx的原因是,以后可以在上面测试反向代理、负载均衡、静态化页面的东西。并发处理强度远大于apache。php7性能据说比以往版本提高至少3倍。

一、安装nginx

1、安装 pcre
为了支持 rewrite 功能,我们需要安装 pcre

# yum install pcre* //如过你已经装了,请跳过这一步

 安装 openssl
需要 ssl 的支持,如果不需要 ssl 支持,请跳过这一步

# yum install openssl* //如过你已经装了,请跳过这一步

2、安装nginx

获取最新版nginx

#:cd /usr/local/src
#:wget http://nginx.org/download/nginx-1.10.2.tar.gz
#: ./configure --prefix=/usr/local/nginx  \
--pid-path=/usr/local/nginx/nginx.pid \
--error-log-path=/usr/local/nginx/error.log \
--http-log-path=/usr/local/nginx/access.log \
--with-http_ssl_module \
--with-mail --with-mail_ssl_module \
--with-stream --with-threads \


#:make & make install

完成安装

3、启动nginx

# cd /usr/local/nginx/sbin/
# ./nginx

此时访问应该能在浏览器看到欢迎页了

二、安装php7.0.12

1、安装依赖包
确保安装之前有安装 gd,png,curl,xml 等等 lib 开发库。如果不确定,执行以下命令:

# yum install gcc make gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurldevel curl curl-devel  -y 
cd /usr/local/src

# wget http://cn2.php.net/get/php-7.0.12.tar.bz2/from/this/mirror

# tar -jxf mirror

可能出现Package: php70w-mcrypt-7.0.12-1.w6.x86_64 (webtatic) Requires: libmcrypt.so()64的错误

解决升级源 然后yum装对应缺少的库

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh epel-release*rpm

# yum install libmcrypt
# yum install libmcrypt-devel 

最后检测配置安装环境

# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql \ 
--with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr \ 
--enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl \ 
--enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash \ 
--enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear \ 
--with-gettext --disable-fileinfo --enable-maintainer-zts 

# make & make install

启动php-fpm

# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf  
# vim www.conf

找到如下两行
添加www 这个用户和用户组

# groupadd www
# useradd -g www -d /home/www

启动php-fpm

# /usr/local/php/sbin/php-fpm

查看是否启动成功

# netstat -ano | grep '9000'

修改nginx.conf 打开以下注释

并在此文件中指定网站根目录 root。并在index 加上index.php

启动nginx

# /usr/local/src/nginx/sbin/nginx
# /usr/local/src/nginx/sbin/nginx -s reload  重新加载
# /usr/local/src/nginx/sbin/nginx -s stop    停止服务

启动成功后
可以看到nginx欢迎页了

将启动参数添加用户变量

# vim ~/.bash_profile
# source ~/.bash_profil

三、编译安装mysql5.7.16最新版

安装cmake

# wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
# tar -zvxf cmake-3.5.2.tar.gz# cd cmake-3.5.2
# yum install -y make gcc gcc-c++ ncurses-devel
# ./bootstrap
# gmake 
# gmake install

下载mysql

# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16.tar.gz

编译mysql
编译参数参考一、

# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \              [MySQL安装的根目录]
-DMYSQL_DATADIR=/mydata/mysql/data  \                   [MySQL数据库文件存放目录]
-DSYSCONFDIR=/etc \                                     [MySQL配置文件所在目录]
-DMYSQL_USER=mysql \                                    [MySQL用户名]      
-DWITH_MYISAM_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                      [MySQL的数据库引擎]
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                       [MySQL的数据库引擎]
-DWITH_MEMORY_STORAGE_ENGINE=1 \                        [MySQL的数据库引擎]
-DWITH_READLINE=1 \                                     [MySQL的readline library]
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \           [MySQL的通讯目录]
-DMYSQL_TCP_PORT=3306 \                                 [MySQL的监听端口]
-DENABLED_LOCAL_INFILE=1 \                              [启用加载本地数据]
-DENABLE_DOWNLOADS=1 \                                  [编译时允许自主下载相关文件]
-DWITH_PARTITION_STORAGE_ENGINE=1  \
-DEXTRA_CHARSETS=all \                                  [使MySQL支持所有的扩展字符]
-DDEFAULT_CHARSET=utf8 \                                [设置默认字符集为utf8]
-DDEFAULT_COLLATION=utf8_general_ci \                   [设置默认字符校对]
-DWITH_DEBUG=0 \                                        [禁用调试模式]
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \                             [通讯时支持ssl协议]
-DWITH_ZLIB:STRING=bundled                              [允许使用zlib library] \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/root/mysql/boost_1_59_0

在这里遇到失败 需要安装boost库 网上有说直接下载一个boost包 在cmake 后面指定路径即可

cmake .
    -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST=/usr/local/src/boost_1_59_0\

对我来说不好使吧

结果手动下载boost库 并编译安装之

# wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
# tar -axvf boost_1.59_0
# ./b2

编译参数二、

#   cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    -DMYSQL_DATADIR=/mydata/data \
    -DSYSCONFDIR=/etc \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_READLINE=1 \
    -DWITH_LIBWRAP=0 \
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
    -DWITH_SSL=system \
    -DWITH_ZLIB=system \
    -DWITH_BOOST=/usr/local/src/boost_1_59_0 \   //路径是boost库路径
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci

提示安装 bison

# yum install bison* -y
# make & make install

接下来又是漫长的等待

安装完成后

cp ./support-files/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld
# chkconfig mysqld on
# chkconfig | grep mysql
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

#groupadd -r mysql && useradd mysql&& usermod -d /home/mysql -p mysql -s /bin/bash mysql

初始化mysql

# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/mydata/mysql/data

添加用户变量

# vim ~/.bash_profile
内容如下:
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

export PATH
立即生效:
#:source ~/.bash_profile
授权:
#  chown -R mysql:mysql /usr/local/mysql
#  chown -R mysql:mysql /mydata/data
#  chmod 755 /usr/local/mysql/bin/mysqld
#  chown -R mysql:mysql /var/run/mysql/

启动mysql的时候报错。找不到mysql.sock文件

Can ‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock ‘(2) “;

执行:

# mysqld_safe --user --defaults-file /etc/my.cnf
# mysqld_safe --user --defaults-file /etc/my.cnf

会自动生成一个mysql.sock

查找所生成的路径

# find / -name mysql.sock
#vim /etc/my.cnf
下面这两个参数必须要和上述编译参数配置的一致,否则启动后登录不上
datadir=/mydata/mysql/data
socket=/var/run/mysql/mysql.sock

指定mysql数据存放目录

启动mysql

# service mysqld start

启动后进行一些配置,包括修改root密码

 mysql_secure_installation

启动nginx

# nginx -s reload

说明一点: php7废弃了 php5.3 5.4版本之前的一些函数。根据nginx错误日志找到出错的函数,编辑相应php文件 替换掉php7+的函数即可

posted @ 2016-12-31 12:41  cbam  阅读(118)  评论(0)    收藏  举报