奔三路 - 你30岁前的学习路!

奔三路学习网

当前位置: 主页 > 挨踢职场 >

LNMP环境搭建(CentOS7+Nginx1.10.1+MySQL5.6.31+PHP5.6.22)

时间:2017-10-19 10:54来源: 作者:
零、准备工作安装wget:yum install wget -y安装gcc及g++:yum install gcc gcc-c++ -y后续所有源代码都下载到/usr/local/src目录防火墙更改配置及关闭selinux见另一篇文章《LAMP环境搭建》一、安装Nginx

零、准备工作

安装wget:yum install wget -y

安装gcc及g++:yum install gcc gcc-c++ -y

后续所有源代码都下载到/usr/local/src目录

防火墙更改配置及关闭selinux见另一篇文章《LAMP环境搭建》

一、安装Nginx

Nginx依赖pcre(重写rewrite)、zlib(网页gzip压缩)及openssl(加密传输)。

1、安装pcre

[root]wget http://pilotfiber.dl.sourceforge.net/project/pcre/pcre/8.38/pcre-8.38.tar.gz

[root]tar -xvzf pcre-8.38.tar.gz

[root]cd pcre-8.38

[root] ./configure –prefix=/usr/local/pcre

[root]make && make install

2、安装zlib

[root]wget http://zlib.net/zlib-1.2.8.tar.gz

[root]tar -xvzf zlib-1.2.8.tar.gz

[root]cd zlib-1.2.8

[root] ./configure –prefix=/usr/local/zlib

[root]make && make install

3、安装openssl

[root]wget http://www.openssl.org/source/openssl-1.0.2h.tar.gz

[root]tar -xvzf openssl-1.0.2h.tar.gz

[root]cd openssl-1.0.2h

[root] ./config –prefix=/usr/local/openssl

[root]make && make install

4、安装Nginx

为了安全起见,创建一个nginx账号专门用于运行nginx,当然为了简便直接用root账号运行的话(不推荐),就不需要创建nginx账号及将nginx相关文件开放权限给nginx账号。

[root]groupadd nginx

[root]useradd -g nginx nginx -s /bin/false#该账号只用于运行nginx及相关软件,不能登录

[root]wget http://nginx.org/download/nginx-1.10.1.tar.gz​

[root]tar -xvzf nginx-1.10.1.tar.gz​

[root]cd nginx-1.10.1

[root] ./configure –prefix=/usr/local/nginx –user=nginx –group=nginx –with-http_ssl_module –with-http_realip_module –with-http_image_filter_module –with-http_sub_module –with-http_gzip_static_module –with-http_stub_status_module –with-pcre=/usr/local/src/pcre-8.38 –with-zlib=/usr/local/src/zlib-1.2.8 –with-openssl=/usr/local/src/openssl-1.0.2h

[root]make && make install

提示:./configure –help可以查看编译选项

5、配置Nginx

1)修改配置文件

[root]vi /usr/local/nginx/conf/nginx.conf

若需要,则将http -> server -> server_name改为服务器的外网ip地址,或你的网站域名​

2)配置开机自启动

方法一:在/etc/rc.d/rc.local文件最后增加一行脚本

[root]/usr/local/nginx/sbin/nginx

方法二:将Nginx加入服务,新增/etc/init.d/nginx脚本,内容请见nginx脚本,然后设置开机自启动:

[root]chmod +x /etc/init.d/nginx

[root]chkconfig nginx on #设置开启自启动后会自动将其加入服务

3)启动Nginx

若Nginx已加入服务,则用service命令启动服务

[root]service nginx start

否则运行Nginx程序

[root]/usr/local/nginx/sbin/nginx

二、安装MySQL

1、安装ncurses-devel

[root]yum install ncurses-devel -y

2、安装cmake

[root]wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

[root]tar -xvzf cmake-3.5.2.tar.gz

[root]cd cmake-3.5.2

[root] ./configure –prefix=/usr/local/cmake

[root]make && make install

[root]export PATH=$PATH:/usr/local/cmake/bin#临时加入PATH环境变量

3、安装mysql

同nginx一样,创建一个mysql账号专门用于运行mysql

[root]groupadd mysql

[root]useradd -g mysql mysql -s /sbin/false

[root]wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz

[root]tar -xvzf mysql-5.6.31.tar.gz

[root]cd mysql-5.6.31

[root]cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \#mysql安装到的路径

-DSYSCONFDIR=/etc \  #mysql配置文件(my.cnf)路径

-DMYSQL_DATADIR=/usr/local/mysql/data \ #data目录路径

-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \  #sock存放路径

-DDEFAULT_CHARSET=utf8 \  #默认字符集

-DDEFAULT_COLLATION=utf8_general_ci#默认字符集校验

[root]make && make install

4、配置mysql

以下所有操作都在/usr/local/mysql路径下执行。

1)初始化数据库

[root]scripts/mysql_install_db –user=mysql –datadir=/usr/local/mysql/data

2)拷贝配置文件

[root]cp support-files/my-default.cnf /etc/my.cnf

3)启动mysql

[root]cp support-files/mysql.server /etc/init.d/mysqld#服务名也可以取做mysql,随你

[root]chkconfig mysqld on

[root]service mysqld start

4)修改mysql的root账号密码

[root]bin/mysql_secure_installation

然后设置密码,并进行一些配置

5)登录mysql

[root]mysql -uroot -p

然后输入密码登录。若运气不好的话(比如我),输入密码登录,里面关闭,并输出segment fault提示,那么就需要修改源代码并重新编译安装了。打开/usr/local/src/php.5.6.31/cmd-line-utils/libedit/terminal.c,在terminal_set函数中:

a、注释char buf[TC_BUFSIZE];一行

b、将area = buf改成area = NULL

然后重新编译安装。

三、安装php

本文最小安装php。

1、安装php

[root]wget http://cn2.php.net/distributions/php-5.6.22.tar.bz2

[root]tar -xvjf php-5.6.22.tar.bz2

[root]cd php-5.6.22

[root]./configure  –prefix=/usr/local/php  –with-config-file-path=/usr/local/php/etc  –with-png-dir=/usr/local/libpng  –with-jpeg-dir=/usr/local/jpeg  –with-freetype-dir=/usr/local/freetype  –with-zlib-dir=/usr/local/zlib  –with-mcrypt=/usr/local/libmcrypt  –with-libxml-dir=/usr/local/libxml2/  –with-iconv-dir=/usr/local/libiconv  –enable-libxml  –enable-xml  –enable-bcmath  –enable-shmop  –enable-sysvsem  –enable-inline-optimization  –enable-opcache  –enable-mbregex –enable-mysqlnd –with-mysqli=mysqlnd –with-pdo-mysql=mysqlnd –with-mysql_sock=/var/lib/mysql/mysql.sock  –enable-fpm  –enable-mbstring=all  –enable-gd-native-ttf  –with-openssl  –enable-pcntl  –enable-sockets  –with-xmlrpc  –enable-zip  –enable-soap  –without-pear  –with-gettext  –enable-session  –with-curl  –enable-ctype  –enable-shared  –with-gd

[root]make && make install

2、配置php

以下命令都是在/usr/local/php路径下执行。

1)查看php.ini文件存放路径

[root]bin/php –ini

Configuration File (php.ini) Path: /usr/local/php/lib

[root]cp /usr/local/src/php-5.6.22/php.ini-production lib/php.ini

2)配置php.ini

a.关闭在http头中显示php版本信息​

​     expose_php = Off

b. 设置时区

date.timezone = PRC​

3、配置php-fpm

以下命令都是在/usr/local/php路径下执行。

[root]cp etc/php-fpm.conf.default etc/php-fpm.conf

1)去掉25行 ;pid = run/php-fpm.pid  前面的分号,使之生效

2)第148行改为 user = nginx 设置php-fpm运行账号为nginx

3)第149行改为 group = nginx #设置php-fpm运行组为nginx

4)可选。php-fpm默认采用tcp通信,若需要采用unix socket通讯,则配置如下

listen = /dev/shm/php-fpm.sock​

listen.owner = nginx​

listen.group = nginx

4、启动php-fpm

[root]cp /usr/local/src/php-5.6.22/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root]chmod +x /etc/init.d/php-fpm

[root]chkconfig php-fpm on

[root]service php-fpm start

5、配置nginx支持php

[root]vi /usr/local/nginx/conf/nginx.conf

1)顶部行改成 user nginx nginx;

2)将

location ​/ {

root    html;

index index.html index.htm

}​

改为:

​location ​/ {

root    /www;

index index.php index.html index.htm

}​​

注:需要将web根目录/www开放权限给nginx账号:chown nginx:nginx /www

3)取消location ~ \.php$ { 一段的注释,如下:

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

这是php-fpm采用tcp通信时的配置,若其采用unix socket通信,则fastcgi_pass一行需该为:

fastcgi_pass   unix:/dev/shm/php-fpm.sock;

6、配置php支持mysql

其实到这一步,php已经支持mysqli及pdo_mysql了(由于mysql_connect等函数已经废弃,所以在编译php时没有–with-mysql)。但是用mysqli_connect连接本机时,只能使用’127.0.0.1’,而不能使用’localhost’来连接,原因是:mysql通过tcp连接到127.0.0.1,通过unix socket连接到localhost。只要在php.ini设置mysqli及pdo_mysql的default_socket为/var/lib/mysql/mysql.sock即可。貌似在编译php时带上–with-mysql-sock=/var/lib/mysql/mysql.sock选项就不用配置php.ini中的default_socket了。

7、重启php-fpm及nginx

[root]service php-fpm restart

[root]service nginx restart

8、测试nginx对php的支持

新建/www/info.php文件,内容如下:

<?php phpinfo(); ?>

在浏览器中查看:localhost/info.php

9、测试对mysqli及pdo_mysql的支持

新建/www/mysql.php文件,测试mysqli时内容为:

<?php var_dump(mysqli_connect(‘localhost’, ‘root’, ‘111111’)); ?>

测试pdo_mysql时内容为:

<?php var_dump(new PDO(‘mysql:host=localhost;db=mysql’, ‘root’, ‘111111’)); ?>

上面的root和111111为mysql账号和密码。

分别在浏览器中查看:localhost/mysql.php,正常时,显示内容分别含”object(mysqli)“和”object(PDO)“。

内容来自:sturdygrass

(责任编辑:admin)
顶一下
(2)
66.7%
踩一下
(1)
33.3%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
发布者资料
史密斯 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2017-11-24 11:11 最后登录:2018-04-16 22:04
栏目列表
推荐内容

关注奔三路小程序,方便你我他