linux服务--LNMP源码编译安装--RHEL6.5
2016-05-03 21:49
841 查看
LNMP=Linux Nginx Mysql PHP
1. nginx简介
Nginx ("engine x")
是一个高性能的 HTTP 和 反向代理 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2011 年 6 月 1 日,nginx 1.0.4 发布。Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师
Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、新浪、网易、腾讯等
Tengine
是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。 Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。(可以这样理解:淘宝拿到了 Nginx
源代码之后,进行了功能的填充,优化等等,然后提交给 Nginx 官方,但是由于 Nginx 官方相应慢或者不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循
GPL 的原则上进行二次开发,于是就出了现在的 Tengine 这个版本)。
Nginx 是过 php-fpm 这个服务来处理 php 文件。
Nginx
和 php-fpm 是各自独立运行,所以在运行过程中,Nginx 和 php-fpm 都需要分别启动!
2.
安装nginx
用到的软件版本如下,软件统一放到一个目录里面方便使用。
libmcrypt-2.5.8
mysql-5.6.26
nginx-1.8.0
pcre-8.37
php-5.6.13
服务器IP为192.168.1.61
1) 解决依赖
yum
install gcc gcc-c++ autoconf automake -y
yum
install zlib zlib-devel openssl openssl-devel -y
tar
xvf pcre-8.37.tar.bz2 -C /usr/local/src/
2)解压、编译、安装
(1) 解压nginx压缩包
tar
xvf nginx-1.8.0.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.8.0
(2)编译&&安装nginx
./configure--prefix=/usr/local/nginx--with-http_dav_module--withhttp_stub_status_module--with-http_addition_module--with-http_sub_module--with-http_flv_module--withhttp_mp4_module--with-pcre=/usr/local/src/pcre-
8.37
make -j 4
make install
3)新建用于运行nginx的用户
useradd -M -s /sbin/nologin nginx
4)配置nginx支持php
vim
/usr/local/nginx/conf/nginx.conf
[b]#user
nobody;
user nginx nginx;#添加此行
……
#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${
root html;
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;#将
scripts 修改为
nginx 的 html,即 Nginx 页面目录,因为要处理的 php 文件也在这个目录下
include fastcgi_params;[/b]
}
5)启动nginx
为nginx命令新建软连接
ln -s /usr/local/nginx/sbin/nignx /usr/bin/nginx
启动nginx
nginx
检查nginx是否启动成功
netstat -anupt | grep nginx
浏览器中输入 http://192.168.1.61 此时显示nginx欢迎界面
6)nginx维护命令
检查配置文件语法是否有错误:
nginx -t
平滑重启nginx:
nginx
-s reload
停止nginx:
nginx -s stop
nginx开机自动启动:
echo "nginx &" >> /etc/rc.local
7)nginx重新编译时注意:
如果后续遇到nginx需要重新编译的情况,需要先查出先前编译nginx时的选项, 使用nginx -V即可查出,把需要添加的编译选项添加到后面即可。
3.
编译安装mysql
1)编译、安装
此处使用脚本mysql.sh进行自动编译,把mysql压缩包和mysql.sh放在同一级目录下,脚本内容如下:
#!/bin/bash
yum remove -y mysql mysql-server
#删除上次使用此脚本解压的mysql文件
rm -rf /usr/local/src/mysql-5.6.26
echo 'This shell will Auto Install Mysql5.6'
yum install -y cmake ncurses-devel
tar -zxf mysql-5.6.26.tar.gz -C /usr/local/src && cd /usr/local/src/mysql-5.6.26
#新建mysql的用户
useradd -M -s /sbin/nologin mysql
mkdir /usr/local/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all - DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql
#编译安装mysql
make -j 4 && make install
chown -R mysql:mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mv /etc/my.cnf /etc/my.cnf.bak
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
sed -i '/^\[mysqld\]/adatadir = /usr/local/mysql/data' /etc/my.cnf
sed -i '/^\[mysqld\]/abasedir = /usr/local/mysql' /etc/my.cnf
#mysql做成服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlsev
chmod +x /etc/init.d/mysqlsev
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
service mysqlsev restart
echo
echo "------------------install success-------------------"
source /etc/profile
echo "source /etc/profile" >> /etc/rc.local
service mysqlsev restart
echo "If you now running mysql and others commands,Please running: source /etc/profile" #安装完成之后执行source /etc/profile
2)启动mysql客户端
mysql
检查是否可以启动。
4. 编译安装php
1)解决依赖
(1)
yum install php-pear
(2)yum install-y
libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype freetypedevel
(3)tar xvf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/libmcrypt-2.5.8/
./configure
--prefix=/usr/local/libmcrypt ; make -j 4 ; make install
2)手动添加库
vim /etc/ld.so.conf,
加入以下内容:
/usr/local/libmcrypt/lib
/usr/local/mysql/lib
添加完后执行命令ldconfig使上述修改的库生效。
echo "ldconfig" >> /etc/rc.local
3)编译安装php
tar
xvf php-5.6.13.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/php-5.6.13
./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php--
with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--withfreetype-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-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr
make -j 4
make install
4)配置php文件和php-fpm文件
php配置文件:
cp
/usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini
php-fpm配置文件:
cp
/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #改名
cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm.ini /etc/init.d/php-fpm
chmod
+x /etc/init.d/php-fpm
chkconfig php-fpm on
5)启动php-fpm
service
php-fpm start
netstat -anupt | grep php-fpm
6)测试LNMP的php支持
ehco "<?php phpinfo() ?>" > /usr/local/nginx/html/index.php
浏览器访问http://192.168.1.61/index.php看是否可以显示php相关的信息
1. nginx简介
Nginx ("engine x")
是一个高性能的 HTTP 和 反向代理 服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
2011 年 6 月 1 日,nginx 1.0.4 发布。Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行。由俄罗斯的程序设计师
Igor Sysoev 所开发,供俄国大型的入口网站及搜索引擎 Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx 网站用户有:百度、新浪、网易、腾讯等
Tengine
是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。 Tengine 的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。(可以这样理解:淘宝拿到了 Nginx
源代码之后,进行了功能的填充,优化等等,然后提交给 Nginx 官方,但是由于 Nginx 官方相应慢或者不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循
GPL 的原则上进行二次开发,于是就出了现在的 Tengine 这个版本)。
Nginx 是过 php-fpm 这个服务来处理 php 文件。
Nginx
和 php-fpm 是各自独立运行,所以在运行过程中,Nginx 和 php-fpm 都需要分别启动!
2.
安装nginx
用到的软件版本如下,软件统一放到一个目录里面方便使用。
libmcrypt-2.5.8
mysql-5.6.26
nginx-1.8.0
pcre-8.37
php-5.6.13
服务器IP为192.168.1.61
1) 解决依赖
yum
install gcc gcc-c++ autoconf automake -y
yum
install zlib zlib-devel openssl openssl-devel -y
tar
xvf pcre-8.37.tar.bz2 -C /usr/local/src/
2)解压、编译、安装
(1) 解压nginx压缩包
tar
xvf nginx-1.8.0.tar.gz -C /usr/local/src/ ; cd /usr/local/src/nginx-1.8.0
(2)编译&&安装nginx
./configure--prefix=/usr/local/nginx--with-http_dav_module--withhttp_stub_status_module--with-http_addition_module--with-http_sub_module--with-http_flv_module--withhttp_mp4_module--with-pcre=/usr/local/src/pcre-
8.37
make -j 4
make install
3)新建用于运行nginx的用户
useradd -M -s /sbin/nologin nginx
4)配置nginx支持php
vim
/usr/local/nginx/conf/nginx.conf
[b]#user
nobody;
user nginx nginx;#添加此行
……
#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${
root html;
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;#将
scripts 修改为
nginx 的 html,即 Nginx 页面目录,因为要处理的 php 文件也在这个目录下
include fastcgi_params;[/b]
}
5)启动nginx
为nginx命令新建软连接
ln -s /usr/local/nginx/sbin/nignx /usr/bin/nginx
启动nginx
nginx
检查nginx是否启动成功
netstat -anupt | grep nginx
浏览器中输入 http://192.168.1.61 此时显示nginx欢迎界面
6)nginx维护命令
检查配置文件语法是否有错误:
nginx -t
平滑重启nginx:
nginx
-s reload
停止nginx:
nginx -s stop
nginx开机自动启动:
echo "nginx &" >> /etc/rc.local
7)nginx重新编译时注意:
如果后续遇到nginx需要重新编译的情况,需要先查出先前编译nginx时的选项, 使用nginx -V即可查出,把需要添加的编译选项添加到后面即可。
3.
编译安装mysql
1)编译、安装
此处使用脚本mysql.sh进行自动编译,把mysql压缩包和mysql.sh放在同一级目录下,脚本内容如下:
#!/bin/bash
yum remove -y mysql mysql-server
#删除上次使用此脚本解压的mysql文件
rm -rf /usr/local/src/mysql-5.6.26
echo 'This shell will Auto Install Mysql5.6'
yum install -y cmake ncurses-devel
tar -zxf mysql-5.6.26.tar.gz -C /usr/local/src && cd /usr/local/src/mysql-5.6.26
#新建mysql的用户
useradd -M -s /sbin/nologin mysql
mkdir /usr/local/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all - DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1
-DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql
#编译安装mysql
make -j 4 && make install
chown -R mysql:mysql /usr/local/mysql/
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mv /etc/my.cnf /etc/my.cnf.bak
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
sed -i '/^\[mysqld\]/adatadir = /usr/local/mysql/data' /etc/my.cnf
sed -i '/^\[mysqld\]/abasedir = /usr/local/mysql' /etc/my.cnf
#mysql做成服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlsev
chmod +x /etc/init.d/mysqlsev
echo "PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
service mysqlsev restart
echo
echo "------------------install success-------------------"
source /etc/profile
echo "source /etc/profile" >> /etc/rc.local
service mysqlsev restart
echo "If you now running mysql and others commands,Please running: source /etc/profile" #安装完成之后执行source /etc/profile
2)启动mysql客户端
mysql
检查是否可以启动。
4. 编译安装php
1)解决依赖
(1)
yum install php-pear
(2)yum install-y
libxml2-devel libcurl-devel libjpeg-devel libpng-devel freetype freetypedevel
(3)tar xvf libmcrypt-2.5.8.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/libmcrypt-2.5.8/
./configure
--prefix=/usr/local/libmcrypt ; make -j 4 ; make install
2)手动添加库
vim /etc/ld.so.conf,
加入以下内容:
/usr/local/libmcrypt/lib
/usr/local/mysql/lib
添加完后执行命令ldconfig使上述修改的库生效。
echo "ldconfig" >> /etc/rc.local
3)编译安装php
tar
xvf php-5.6.13.tar.bz2 -C /usr/local/src/ ; cd /usr/local/src/php-5.6.13
./configure--prefix=/usr/local/php--with-config-file-path=/usr/local/php--
with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--with-iconv-dir--withfreetype-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-fpm--enable-mbstring--with-gd--enable-gd-native-ttf--with-openssl--with-mhash--enable-pcntl--enable-sockets--with-xmlrpc--enable-zip--enable-soap--with-mcrypt=/usr
make -j 4
make install
4)配置php文件和php-fpm文件
php配置文件:
cp
/usr/local/src/php-5.6.13/php.ini-production /usr/local/php/php.ini
php-fpm配置文件:
cp
/usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #改名
cp /usr/local/src/php-5.6.13/sapi/fpm/init.d.php-fpm.ini /etc/init.d/php-fpm
chmod
+x /etc/init.d/php-fpm
chkconfig php-fpm on
5)启动php-fpm
service
php-fpm start
netstat -anupt | grep php-fpm
6)测试LNMP的php支持
ehco "<?php phpinfo() ?>" > /usr/local/nginx/html/index.php
浏览器访问http://192.168.1.61/index.php看是否可以显示php相关的信息
相关文章推荐
- Linux自动化安装cobbler
- Linux下undefined reference to ‘pthread_create’问题解决
- Linux中iptables基础命令
- linux下使用vim修改jar包zip包内文件内容
- linux安全机制学习
- CentOS 7 yum安装配置mysql
- Windows原生运行Linux的技术细节
- Linux教程:如何查找并移除Ubuntu上陈旧的PPA仓库
- CentOS7配置防火墙
- Linux画图工具gnuplot
- linux epoll浅析
- Centos安装php高版本
- Linux、开源软件发展史
- CentOS下Hive2.0.0单机模式安装详解
- Linux学习笔记之四
- 授权给指定用户,使用navicat在其他ip都可以连接linux服务器上的mysql库
- Linux软件包管理基本操作入门
- Linux文件分割与合并:split & cat命令
- Linux学习笔记之三
- Linux 利用hosts.deny 防止暴力破解ssh