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就行,这个提示的意思是离开当前目录的意思。
1 安装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 行前面分号去掉pid为php-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
安装默认工具 pcre: 用来作地址重写的功能。 zlib:nginx 的gzip模块,传输数据打包,省流量(但消耗资源)。 openssl:提供ssl加密协议$ yum -y
install
gcc
gcc
-c++ autoconf automake
$ yum -y
install
zlib zlib-devel openssl openssl-devel pcre pcre-devel
下载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命令查看是否添加成功。
---------------------------完----------------------
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。