LNMP安装详情
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP安装详情相关的知识,希望对你有一定的参考价值。
在LNMP平台的四个组件中,每个组件都承担着一部分关键作用。经过时间年的发展,各组件的兼容性的道路不断的完善,协作能力与稳定性不断增强,可以构建出非常优秀的的WEB应用系统。各组件的主要要求如下。(以下需要的所有源码包全部在这个链接中http://pan.baidu.com/s/1eSj99bc)
一:LNMP 主要分为 Linux nginxmysql php。
1.Linux操作系统:作为lnmp的建构基础,提供用于支撑WEB站点的操作系统,能够与其他三个组件提供更好的稳定性、兼容性(AMP组件也支持Windows、UNIX等操作系统)
2.nginx 专为性能优化而开发,其最知名的优点是他稳定性和低系统资源消耗,以及对HTTP并发连接的最高处理性能(单单台物理服务器可支持30000-50000个并发请求)。
3.MySQL 数据库服务器:作为lnmp建构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等都可以存储到MySQL数据库中,其他程序可以通过SQL语句来查询、更改这些信息。
4.PHP/Perl/Python 网页编程语言:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供WEB应用程序的开发和运行环境。其中PHP 是一种被广泛应用的开源代码的多用途脚本语言,它可以嵌入到html中,尤其适合WEB应用开发。
二:lnmp平台的应用优势
1.成本低廉
2.可定制
3.易于开发
4.方便应用
5.安全和稳定
第一步:安装Linux操作系统
(我们用电脑安装一个VMware Workstation Pro 用来安装操作系统)
第二步:安装nginx
首先我们先安装依赖包以及编译包
yum install -ypcre-devel zlib-devel gcc gcc-c++ make
接着我们来解压源码包到/opt目录下(nginx-1.2.8.tar.gz)
创建一个属于nginx的用户
useradd -M -s/sbin/nologin nginx
进入/opt/ nginx-1.2.8进行源码包编译
./configure \
--prefix=/usr/local/nginx\
--user=nginx \
--group=nginx \
--with-http_stub_status_module && \
make && makeinstall
编译完成之后检查是否编译错误
echo $?(输出为0时表示编译正确不为0则错误)
创建软连接(相当于windows的快捷方式)
ln -s/usr/local/nginx/sbin/nginx /usr/local/sbin/
检查nginx
nginx -t
制作管理脚本(方便使用service命令进行管理)
vi/etc/init.d/nginx
#!/bin/bash
# chkconfig: 35 9920
# description:Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case"$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0{start|stop|restart|reload}"
exit 1
esac
exit 0
给管理脚本添加可执行权限
chmod +x/etc/init.d/nginx
添加service管理
chkconfig –addnginx
配置统计页面
先进入/usr/local/nginx/conf
给配置文件做备份
mv nginx.confnginx.conf.back
过滤配置文件的注释(以#号开头的字符都是注释)
grep -v"#" nginx.conf.back > nginx.conf
编辑配置文件
vim nginx.conf
在index index.html index.htm;括号结束插入(大约在32行左右)
location ~ /status{
stub_status on;
access_log off;
}
解释
{ location ~/status { //访问位置为/status
stub_status on; //打开状态统计功能
access_log off; //关闭此位置的日志记录
}
配置虚拟主机
先创建网页文件
mkdir -p/var/www/accp
mkdir -p/var/www/benet
然后输入html到网页中
echo <h1> accp</h1> > /var/www/accp/index.html
echo <h1> benet</h1> > /var/www/benet/index.html
在nginx.conf末尾添加(在配置文件的末尾单独插入就不会有影响,注意格式,主要就是注意括号问题!)
server {
server_name www.benet.com;
location / {
root /var/www/benet;
index index.html index.php;
}
}
server {
server_name www.accp.com;
location / {
root /var/www/accp;
index index.html index.php;
}
}
}
}(最后这个括号是原来的)
配置完成后用nginx –t检查是否有问题(没有问题输出如下)
nginx: the configurationfile /usr/local/nginx/conf/nginx.conf syntax is ok
nginx:configuration file /usr/local/nginx/conf/nginx.conf test is successful
在宿主机上的host文件末尾添加
虚拟机ip地址www.benet.com
虚拟机IP地址www.accp.com
开启nginx
Nginx
关闭防火墙
service iptablesstop
进行测试
用浏览访问www.accp.com和www.accp.com
到此为止nginx配置完成
第三步:安装mysql
安装一个mysql的依赖包
yum install –y ncurses-devel
解压mysql源码包到/opt/目录下(版本mysql-5.5.24.tar.gz)
tar -zxfmysql-5.5.24.tar.gz -C /opt/
安装mysql的编译软件cmake(版本cmake-3.6.3.tar.gz)
解压cmake的源码包到/opt/目录下
tar -zxfcmake-3.6.3.tar.gz -C /opt/
进入/opt/ cmake-3.6.3/
cd/opt/cmake-3.6.3/
进行源码包编译
./configure&& make && make install
检查编译是否正确
echo $?
进入到/opt/ mysql-5.5.24/目录下进行编译
cd/opt/mysql-5.5.24/
进行源码包编译
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DWITH_EXTRA_CHARSETS=all\
-DSYSCONFDIR=/etc\
-DMYSQL_DATADIR=/home/mysql/\
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock\
-DWITH_MYISAM_STORAGE_ENGINE=1\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DENABLED_LOCAL_INFILE=1\
-DWITH_SSL=system\
-DMYSQL_TCP_PORT=3306\
-DENABLE_DOWNLOADS=1\
-DWITH_SSL=bundled&& \
make &&make install
拷贝文件便于mysql启动
cpsupport-files/my-medium.cnf /etc/my.cnf
cpsupport-files/mysql.server /etc/init.d/mysqld
给启动文件添加可执行权限
chmod 755/etc/init.d/mysqld
添加service更好的管理mysql
chkconfig --add/etc/init.d/mysqld
配置开机自启
echo"PATH=$PATH:/usr/local/mysql/bin/" >> /etc/profile
运行脚本
./etc/profile
添加mysql的用户(为了系统的安全性所以不允许mysql用户登录)
useradd mysql -s /sbin/nologin
给mysql可读权限
chown -Rmysql.mysql /usr/local/mysql
初始化数据库
/usr/local/mysql/scripts/mysql_install_db\
--user=mysql \
--ldata=/var/lib/mysql\
--basedir=/usr/local/mysql\
--datadir=/home/mysql
创建软连接
ln-s/var/lib/mysql/mysql.sock/home/mysql/mysql.sock
到此为止mysql配置结束
开启mysql
service mysqldstart
登录mysql
mysql
第四部:安装PHP
先安装PHP的依赖包
yum -y install \
libjpeg-devel \
libpng-devel \
freetype-devel \
zlib-devel \
gettext-devel \
libXpm-devel \
libxml2-devel \
fontconfig-devel \
openssl-devel \
bzip2-devel
解压PHP源码包到/opt目录下(版本php-5.6.11.tar.bz2)
tar -jxfphp-5.6.11.tar.bz2 -C /opt/
进入/opt/ php-5.6.11目录
cd/opt/php-5.6.11/
编译PHP(编译过程中有warning属于正常)
./configure \
--prefix=/usr/local/php5\
--with-gd \
--with-zlib \
--with-mysql=/usr/local/mysql\
--with-config-file-path=/usr/local/php5\
--enable-mbstring\
--with-jpeg-dir \
--with-openssl \
--disable-ipv6 \
--enable-fpm&& \
make &&make install
编译完成之后我们用echo $?来检查编译是否出问题
(输出为0时表示编译正确不为0则错误)
echo $?
拷贝模板到PHP所在的目录下
cpphp.ini-development /usr/local/php5/php.ini
做软连接方便管理
ln -s/usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/*/usr/local/sbin/
为PHP安装加速器
解压加速器源码包到/opt目录下(版本ZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz)
Tar–zxfZendGuardLoader-php-5.3-linux-glibc23-i386.tar.gz–C /opt/
进入加速器源码包的PHP目录下
cdZendGuardLoader-php-5.3-linux-glibc23-i386/php-5.3.x
把配置文件拷贝到PHP目录下
cpZendGuardLoader.so /usr/local/php5/lib/php
让PHP识别加速器,编辑配置文件
vi/usr/local/php5/php.ini
在末尾添加
[Zend GuardLoader]
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
开启nginx支持PHP功能
进入到cd /usr/local/php5/etc/
把配置备份文件变成配置文件
cp php-fpm.conf.default php-fpm.conf
为PHP创建用户
useradd -M -s/sbin/nologin php
修改配置文件(修改以下配置文件)
pid =run/php-fpm.pid
user = php
group = php
pm.max_children=50
pm.start_servers =20
pm.min_spare_servers= 5
pm.max_spare_servers= 35
开启加速器
/usr/local/sbin/php-fpm
检查是否开启
netstat -tnal |grep 9000
让nginx支持PHP功能
编辑nginx的配置文件
vi/usr/local/nginx/conf/nginx.conf
在location条目下面添加
location ~ \.php${
root /var/www/benet;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
保存退出后检查配置是否有问题
nginx –t
编辑测试页
vim/var/www/benet/index.php
添加以下内容
<?php
phpinfo();
?>
在网页测试“http://192.168.10.188/index.php”输入这个,后面还是要直接写
“index.php”的,虽然写了“fastcgi_index index.php;”这个支持php格式的,
但还是不支持的
建立数据库,授权
mysql -u root
mysql> CREATEDATABASE sky;
mysql>GRANT allON sky.* TO ‘skyuser‘@‘%‘ IDENTIFIED BY ‘admin123‘;
mysql>flushprivileges;
测试数据库
编辑的php配置文件
vi/var/www/benet/index.php
(删除原来的内容添加以下内容)
<?php
$link=mysql_connect(‘192.168.10.188‘,‘skyuser‘,‘admin123‘);
if(!$link) echo"Fail !!";
else echo"Success !!";
mysql_close();
?>
如果输出的是Success!!那么表示你成功了
之后我们要在lnmp的建构上可以安装论坛、网页等。
下一个博客会发表web的缓存、双机热备份、等
本文出自 “11774535” 博客,请务必保留此出处http://11784535.blog.51cto.com/11774535/1932106
以上是关于LNMP安装详情的主要内容,如果未能解决你的问题,请参考以下文章
转:LNMP虚拟主机PHP沙盒绕过/命令执行(php exec命令被禁之后)