LNMP编译安装教程
2018-08-08 张存书
一、安装nginx1.8.1
准备工作,安装依赖库
yum -y install gcc automake autoconf libtool make gcc-c++ glibc 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-devel libidn libidn-devel openssl openssl-devel pcre pcre-devel libmcrypt libmcrypt-devel wget vim lrzsz
1、下载nginx(stable版本)
wget -P /usr/local/src http://nginx.org/download/nginx-1.8.1.tar.gz
-P指定下载文件目录
或者
cd /usr/local/src
wget http://nginx.org/download/nginx-1.8.1.tar.gz
默认下载到当前目录下
2、解压nginx
tar xf nginx-1.8.1.tar.gz
cd nginx-1.8.1
3、编译nginx
如果指定用户和用户组,需要先创建
//创建用户www和用户组www
groupadd www
useradd -g www www
./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module
make && make install
//启动nginx
**第一种方式 指定--sbin-path=/usr/sbin/nginx**
nginx //启动
nginx -s stop// 停止
nginx -s reload // 重新加载
**第二种方式 不指定--sbin-path**
cd /usr/local/nginx
./sbin/nginx
重启nginx /usr/local/nginx/sbin/nginx -s reload
**第三种方式**
配置开机启动
首先写一个shell脚本,脚本名称:nginx
vi /etc/rc.d/init.d/nginx
#! /bin/bash
# chkconfig: 35 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="nginx daemon"
NAME=nginx
DAEMON=/usr/local/nginx/sbin/$NAME (这里是nginx安装是 --sbin-path指定的路径)
SCRIPTNAME=/etc/init.d/$NAME
test -x $DAEMON || exit 0
d_start(){
$DAEMON || echo -n " already running"
}
d_stop() {
$DAEMON -s quit || echo -n " not running"
}
d_reload() {
$DAEMON -s reload || echo -n " counld not reload"
}
case "$1" in
start)
echo -n "Starting $DESC:$NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC:$NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
exit 3
;;
esac
exit 0
//将shell脚本放入到 /etc/rc.d/init.d/中,并执行下列命令
chmod +x /etc/rc.d/init.d/nginx (设置可执行权限)
chkconfig --add nginx (添加系统服务)
service nginx start
service nginx stop
service nginx restart
service nginx reload
浏览器访问:http://localhost如能出现nginx页面则表示成功
// 查看nginx进程
ps -ef | grep nginx
// 查看进程个数 去掉首位的
ps -ef | grep nginx | wc -l
// 查看80端口
netstat -anpt
useradd -M -s /sbin/nologin www
#修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
把#user nobody 改成 user www;
#测试一下nginx配置文件
/usr/local/nginx/sbin/nginx -t
#启动nginx
/usr/local/nginx/sbin/nginx
#一般来说在nginx的配置文件修改后进行如下操作,
/usr/local/nginx/sbin/nginx -t检测一下配置文件是否正确,如果正确的话
再使用/usr/local/nginx/sbin/nginx -s reload 使nginx平滑启动
二、安装mysql5.6.30
①下载 MySQL
cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz
②安装编译源码所需的工具和库
如果缺少cmake库
yum install cmake
(可以从http://www.cmake.org下载源码并编译安装) (安装包安装cmake)
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar -xzvf cmake-2.8.10.2.tar.gz
./bootstrap make make
install
③设置MySQL用户和组
新增mysql用户组 新增mysql用户
groupadd mysql
useradd -r -g mysql mysql
④ 新建MySQL所需要的目录
新建mysql安装目录 新建mysql数据库数据文件目录
mkdir -p /usr/local/mysql
mkdir -p /data/mysqldb
⑤ MySQL源码包解压
cd /usr/local/src
tar zxvf mysql-5.6.30.tar.gz
cd mysql-5.6.30
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldb -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1
(注:重新运行配置,需要删除CMakeCache.txt文件 rm CMakeCache.txt ) make && make install
⑥ 修改mysql目录所有者和组
修改mysql安装目录 cd /usr/local/mysql chown -R mysql:mysql .
修改mysql数据库文件目录 cd /data/mysqldb chown -R mysql:mysql .(注意后面的.指的是当前目录)
7初始化mysql数据库
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
⑧ 复制mysql服务启动配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
(注:如果/etc/my.cnf文件存在,则覆盖。)
⑨ 复制mysql服务启动脚本及加入PATH路径
cp support-files/mysql.server /etc/init.d/mysqld
⑩ 启动mysql服务并加入开机自启动
service mysqld start
chkconfig –level 35 mysqld on
⑪ 检查mysql服务是否启动
netstat -tulnp | grep 3306
需要把mysql加入环境变量 vim /etc/profile
在最后加入如下命令
MYSQL_HOME=/usr/local/mysql
PATH=$MYSQL_HOME/bin:$PATH
export PATH MYSQL_HOME
source /etc/profile
mysql -u root -p (密码为空,如果能登陆上,则安装成功)
⑫ 修改MySQL用户root的密码
方法一:mysql -u root -p
use mysql
update user set password=password(‘123456’) where user=’root’
flush privileges(刷新权限)
方法二:/usr/local/mysql/bin/mysql_secure_installation
(修改MySQL用户root的密码,同时可禁止root远程连接,移除test数据库和匿名用户。)
方法三:mysqladmin -uroot password '123456’
三、安装PHP依赖关系:
1.安装libiconv
cd /usr/local/src
wget http://blog.zyan.cc/soft/linux/nginx_php/libiconv/libiconv-1.13.1.tar.gz
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure --prefix=/usr/local/libiconv
make && make install
cd ..
2.安装libmcrypt
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
cd ..
3.安装 Mhash
wget http://blog.zyan.cc/soft/linux/nginx_php/mhash/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install
cd ..
4.安装Mcrypt
wget http://blog.zyan.cc/soft/linux/nginx_php/mcrypt/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
cd ..
编译mcrypt可能会报错:configure: error: *** libmcrypt was not found
vi /etc/ld.so.conf
最后一行添加
/usr/local/lib/
保存并退出::wq!
执行载入命令:
ldconfig
四、安装php 5.6.6
1.下载安装包及编译安装
wget http://cn2.php.net/get/php-5.6.3.tar.gz/from/this/mirror
tar -zxvf php-5.6.3.tar.gz
cd php-5.6.3
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --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
2.修改fpm配置php-fpm.conf.default文件名称
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3.复制php.ini配置文件
cp php.ini-production /usr/local/php/etc/php.ini
4.复制php-fpm启动脚本到init.d
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
5.赋予执行权限
chmod +x /etc/init.d/php-fpm
6.添加为启动项
chkconfig --add php-fpm
7.设置开机启动
chkconfig php-fpm on
8.按照标准,给php-fpm创建一个指定的用户和组
创建群组:groupadd www
创建一个用户,不允许登陆和不创主目录 :useradd -s /sbin/nologin -g www -M www
9.立即启动php-fpm
service php-fpm start
#或者
/etc/init.d/php-fpm start
10.修改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;
}
修改完配置之后
测试一下是否有错:/usr/local/nginx/sbin/nginx -t
平滑重启:/usr/local/nginx/sbin/nginx -s reload
五、测试php和nginx和mysql
1.进入nginx的服务器目录,这一步是在nginx.conf里的root中配置的,可以自行修改。
cd /usr/local/nginx/html
2.新建一个php文件:vim l.php
其内容为
保存并退出::wq! 注:字母w前要有一个冒号
然后运行:
http://127.0.0.1/l.php(这里把IP换成你自己的服务器的IP)
出现上面的图就说明PHP和NGINX安装成功了。
3.测试mysql
打开刚才新建的那个文件:
vim l.php,输入第三行-第10行代码,代码是测试php是否可以联接mysql。
保存并退出::wq! 注:字母w前要有一个冒号
然后运行:
http://127.0.0.1/l.php(这里把IP换成你自己的服务器的IP)
这里说明php可以联接mysql了。
到这里以编译的形式安装LNMP就完成了。如果由于项目的要求还需要php或是nginx一些其它的扩展,再重新编译一下php或是nginx就可以了