资讯专栏INFORMATION COLUMN

如何搭建LNMP环境

isaced / 2107人阅读

摘要:最新版请看如何搭建环境编译版环境注意的安装需要的内存否则会安装失败。例如,启用此选项设置为,将下载谷歌所使用的测试套件运行单元测试。登录成功后,输入以下字符,来修改密码,比如我要修改密码为写一个程序,来测试是否能否正常连上

最新版请看:如何搭建LNMP环境【编译版】
环境

centos-7.2 nginx-1.10.1 php-7.0.12 mysql-5.7.16

注意:MySQL5.7的安装需要1G的内存!!!否则会安装失败。
安装流程

首先卸载系统预安装的LAMP软件

rpm -qa|grep httpd 
rpm -e httpd httpd-tools
rpm -qa|grep mysql
rpm -e mysql mysql-libs
rpm -qa|grep php
rpm -e php-mysql php-cli php-gd php-common php
yum -y remove httpd*
yum -y remove mysql-server mysql mysql-libs
yum -y remove php*

添加用户(添加用户和用户组 www 和 mysql,并且禁止登录)。
www用户主要是用来赋予nginx和php执行权限,mysql主要是赋予给mysql权限,禁止登录是为了防止用户有权限去操作www和mysql,一切为了安全:

groupadd www
useradd -s /sbin/nologin -g www www
groupadd mysql
useradd -s /sbin/nologin -g mysql mysql

添加预安装包

yum -y install wget gcc gcc-c++ libxml2 libxml2-devel pcre pcre-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel libxslt libxslt-devel autoconf cmake ncurses ncurses-devel libxslt libxslt-devel

我一般都会将安装包放到/usr/local/src目录中,所以先执行下面的命令

cd /usr/local/src

首先安装libmcrypt包。

yum install -y epel-release
yum clean all
yum makecache
yum install -y libmcrypt libmcrypt-devel

安装 nginx

cd /usr/local/src
wget -c http://nginx.org/download/nginx-1.10.1.tar.gz
tar zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
make && make install 

启动nginx的命令是:

/usr/local/nginx/sbin/nginx

./configure 参数解释:

--prefix=/usr/local/nginx #nginx的安装路径
--user=www #设置nginx工作进程的用户
--group=www #设置nginx工作进程的用户组
--with-http_ssl_module #使用https协议
--with-http_stub_status_module #提供查看服务器统计信息的能力
--with-http_v2_module #提供HTTP/2服务。从nginx1.9.5开始,http_v2_module 已经替换了http_spdy_module。所以安装之前的版本将该参数替换为--with-http_spdy_module(启动SPDY支持,SPDY可以缩短网页的加载时间,但是必须使用ssl传输协议)
--with-http_gzip_static_module #启用预压缩(gzip)的支持
--with-ipv6 #支持ipv6访问
--with-http_sub_module #启用过滤器支持

安装php

cd /usr/local/src
wget -c http://cn2.php.net/distributions/php-7.0.12.tar.gz
tar zxf php-7.0.12.tar.gz
cd php-7.0.12
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --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 --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl
make && make install 

这样php就安装完成了。然后接下来创建软连接:

ln -sf /usr/local/php/bin/php /usr/local/bin/php

复制php.ini配置文件

cp /usr/local/src/php-7.0.12/php.ini-production /usr/local/php/etc/php.ini

这时候php就已经安装完成了。接下来就是启用php-fpm服务了。

首先生成配置文件

mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

启动php-fpm的准备工作

cp /usr/local/src/php-7.0.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig php-fpm on

这个时候,使用如下命令就可以启动php-fpm了

service php-fpm start

启动起来之后,编辑nginx配置文件,实现nginx的代理访问,找到如下代码:

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  /script$fastcgi_script_name;
  #  include        fastcgi_params;
  #}

把前面的#注释符号去掉,把script改成$document_root,第二行 html 改成你的项目路径,这里我设置的/home/www/default,你也可以设置自己喜欢的目录 最终代码如下:

location ~ .php$ {
    root           /home/www/default;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  /$document_root$fastcgi_script_name;
    include        fastcgi_params;
}

修改完成之后,先执行nginx配置检测命令,如果没有错误就执行重新加载配置文件的命令:

/usr/local/nginx/sbin/nginx -t #配置检测命令
/usr/local/nginx/sbin/nginx -s reload #动态加载配置命令

我们去/home/www/default目录下创建一个php文件。浏览一下是否正常:

记得对/home/www/default进行赋权:

chown www.www /home/www/default -R

如果能正确的显示php的当前信息,就说明我们工作已经完成了一大半了。下面接下来安装mysql:

mysql5.7.5之后版本都要安装boost包。所以我选择是下载已经自带boost安装包的mysql安装包:

cd /usr/local/src
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.16.tar.gz
tar zxvf mysql-boost-5.7.16.tar.gz
cd mysql-5.7.16/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=boost -DENABLE_DOWNLOADS=1
make && make install
chown -R mysql:mysql /usr/local/mysql #对mysql目录进行赋予权限

mysql configure 安装参数解释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装路径
-DDEFAULT_CHARSET=utf8mb4 #默认使用utf8mb4字符
-DDEFAULT_COLLATION=utf8mb4_general_ci #校验字符
-DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb引擎 
-DWITH_BOOST=boost #指定boost的安装位置
-DENABLE_DOWNLOADS #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

生成mysql配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

对数据库进行初始化,这个时候初始化的时候,屏幕上会出现初始化的密码,记下来,如果错过了,可以通过查看/root/.mysql_secret来查看之前的初始化密码:

/usr/local/mysql/bin/mysqld --initialize --user=mysql

复制文件mysql.server 可以使用service 命令进行控制

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start #启动mysql

登录数据库修改密码

/usr/local/mysql/bin/mysql -u root -p

输入密码回车。登录成功后,输入以下字符,来修改密码,比如我要修改密码为root

set password = password("root");

写一个php程序,来测试mysql是否能否正常连上MySQL:

 "set names utf8mb4", PDO::ATTR_TIMEOUT => 1));
var_dump($pdo);
?>

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21498.html

相关文章

  • 基于 LNMP 搭建个人网站的填坑之旅

    摘要:博客搬家原地址原发表时间本文讨论使用安装包构建网站底层服务后,包括域名解析,的管理等的一系列填坑历程。域名解析问题相关首先将本人的网站信息公布如下域名地址主机提供方搬瓦工域名托管及解析阿里云万网本文之后的内容均是基于以上信息。 「博客搬家」 原地址: CSDN 原发表时间: 2016-11-16 本文讨论使用 LNMP 安装包构建网站底层服务后,包括域名解析,MySQL 的管理等...

    B0B0 评论0 收藏0
  • 基于Vagrant搭建可移植的lnmp开发环境

    摘要:前言使用搭建开发环境可以避免团队开发带来的开发环境不一致问题,避免了很多不必要的麻烦,同时其分发机制也也有利于新来的同事立即部署适合于公司的开发环境,非常便利,是很多互联网公司的首选。因此,学习如何搭建基于的开发环境是很有必要的。 前言 使用vagrant搭建开发环境可以避免团队开发带来的开发环境不一致问题,避免了很多不必要的麻烦,同时其分发机制也也有利于新来的同事立即部署适合于公司的...

    summerpxy 评论0 收藏0
  • 分解docker在lnmp环境搭建中的作用

    摘要:如果不用我们可能将上述讲的命令每搭建一次就需要执行一遍,有没有能统一管理的有,就是在环境搭建中的作用快速创建镜像,快速创建并运行容器,实现统一管理。 前言 初学者在dcoker学习过程中,可能不太清楚docker中那么多的命令,参数,工具在lnmp环境搭建中起了什么作用,下面跟着我来熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 镜像,容器,仓库 镜像:Docker 镜像...

    tommego 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<