导航

LNMP环境安装详细教程

Posted on 2016-09-22 18:52  远方,咫尺天涯  阅读(227)  评论(0编辑  收藏  举报

安装环境:CentOS6.5

清理已经安装包

rpm -e httpd
rpm -e mysql
rpm -e php
yum -y remove httpd
yum -y remove mysql
yum -y remove php

#搜索apache包
rpm -qa http*

#强制卸载apache包
rpm -e --nodeps 查询出来的文件名

#检查是否卸载干净
rpm -qa|grep http*

准备安装环境

先采用yum包安装一些依赖的东西

yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel
freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl
curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof

 

 下载一些软件都放在/usr/local/src下

libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。

安装libiconv

cd /usr/local/src
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make && make install

libmcrypt是加密算法扩展库。

下载并安装libmcrypt

cd /usr/local/src
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make 
make install 
cd libltdl/ 
./configure --enable-ltdl-install 
make 
make install

Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。 mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存

下载并安装mbash

cd /usr/local/src
wget http://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz tar jxvf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure make && make install

mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。

下载并安装mcrypt

cd /usr/local/src
wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8
#注意一下这步运行下,不然下面可能报错
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./configure
make && make install
说明:由于在配置Mcrypt时,会找不到libmcrypt的链接库,导致无法编译,因为Libmcrypt的链接库在/usr/local/文件夹下。
因此在配置mcrypt时要加入LD_LIBRARY_PATH=/usr/local导入键接库

创建软连接

ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la 
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so 
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 
ln -s /usr/local/lib/libmcrypt.so.4.4.7 /usr/lib/libmcrypt.so.4.4.7 
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a 
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la 
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so 
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 

安装mysql(mysql5.6.17)

 先检查一下mysql是否已经存在了,如果存在就删除mysql

pm -qa | grep mysql
#我的显示如下(如果没有任何显示就表示没有mysql呢)
mysql-libs-5.1.73-3.el6_5.i686
#如果存在就卸载mysql
rpm -e mysql-libs-5.1.73-3.el6_5.i686 --nodeps
#此时再运行
rpm -qa | grep mysql 
#发现没有任何显示

添加一个mysql用户(nologin用户并且没有家目录)

useradd -M -s /sbin/nologin mysql

MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。

cd /usr/local/src
wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar zxvf cmake-3.5.2.tar.gz 
cd cmake-3.5.2 
./configure 
make && make install

使用cmake来编译安装mysql5.6.17

cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz tar zxvf mysql-5.6.17.tar.gz cd mysql-5.6.17 cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_USER=mysql \ -DWITH_DEBUG=0 \ -DWITH_SSL=system make && make install

 

#复制mysql配置文件
cp support-files/my-default.cnf /etc/my.cnf
#创建系统数据库表
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
#更改权限
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data

#把mysql添加到系统服务中去
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#赋予权限
chmod 755 /etc/init.d/mysqld

启动MySQL
service mysqld start
或者
/etc/init.d/mysql start
#启动mysql启动的时候,一直不动的话按下enter.,就行了
/usr/local/mysql/bin/mysqld_safe --user=mysql &
#查看mysql是否启动
netstat -tunpl | grep 3306
#或者pstree,看到有mysqld进程也行
#修改mysql密码
/usr/local/mysql/bin/mysqladmin -u root password "xxxxx"
#进入mysql中删除空密码和匿名用户
/usr/local/mysql/bin/mysql -u root -p
select host,user,password from mysql.user;
delete from mysql.user where password="" or user="";
flush privileges;
#也可以在mysql修改用户密码(只是说明一下)
set password form 'root'@'localhost' = password('123456');
#关闭mysql的时候可以使用
/usr/local/mysql/bin/mysqladmin -u root -p shutdown

#把mysql添加到开机启动
vim /etc/rc.local
#在最后再加一行
/usr/local/mysql/bin/mysqld_safe --user=mysql &
或者
#设置开机启动
chkconfig mysqld on

#最后做一个软链接方便使用mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/

 

安装nginx1.10

nginx所需的依赖关系,一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。如果系统已经yum 安装了这些库也没关系,无需卸载。直接编译安装最新的就可以了。

为了一次性完成编译,先准备编译下面的依赖关系!

1、安装PCRE库

cd /usr/local/src
wget http://ftp.exim.llorien.org/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure
make && make install

2、安装Zlib库

cd /usr/local/src
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install

3、安装openssl

cd /usr/local/src
wget http://www.openssl.org/source/openssl-1.0.1g.tar.gz
tar -zxvf openssl-1.0.1g.tar.gz
cd openssl-1.0.1g
./config
make && make install


开始安装nginx

cd /usr/local/src
wget http://nginx.org/download/nginx-1.10.1.tar.gz
tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1.tar.gz
./configure \
--prefix=/usr/local/nginx \
--with-pcre=/usr/local/src/pcre-8.38 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-http_ssl_module \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.1g \
--with-http_concat_module=shared
(注:如果是nginx的话不需要 --with-http_concat_module=shared)

make && make install
#做软链接方便nginx启动
ln -s /usr/local/nginx/sbin/nginx /usr/bin/

#测试一下nginx配置文件
nginx -t
#启动nginx
nginx

#说一下nginx启动的一些事情
#一般来说在nginx的配置文件修改后进行如下操作,nginx -t检测一下配置文件是否正确,如果正确的话
#再使用nginx -s reload 使nginx平滑启动

#把nginx添加到开机启动
vim /etc/rc.local
#在最后新加一行
/usr/local/nginx/sbin/nginx
#查看nginx是否启动
netstat -tunpl | grep 80
pstree 看下有没有nginx就行了

 

安装PHP5.5

1、安装过程:

 

cd /usr/local/src
wget http://mirrors.sohu.com/php/php-5.5.12.tar.gz
tar zxvf php-5.5.12.tar.gz
cd php-5.5.12
./configure \
--prefix=/usr/local/php-5.5.12 \
--enable-opcache  \
--with-config-file-path=/usr/local/php-5.5.12/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql \
--enable-sockets \
--enable-mbstring \
--enable-fpm \
--with-curl \--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-ftp \
--with-bz2 \
--with-pear \
--with-zlib \
--with-mhash \
--enable-xml \
--with-gd \
--with-mcrypt \
--with-libxml-dir=/usr \
--with-openssl \
--with-iconv=/usr/local/libiconv \
--with-gettext \
--disable-fileinfo
make && make install

cp php.ini-development /usr/local/php/etc/php.ini

#配置php-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf



#复制php-fpm启动脚本到init.d
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
#赋予执行权限
chmod +x /etc/init.d/php-fpm
#添加为启动项
chkconfig --add php-fpm
#设置开机启动
chkconfig php-fpm on
#立即启动php-fpm
service php-fpm start
#或者
/etc/init.d/php-fpm start

另一种方式:
#启动php-fpm
/usr/local/php/sbin/php-fpm
#把php-fpm添加到开机启动
vim /etc/rc.local
#最后一行加上
/usr/local/php/sbin/php-fpm

 

2、使用xcache优化php性能:

cd /usr/local/src
wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz
tar zxvf xcache-3.1.0.tar.gz
cd xcache-3.1.0
/usr/local/php/bin/phpize
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make && make install

复制xcache查看器到网站目录
cp htdocs/ /home/wwwroot/htdocs/xcache -rf

cat >>/usr/local/php/etc/php.ini<<EOF
[xcache-common]
;注意路径
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20121212/xcache.so

[xcache.admin]
xcache.admin.enable_auth = on
xcache.admin.user = "admin"
xcache.admin.pass = "e10adc3949ba59abbe56e057f20f883e"
;运行: echo -n "password" |md5sum |awk '{print $1}' 计算出MD5加密过的密码
;替换xcache.admin.pass=的值

[xcache]
xcache.shm_scheme = "mmap"
xcache.size = 64M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 3600
xcache.gc_interval = 60
xcache.var_size = 16M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 3600
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.readonly_protection = Off
xcache.mmap_path = "/dev/zero"
xcache.coredump_directory = "/tmp/phpcore"
xcache.coredump_type = 0
xcache.disable_on_crash = Off
xcache.experimental = Off
xcache.cacher = On
xcache.stat = On
xcache.optimizer = Off

[xcache.coverager]
xcache.coverager = Off
xcache.coverager_autostart =  On
xcache.coveragedump_directory = "/tmp/pcov"
EOF


3、配置nginx支持php

#修改nginx配置文件使之支持php
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  /scripts$fastcgi_script_name;
#    include        fastcgi_params;
#}
修改为
location ~ \.php$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

#也顺便把gzip给开启下吧
gzip on前面的#去掉

#修改完配置之后
/etc/init.d/nginx -s reload

 

nginx、php配置优化暂未详述,接下来再详述。