晓夏

北漂的女孩

Good Luck To You!

CentOS-6.4 编译安装最新LNMP(mysql-5.6.14 +PHP-7.0.3 +nginx-1.4.2)

浏览量:489

安装编译环境

Centos 7 basic Server模式安装lnmp

安装gcc g++等编译器

yum -y install gcc gcc-c++ automake autoconf libtool glibc make

 

安装一些lnmp依赖的库

 

yum -y install \

libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel \

libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \

zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \

ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \

krb5 krb5-devel libidn libidn-devel openssl openssl-devel

 

好像centos 6.0 后都yum 安装不了libmcrypt
不解决这个问题,编译不了php~~~~安装libmcrypt


ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz

tar -zxvf libmcrypt-2.5.7.tar.gz


 ./configure --prefix=/usr/local/libmcrypt

make && make install

 

-----------------------------------------------------------------------------------

make[2]: Leaving directory `/usr/local/src/libmcrypt-2.5.7/src'

Making all in doc

make[2]: Entering directory `/usr/local/src/libmcrypt-2.5.7/doc'

make[2]: Nothing to be done for `all'.

make[2]: Leaving directory `/usr/local/src/libmcrypt-2.5.7/doc'

make[2]: Entering directory `/usr/local/src/libmcrypt-2.5.7'

make[2]: Leaving directory `/usr/local/src/libmcrypt-2.5.7'

make[1]: Leaving directory `/usr/local/src/libmcrypt-2.5.7'

-----------------------------------------------------------------------------

报这个错没关系,只要不是error就行,这个提示的意思是离开当前目录的意思。

 

安装PHP-7.0.3

tar -zxvf php-5.4.21.tar.gz

./configure --prefix=/usr/local/php  --enable-fpm \

--with-mcrypt=/usr/local/libmcrypt --with-iconv \

--enable-mbstring  --with-curl --disable-debug  --disable-rpath \

--enable-opcache \

--enable-inline-optimization --with-bz2  --with-zlib --enable-sockets \

--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \

--with-mhash --enable-zip --with-pcre-regex \

--with-mysql --with-mysqli --with-pdo-mysql \

--with-gd --enable-gd-native-ttf --with-jpeg-dir --with-png-dir --with-freetype-dir 

 

如果报错


configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no解决办法

vim  /etc/ld .so.conf.d /local .conf      # 编辑库文件/usr/local/lib64                      # 添加该行/usr/local/libmcrypt/lib/              # 添加该行:wq                                    # 保存退出ldconfig - v                            # 使之生效

这里添加的库文件路径一定要和你系统平台arch一致,32位的系统直接添加/usr/local/lib即可,64位系统要填加/usr/local/lib64 否则依旧会报错

有时候,如果自己的libmcrypt(加密算法扩展库)是手动编译的话,只把这个/usr/local/libmcrypt/lib/加入到/etc/ld.so.conf,然后执行ldconfig,使其重新加载一次



make && make install

添加www用户组,添加www用户,并将www用记添加到www用户组

groupadd www

useradd -g www www

 

拷贝php-fpm配置文件


cd /usr/local/php


cp etc/php-fpm.conf.default etc/php-fpm.conf

 

更改配制文件

vim etc/php-fpm.conf

 

17 行前面分号去掉pidphp-fpm产生的进程号

 pid = run/php-fpm.pid

 


user group 都改为www


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

 user = www

 group = www


 

拷贝php配置文件php默认的配置文件路径

cp /usr/local/src/php-7.0.3/php.ini-production /usr/local/php/lib/php.ini 

更改配制文件

vim /usr/local/php/lib/php.ini

 

912 行,取消注释,时区改为PRC,就是中华人民共和国。

date.timezone = PRC

 

 

 

 

2安装 nginx-1.9.11

安装默认工具$ yum -y install  gcc  gcc -c++ autoconf automake $ yum -y install  zlib zlib-devel openssl openssl-devel pcre pcre-devel

pcre: 用来作地址重写的功能。

zlib:nginx 的gzip模块,传输数据打包,省流量(但消耗资源)。

openssl:提供ssl加密协议


下载pcre重写rewrite

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。

wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.21.tar.gz

   tar -zxvf pcre2-10.21.tar.gz

   mv pcre2-10.21.tar.gz pcre  

下载zlib,为了gzip压缩

wget http://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz

   tar -zxvf zlib-1.2.8.tar.gz

   mv zlib-1.2.8 zlib

  

下载openssl 可以提供安全链接

wget http://www.openssl.org/source/openssl-1.0.1r.tar.gz  

   tar -zxvf openssl-1.0.1.tar.gz

   mv openssl-1.0.1 openssl

 

安装 nginx

wget http://nginx.org/download/nginx-1.9.11.tar.gz

 tar -zxvf nginx-1.9.11.tar.gz

 cd nginx-1.9.11


./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx \

--conf-path=/usr/local/nginx/nginx.conf \

--pid-path=/usr/local/nginx/nginx.pid \

--with-openssl=/usr/local/src/openssl \

--with-pcre=/usr/local/src/pcre \

--with-zlib=/usr/local/src/zlib \

--with-http_ssl_module \

--with-http_stub_status_module \

--with-http_gzip_static_module



--with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 nginx 的当前状态。--with-http_ssl_module 启用http_ssl模块

make

make install

 

 

 

更改nginx配制文件

vim /usr/local/nginx/nginx.conf

第二行 user 启用并改为 www

 user  www;

 

第七十二行开始添加如下

location ~ \.php$ {
    root            html;
    fastcgi_pass    127.0.0.1:9000;
    fastcgi_index   index.php;
    fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include             fastcgi_params;
}

 

 

 

添加php页面,查看系统信息

 vim /usr/local/nginx/html/index.php

<?php

phpinfo();

?>

 

启动nginx

/usr/local/nginx/nginx

/usr/local/nginx/nginx -s reload

启动 php-fpm

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

 

浏览器http://ip/index.php

 

 

 

 

 

3安装mysql-5.7.11

Mysql5.6需要用cmake编译

 

安装cmake

 wget https://cmake.org/files/v3.4/cmake-3.4.3.tar.gz

   cd /usr/local/src

   tar -zxvf cmake-3.4.3.tar.gz

   cd cmake-3.4.3

   ./configure

   make

   make install

安装 boost

wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

解压后放到usr/local下


安装mysql 

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

tar -zxvf mysql-5.7.11.tar.gz

cd mysql-5.7.11

cmake . \


-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_PROFILING=ON \

-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \

-DWITH_READLINE=1 -DWITH_DEBUG=0 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_DATADIR=/data/mysqldb \

-DENABLED_LOCAL_INFILE=1 \

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost \


make

make install

[root@liu mysql-5.7.11]# cmake . \

> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \                      mysql安装目录

> -DDEFAULT_CHARSET=utf8 \                                                 默认的字符集

> -DDEFAULT_COLLATION=utf8_general_ci \                             编码校对规则

> -DENABLED_PROFILING=ON \                                              是否启用代码查询分析

> -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \                    额外的字符集

> -DWITH_READLINE=1 \                                                         使用绑定的readline

> -DWITH_DEBUG=0 \                                                               不开启调试

> -DWITH_MYISAM_STORAGE_ENGINE=1 \                             myisam引擎

> -DWITH_INNOBASE_STORAGE_ENGINE=1 \                        innodb 引擎

> -DMYSQL_DATADIR=/data/mysqldb \                                 数据库存放目录

> -DENABLED_LOCAL_INFILE=1                                               允许从本地导入数据

      

 

 

添加mysql用户组和mysql用户

groupadd mysql

useradd -g mysql mysql

 

创建mysqldb文件夹

mkdir -p /data/mysqldb

 

修改mysql安装目录 

cd /usr/local/mysql

chown -R mysql:mysql . 

 

修改mysql数据库文件目录 

cd /data/mysql

chown -R mysql:mysql .

 

初始化mysql数据库

cd /usr/local/mysql 

以root初始化操作时要加–user=mysql参数,生成一个随机密码(注意保存登录时用)


bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql  --datadir=/data/mysql

 

 

复制mysql服务启动配置文件如果/etc/my.cnf文件存在就覆盖。

cp /usr/local/mysql/support-files/my-default.cnf  /etc/my.cnf  

 

复制mysql启动文件到/etc/init.d/

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

 chmod 755 /etc/init.d/mysqld
检查自启动项列表中没有mysqld这个,如果没有就添加mysqld:

# chkconfig --list mysqld
# chkconfig --add mysqld
设置MySQL在345等级自动启动

# chkconfig --level 345 mysqld on
或用这个命令设置开机启动:

# chkconfig mysqld on


启动mysql

/etc/init.d/mysqld start

 

 mysql -uroot -p
修改root新密码如 123456

mysql> alter user 'root'@'localhost' identified by '123456';
mysql> quit;


测试mysql是否成功

vim /usr/local/nginx/html/conn.php

加入以下

 

<?php

$link=mysql_connect('localhost','root','123456');

var_dump($link);

 

?>

 

输入http://ip/conn.php

看到下面字样,表示成功

 

 


在linux下将php和mysql加入到环境变量中的方法(假 设php和mysql分别安装在/usr/local/php/和/usr/local/mysql/中)。
方法一:直接运行命令export PATH=$PATH:/usr/local/php/bin 和 export PATH=$PATH:/usr/local/mysql/bin
使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。
方法二:执行vi ~/.bash_profile修改文件中PATH一行,将/usr/local/php/bin 和 /usr/local/mysql/bin加入到PATH=$PATH:$HOME/bin一行之后
这种方法只对当前登录用户生效
方法三:修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php/bin:/usr/local/mysql/bin
export PATH

最后:执行 命令source /etc/profile或 执行点命令 ./profile使其修改生效,执行完可通过echo $PATH命令查看是否添加成功。


       -------------------------------------------------

 


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。