开源高效之LNMP环境搭建

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

开源高效之LNMP环境搭建

LNMP是一个缩写,指的是一组一起使用来运行动态网站或者服务器的自由软件:包括Linux操作系统、Nginx网络服务器、MySQL数据库和PHPPerl或者Python。由于它们的开源廉价,这个组合开始流行,LNMP正在进军主流计算机市场。 

Nginx是一个小巧而高效的Linux下的Web服务器软件,它占用资源少,支持并发连接数多,及相当稳定,尤其作为反向代理服务器性能最佳, Nginx 同时也是一个非常优秀的邮件代理服务器及在CDN网络架构中的分发装置来实现负载均衡,官网http://nginx.org

MySQL是一个小型关系型数据库管理系统,它的体积小、速度快、成本低,称为中小型企业的首选。官网http://www.mysql.com/

PHP是一种HTML内嵌式的语言,它是开源、免费的,并且使用非常广泛。PHP 无疑是一种高效率的选择

好了,下面开始LAMP的搭建之旅

1、准备好所需的源码包如下:

nginx-1.0.11.tar.gz

mysql-5.5.15-linux2.6-i686.tar.gz

php-5.3.7.tar.bz2

phpMyAdmin-2.11.10.1-all-languages.zip

你可以分别到他们的官网去下载最新版本如果需要

2、必须查看linux系统的预编译环境命令yum grouplist

Legacy Software Development  传统的软件开发

Development Libraries   开发库

Development Tools   开发工具

X Software Development   X图形界面下的开发或者使用Gnome或是Kde图形界面

以上四个组安装了就会省去安装很多依赖。

如果没安装,用yum groupinstall  "Legacy Software Development" 命令来一一进行安装

3、开始安装nginx(你要将安装的源码包上传到服务器上⊙ ⊙ )!)

       先安装pcre-devel  及建立nginx服务的指定组及用户

       yum -y install pcre-devel 

       groupadd -r nginx

       useradd -r -g nginx -s /bin/false -M nginx

     下面安装nginx-1.0.11.tar.gz

     tar -zxvf nginx-1.0.11.tar.gz -C /usr/local/src   解压缩到/usr/local/src/

      cd /usr/local/src/nginx-1.0.11/   切换到解压缩的目录

      ./configure    \            由于参数比较多加一个'"\" 换行输入参数

      --prefix=/usr/local/nginx  \   指定安装目录

      --sbin-path=/usr/sbin/nginx \ 

      --conf-path=/etc/nginx/nginx.conf  \  

    --error-log-path=/var/log/nginx/error.log  \  

    --http-log-path=/var/log/nginx/access.log  \  

    --pid-path=/var/run/nginx/nginx.pid  \    

    --lock-path=/var/lock/nginx.lock \   

    --user=nginx \    

    --group=nginx \   

    --with-http_ssl_module \   

    --with-http_flv_module \     

    --with-http_stub_status_module \   

    --with-http_gzip_static_module \    

    --http-client-body-temp-path=/var/tmp/nginx/client/ \   

--http-proxy-temp-path=/var/tmp/nginx/proxy/ \  

    --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \  

    --with-pcre    支持正则表达式,很重要

   编译安装

make

make  install

   启动nginx服务器并查看端口

   nginx   启动nginx命令

   netstat -tupln |grep nginx

  tcp       0     0 0.0.0.0:80    0.0.0.0:*         LISTEN      10201/nginx: master 

   在客户端测试一下:

好了nginx已经开始工作了,为了启动方便,你可以下载一个nginx启动脚本,并添加一下开机启动会更好。

4、安装Mysql 

tar -zxvf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local/mysql/     声明一下:这个包是一个已经编译好的绿色包,只需要配置一下就可以,节省时间。。。。

cd /usr/local/mysql/

groupadd -r mysql    建立mysql

useradd -r -g mysql -s /sbin/nologin -M mysql  建一个mysql自己的用户

cd /usr/local/mysql/ 切换到mysql目录

chown -R mysql.mysql .   .”表示当前目录

scripts/mysql_install_db --user=mysql  初始化mysql数据库

chown -R root .         改回以前的root用户              

chown -R mysql data

cp support-files/my-medium.cnf /etc/my.cnf  mysql的内存文件

cp support-files/mysql.server /etc/init.d/mysqld  mysql的启动脚本

service mysqld start  启动mysql

[root@localhwsm mysql]# netstat -tupln |grep mysql  查看端口

tcp        0      0 :::3306            :::*         LISTEN      10736/mysqld 

编辑/etc/profile文件,加入一下内容

PATH=$PATH:/usr/local/mysql/bin/  

执行source  /etc/profile命令 使之立即生效

登录mysql,查看数据库

 

mysql设置密码,加强安全

mysqladmin -u root -p password "love123" 

指定库路径 

/etc/ld.so.conf.d/目录下新建一个mysql.conf文件添加mysql的库路径入下一句话:

/usr/local/mysql/lib/

在执行命令ldconfig  重新让系统加载

ldconfig -pv |grep mysql 查看是否加载

指定头文件

建立一个软连接即可

ln -s /usr/local/mysql/include/ /usr/include/mysql

设置开机启动

 

5、安装PHP

先安装 libmcrypt-2.5.8.tar.gz mhash-0.9.9.9.tar.gz、 mcrypt-2.6.8.tar.gz这三个依赖

tar -zxvf libmcrypt-2.5.8.tar.gz -C /usr/local/src 

/usr/local/src/libmcrypt-2.5.8

Cd  /usr/local/src/libmcrypt-2.5.8

./configure

Make

Make install

tar -zxvf mhash-0.9.9.9.tar.gz -C /usr/local/src

cd /usr/local/src/mhash-0.9.9.9/

./configure

Make

Make install

为上面两个建立一个到/usr/lib的软连接解决mcrypt的依赖

ln -s /usr/local/lib/libmcrypt* /usr/lib 

ln -s /usr/local/lib/libmhash.* /usr/lib/

tar -zxvf mcrypt-2.6.8.tar.gz -C /usr/local/src/

Cd  /usr/local/src/mcrypt-2.6.8

./configure

Make

Make install

 tar -jxvf php-5.3.7.tar.bz2 -C /usr/local/src  解压缩到/usr/local/src/目录下

 cd /usr/local/src/php-5.3.7/   

./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-zlib --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop  --enable-sysvsem --with-curl --with-curlwrappers --enable-fpm --enable-fastcgi --with-mcrypt --with-gd --with-openssl --with-mhash --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap --enable-mbstring

make     //编译

make install   //安装

cp  /usr/local/src/php-5.3.7  php.ini-development  /usr/local/php/php.ini  将php的配置文件拷贝到php的安装目录 

ln -s /usr/local/php/bin/php /usr/bin/

    这里使用nginx调用php的时候使用fpm的方式,我所用的php 5.3.7加入了对php-fpm的支持了,不需要额外安装了

[root@localhwsm php]# cp etc/php-fpm.conf.default  etc/php-fpm.conf  在php安装目录下

编辑php-fpm.conf文件如下:

mkdir /var/run/php-fpm

/usr/local/php/sbin/php-fpm    启动php-fpm
启动错误解决:
ALERT: [pool www] pm.min_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.min_spare_servers 去除;,注意非注释内容pm.min_spare_servers
ALERT: [pool www] pm.max_spare_servers(0) must be a positive value
编辑php-fpm.conf找到pm.max_spare_servers 去除;,同样非注释内容pm.max_spare_servers
WARNING: [pool www] pm.start_servers is not set. It's been set to 20.
编辑php-fpm.conf找到pm.start_servers 去除;,同样非注释内容pm.start_servers
ERROR: bind() for address '127.0.0.1:9000' failed: Address already in use (98)
# netstat -ntlpps -ef|grep php查看进程,N多进程
nobody 26152 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26153 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26154 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26155 26151 0 15:45 ? 00:00:00 php-fpm: pool www
...........................
#killall php-fpm 结束所有php-fpm进程
再启动php-fpm
#/usr/local/php/sbin/php-fpm
成功   

7、修改nginx.conf配置文件如下:

 

 

重启nginx 

pkill  nginx     杀死进程

nginx           启动 也也已直接使用一条命令pkill -1 nginx 

8、测试

echo "<?php phpinfo();  ?>" > /usr/local/nginx/html/index.php  一个小的php代码调用php

编辑index.php如下:

9、安装phpmyadmin

unzip phpMyAdmin-2.11.10.1-all-languages.zip  解压缩

mv phpMyAdmin-2.11.10.1-all-languages /usr/local/nginx/html/phpmyadmin   转移到html目录下并改名phpmyadmin

 cd /usr/local/nginx/html/phpmyadmin/  切换到该目录下

 cp config.sample.inc.php config.inc.php

 vim config.inc.php 如下:

在客户端访问

输入用户名密码即可,至此基本的LNMP环境已经搭建好了。。。。



本文转自 abc16810 51CTO博客,原文链接:http://blog.51cto.com/abc16810/1059231

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
监控 Linux PHP
Linux(CentOS7上演示)上使用LNMP搭建一个PHP的运行环境,并搭建一个开源的个人博客网站I(下)
Linux(CentOS7上演示)上使用LNMP搭建一个PHP的运行环境,并搭建一个开源的个人博客网站I(下)
53 0
|
7月前
|
关系型数据库 MySQL Linux
Linux(CentOS7上演示)上使用LNMP搭建一个PHP的运行环境,并搭建一个开源的个人博客网站I(上)
Linux(CentOS7上演示)上使用LNMP搭建一个PHP的运行环境,并搭建一个开源的个人博客网站I(上)
111 0
|
关系型数据库 MySQL 应用服务中间件
LAMP & LNMP及简单环境搭建
LAMP & LNMP及简单环境搭建
150 0
|
关系型数据库 MySQL 应用服务中间件
LNMP环境搭建
LNMP环境搭建
158 0
|
弹性计算
ECS实践--ECS部署LNMP开源企业网站
LNMP 是最亲民的架构,非常适合个人站长搭建网站,PbootCMS 就是lnmp 中一个优秀的开源系统,今天我们在阿里云ECS上来完成搭建,作为我们上云的第一个系统。
152 1
|
弹性计算 小程序 网络协议
ECS新人用户快速完成LNMP环境搭建、域名注册、SSL证书申请
服务器新人快速上手ECS的亲身经验体会,基于阿里云ecs.t6-c1m2.large ,使用centOS操作系统。
469 0
ECS新人用户快速完成LNMP环境搭建、域名注册、SSL证书申请
|
缓存 负载均衡 关系型数据库
ECS云服务器训练营第六天----LAMP和LNMP环境搭建
LAMP 的全称是Linux + Apache + Mysql +Php; LNMP 的全称是Linux + Nginx + Mysql +Php; LAMP和LAMP的每一个字母都是每一个软件的开头第一个字母,代表一个软件名;两者最大的区别是web服务器不同;
1500 0
ECS云服务器训练营第六天----LAMP和LNMP环境搭建
|
Web App开发 关系型数据库 应用服务中间件
Wordpress+LNMP 环境搭建
 Wordpress+LNMP 环境搭建笔记 2017-08-22 11:23:39 一、搭建LNMP环境(Centos 6.8 64) 1、使用 yum 安装 Nginx:    yum install nginx -y 2、修改 /etc/nginx/conf.
1297 0
|
Web App开发 前端开发 关系型数据库
Linux——LNMP环境搭建
一、LNMP环境概述 1、什么是LNMP环境 LNMP 是 Linux + Nginx + MySQL/Mariadb + PHP 的组合缩写。 Nginx:是一个web服务器,提供HTTP 服务。MySQL/MariaDB:关系型数据库,用来存放数据(例如账号信息等)PHP:是一种编程语言。
4260 0
|
关系型数据库 应用服务中间件 PHP