欢迎光临
一个有态度、有温度的分享型博客

通过yum的方式在centos上搭建lnmp环境

这篇文章讲述的是通过yum的方式从官方源安装lnmp环境,如果你的环境是接入互联网的,那么推荐这种方式,方便更新。

首先,需要确定的是我们要安装的组建有:

  • linux stable version: nginx-1.10.1;
  • MariaDB 10.1 ;
  • PHP 7.0.9 ;

然后先列出我们接下来分别要进行的步骤:

  • 创建安装所需的用户和用户组;
  • 添加环境依赖包;
  • 安装libiconv,libmcrypt等;
  • 安装nginx;
  • 安装php;
  • 安装mariadb;

下面就正式开始了。

一、创建用户和用户组

我们不使用root用户进行安装部署,而是创建一个新用户admin,一个用户组www,下面是具体创建的脚本:

#创建用户组
groupadd www
#创建用户并指定用户组
useradd -g www admin
#为用户设置密码
passwd admin #然后输入你想设置的密码

更多用户操作请参考这里,然后将新建用户添加到sudo列表中,编辑/etc/sudoers,内容如下:

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
admin    ALL=(ALL)       ALL

至此,用户和用户组创建完毕,然后接下来所有的操作都是在用户admin情况下操作的,如果涉及超级用户权限的时候使用sudo进行操作。

二、添加环境依赖包

#执行下面这条命令,各参数之间以空格分开
sudo yum -y install zlib-devel pcre-devel openssl-devel  gcc gcc-c++  ncurses-devel perl libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  libxml2 libxml2-devel curl-devel libxslt-devel

三、安装nginx

首先新建一个文件:/etc/yum.repos.d/nginx.repo,内容如下

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

上面的具体参数参考[这里],然后执行安装命令:

sudo yum install nginx

nginx安装完成。安装目录在/etc/nginx,而部署目录在/usr/local/share/nginx下。

相关命令:

#停止

nginx -s stop

#重启

nginx -c  nginx.conf

四、安装mariadb

MariaDB的安装也采用yum的方式进行安装,首先新建一个文件:/etc/yum.repos.d/MariaDB.repo,编辑内容如下:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

然后执行安装命令:

sudo yum install MariaDB-server MariaDB-client

五、安装php

首先下载并解压php需要的安装包,命令如下:

sudo wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz && sudo tar xzvf ./libiconv-1.14.tar.gz

sudo wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz && sudo tar xzvf ./libmcrypt-2.5.8.tar.gz

sudo wget http://php.net/distributions/php-7.2.10.tar.gz && sudo tar xzvf ./php-7.2.10.tar.gz

删除不需要的源码包

$ sudo rm -rf *.tar.gz

编译libiconv

cd libiconv-1.14
sudo ./configure --prefix=/usr/local/libiconv-1.14  #安装目录
cd srclib
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ..
sudo make -j2 
sudo make install

编译libmcrypt

cd libmcrypt-2.5.8
sudo ./configure --prefix=/usr/local/libmcrypt-2.5.8
sudo make -j2 
sudo make install

编译PHP

预编译

#进入解压后的目录
cd /home/michael/lnmp/php-7.2.10

#预编译
sudo ./configure --prefix=/usr/local/php-7.2.10 --with-config-file-path=/usr/local/php-7.2.10/etc --with-mysqli=mysqlnd --with-iconv-dir=/usr/local/libiconv-1.14 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-bcmath --enable-inline-optimization --with-curl --with-fpm-user=michael --with-fpm-group=www --enable-mbstring --with-mcrypt=/usr/local/libmcrypt-2.5.8 --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --enable-zip --enable-ftp --without-pear --enable-pdo --with-pdo-mysql=mysqlnd --disable-fileinfo --with-xmlrpc --enable-opcache --enable-fpm --enable-exif

注意:以上各参数以空格隔开,–prefix指定你想要设置的安装目录,–with-iconv-dir指定你前面libiconv的安装目录,–with-fpm-user指定你的用户,–with-fpm-group指定你的用户组,–with-mcrypt需要指定你libmcrypt的安装目录,不然编译PHP时,就算安装了也会提示找不到libmcrypt,请重新安装的错误!

编译安装

sudo make -j2
sudo make test
sudo make install

六、配置环境

至此,我们已经将lnmp环境搭建好了,但是还有一些细节需要配置,从而能够让nginx能够正常解析部署的php文件,具体配置内容如下。

1)首先为php创建配置文件:

将加压后的源码安装包内的 php.ini-production文件复制一份到安装目录(–with-config-file-path=/usr/local/php-7.2.10/etc 参数指定位置)

cp php.ini-development  /usr/local/php-7.2.10/etc/php.ini # 如果是开发就复制php.ini-development

将安装目录/usr/local/php-7.2.10/etc下的php-fpm.conf.default文件复制一份并重名为php-fpm.conf

cd /usr/local/php-7.2.10/etc
cp php-fpm.conf.default  php-fpm.conf

做一个软链接

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

进入安装目录/usr/local/php-7.2.10/etc/php-fpm.d目录下,将www.conf.default复制一份并重命名为www.conf

cd /usr/local/php-7.2.10/etc/php-fpm.d
cp www.conf.default  www.conf

2)配置php-fpm.conf文件

vi /usr/local/php-7.2.10/etc/php-fpm.conf

具体编辑内容参考这里

3)配置www.conf文件

vi /usr/local/php-7.2.10/etc/php-fpm.d/www.conf

具体编辑内容参考这里
需要修改的内容包括user ,group,listen.owner,listen.group ,listen 等信息,其中listen那一行,修改成如下内容:

listen = 127.0.0.1:9000

4)启动php-fpm

mkdir /var/run/php-fpm/ #这一步在每次启动系统时都要做,因为/var/run是个动态目录,系统重启php-fpm就没了
chown -R admin:www /var/run/php-fpm
cd /usr/local/php-7.2.10
./sbin/php-fpm

5)修改nginx配置文件支持php

cd /usr/local/nginx/
vi ./conf/nginx.conf

具体修改内容如下:

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.php index.html index.htm;         # 添加index.php的首页文件
        }

        # 添加下面内容
        location ~ \.php$ {
            fastcgi_pass        127.0.0.1:9000;
            fastcgi_index       index.php;
            fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
            include fastcgi_params;
            include fastcgi.conf;
        }

修改完成后重启nginx.

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

然后在/nginx/html下创建index.php,

vi /nginx/html/index.php

添加下面内容:

<?php
    phpinfo();
?>

然后在浏览器中输入ip进行访问,当你看到下面的界面,那么恭喜你,配置成功!

PhpInfo

参考内容:

1.CentOS7 LNMP环境,NGINX配置面板conf

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    然而你备份的链接都失效了…

    xxx4个月前 (07-06)Reply