文档章节

LNMP源码包部署笔记

card123
 card123
发布于 2015/10/23 10:35
字数 1010
阅读 82
收藏 6

一.从官方下载最新版nginx、mysql、php安装包
wget http://nginx.org/download/nginx-1.6.2.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.21.tar.gz

wget http://hk1.php.net/get/php-5.6.3.tar.gz/from/this/mirror

(重命名php安装包,mv mirror php-5.6.3.tar.gz)

二.环境准备(yum安装编译时所依赖的包)
yum install zlib-devel pcre-devel openssl-devel -y
yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel -y
yum install libevent libevent-devel -y 
yum install libxml2 libxml2-devel -y
yum install php-xml php-xml-devel -y
yum install bzip2 bzip2-* -y
yum install gd php-gd -y
yum install zip unzip -y
yum install curl libcurl libcurl-* -y



三.nginx安装
1.添加nginx组和用户
groupadd -r nginx
useradd -r -g nginx -r -s /sbin/nologin nginx


2.创建tmp文件夹
mkdir /var/tmp/nginx


3.编译安装
./configure \
--prefix=/usr/local/nginx \
--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/ \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-pcre


make && makeinstall


4.拷贝配置文件
cd /usr/local/nginx/conf
cp nginx.conf.default nginx.conf


5.启动nginx、停止nginx、重启nginx

启动:

    /usr/local/nginx/sbin/nginx

停止:

    结束nginx直接结束进程就可以,也可以killall -r nginx

    /usr/local/nginx/sbin/nginx -s stop

重新加载配置文件(不重启加载配置文件):

    /usr/local/nginx/sbin/nginx -s reload

添加到开机启动:
    echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local


四.mysql编译安装
1.添加mysql组和用户
groupadd -r mysql
useradd -r -g mysql -r -s /sbin/nologin mysql


2.编译安装
说明:mysql5.5及以后的版本编译方式与之前版本不同 用cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306


make && make install


3.修改mysql配置文件
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
chown -R mysql:mysql /usr/local/mysql


4.初始化mysql
cd /usr/local/mysql
./scripts/mysql_install_db  --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --user=mysql


5.启动方法:
方法1:
启动服务
/etc/init.d/mysqld start
开机启动
chkconfig –add mysqld 




方法2:
cd /usr/local/mysql/bin
./mysqld_safe --user=mysql &
//开机启动
echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local




6.配置mysql用户
/usr/local/mysql/bin/mysqladmin -u root password 123
/usr/local/mysql/bin/mysql -u root -p


五.php编译安装
1.编译安装
./configure \
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql \
--with-pdo-mysql \
--with-openssl \
--enable-fpm \
--enable-sockets \
--enable-sysvshm \
--enable-zip \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-libxml-dir=/usr \
--enable-xml \
--with-config-file-path=/usr/local/php/etc \
--with-config-file-scan-dir=/usr/local/php/etc/php.d \
--with-bz2 \
--with-gd \
--with-curl




make && make install


2.初始化配置文件

拷贝php配置文件到安装目录

# cp php.ini-production /usr/local/php/etc/php.ini 


为php-fpm提供配置文件:
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
编辑php-fpm的配置文件:
# vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值:
pm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10




接下来就可以启动php-fpm了:
# /usr/local/php/sbin/php-fpm


使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
# ps aux | grep php-fpm


六.整合nginx和php5
1、编辑/etc/nginx/nginx.conf,在server范围里添加如下选项:
location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }


并在所支持的主页面格式中添加php格式的主页,类似如下:
在server内修改以下两行
root   html;
index  index.php index.html index.htm;


2.重启nginx服务


3.在/usr/html新建index.php的测试页面,测试php是否能正常工作:
# cat > /usr/html/index.php << EOF
<?php
phpinfo();
?>


通过浏览器访问测试


七.基于域名访问的虚拟主机配置
1.mkdir /usr/local/nginx/conf/vhost
2.在 nginx.conf配置文件 http范围内加上 include vhost/*.conf
3.在/usr/local/nginx/conf/vhost里新建虚拟主机的配置文件,配置文件建议命名:域名.conf
配置文件内容如下:
/usr/local/nginx/conf/vhost/demo.mhj.com
server {
        listen       80;
        server_name  cloud.010host.com;




            root   /data/www/cloud.010host.com;
            index  index.php index.html index.htm;


        #error_page  404              /404.html;


        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        #location = /50x.html {
        #    root   html;
        #}




        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
4.重启nginx,测试


本文转载自:http://www.mhjblog.com/newsshow.php?id=295

共有 人打赏支持
card123
粉丝 0
博文 15
码字总数 3390
作品 0
朝阳
程序员
自动部署LNMP脚本

最近抽时间写了一份LNMP部署脚本,使用源码安装所需软件,源码软件包网络上很容易获取,这里仅贴出脚本内容,大家可以自行在网络上下载对应的软件放在脚本当前目录即可,实际下载的软件包如果...

丁丁历险
2015/12/12
0
0
Liunx笔记:zabbix编译安装

Liunx笔记:zabbix编译安装 前言 之前的yum安装是方便。简单。但是呢,不方便升级。此处来个编译安装。 1.基础环境准备 [root@Aige ~]# cat /etc/redhat-release CentOS release 6.8 (Final...

segastar660
06/29
0
0
部署LNMP环境

部署LNMP环境 1.1 问题 安装部署Nginx、MariaDB、PHP环境 安装部署Nginx、MariaDB、PHP、PHP-FPM; 启动Nginx、MariaDB、FPM服务; 并测试LNMP是否工作正常。 1.2 方案 在RHEL7系统中,源码安...

天亮说再见
2017/11/09
0
0
CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/Perl/Python组合成的动态Web应用程序和服务器,它是一组Web应用程序的基础软件包,在这个基础环境上我们可以搭建任何使...

HMLinux
2017/06/05
0
0
nginx php动态编译加载模块.

#Nginx动态编译加载模块步骤 #查看目前Nginx版本及编译模块 #[root@centos7 ~]# /opt/app/lnmp/nginx-1.12.0/sbin/nginx -V #nginx version: nginx/1.12.0 #built by gcc 4.8.5 20150623 (R......

一招拜师
2017/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway真的有那么差吗?

前言 Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整...

Java小铺
37分钟前
1
0
SpringBoot远程调试,远程debug你的线上项目

开发环境中代码出错了,可以利用IDE的debug功能来进行调试。那线上环境出错呢? 一、假设我们的项目是部署在tomcat中,那我们就需要对tomcat进行一定对配置,配置如下。 1. windows系统中,找...

nonnetta
42分钟前
0
0
JAVA秒杀优化方向

秒杀优化方向 将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小,我们可以通过限流、...

小贱是个程序员
50分钟前
0
0
C# 统计字符串中大写字母和小写字母的个数

static void Main() { int count1 = 0; int count2 = 0; Console.WriteLine("请输入字符串"); string str = Convert.ToString(Consol......

熊二的爸爸是谁
52分钟前
0
0
分布式服务框架之远程通讯技术及原理分析

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是...

老道士
58分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部