最新LNMP环境搭建(Linux+Nginx+MySql+PHP)

 

更新系统软件(非必须)

yum update

[root@localhost ~]# yum update

 

一、Nginx编译安装

安装依赖

rpm -qa gcc 查看是否安装gcc(执行完命令什么都没出现即为没有安装) 否则安装

[root@localhost nginx-1.14.2]# rpm -qa gcc [root@localhost nginx-1.14.2]# yum install gcc gcc-c++

安装其他依赖库

yum install perl perl-devel openssl openssl-devel pcre pcre-devel zlib zlib-devel

[root@localhost ~]# yum install perl perl-devel openssl openssl-devel pcre pcre-devel zlib zlib-devel

进入到 /usr/local/src 目录下

cd /usr/local/src

[root@localhost src]# cd /usr/local/src

在线下载nginx最新版本

进入nginx官网找到stable版本(稳定版)

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第1张图片

进入到下载页面 找到stable version 右键->复制链接(如图红框)

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第2张图片

下载nginx最新稳定版至 /usr/local/src 目录下

wget http://nginx.org/download/nginx-1.14.2.tar.gz

[root@localhost src]# wget http://nginx.org/download/nginx-1.14.2.tar.gz

 

用ls命令查看文件发现src目录下有一个nginx-1.14.2.tar.gz 压缩文件

[root@localhost src]# ls

解压nginx-1.14.2.tar.gz

tar -zxvf nginx-1.14.2.tar.gz

[root@localhost src]# tar -zxvf nginx-1.14.2.tar.gz

此时用 ls 命令查看 发现 /usr/local/src 目录下多出了个nginx-1.14.2目录

进入 nginx-1.14.2 目录下

cd nginx-1.14.2

[root@localhost src]# cd nginx-1.14.2

编译nginx

./configure --prefix=/usr/local/nginx \

--with-http_ssl_module \

--with-http_v2_module

[root@localhost nginx-1.14.2]# ./configure --prefix=/usr/local/nginx \ 
--with-http_ssl_module \ 
--with-http_v2_module

如果该步出现error或者warring 一般为缺少相应库或者依赖,yum install 相应库或者依赖即可

注:http_ssl_module为https模块,http_v2_module为http2.0模块,需要现启用https才可用http2.0

 

安装Nginx

[root@localhost nginx-1.14.2]# make && make install

进入到安装后的nginx目录下

[root@localhost nginx-1.14.2]# cd /usr/local/nginx

查看80端口是否开放 否则开放80端口

[root@localhost nginx]# firewall-cmd --query-port=80/tcp no 
[root@localhost nginx]# firewall-cmd --zone=public --add-port=80/tcp --permanent

启动nginx

[root@localhost nginx]# ./sbin/nginx

如果提示80端口被占用,则杀掉正在使用80端口的进程,再启动nginx

其他常用命令参考

./sbin/nginx -t  #查看配置文件是否正确
./sbin/nginx -s reload #重新载入配置文件,即平滑重启

接着在浏览器里输入ip看见欢迎界面即为nginx 配置成功

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第3张图片

二、PHP编译安装

 

下载解压最新稳定版本 (PHP7.2+)

 

进入 /usr/local/src 目录下

cd /usr/local/src

到php官网下载php

wget http://am1.php.net/distributions/php-7.2.12.tar.gz

[root@localhost src]# wget http://am1.php.net/distributions/php-7.2.12.tar.gz

下载完成后用ls命令查看 接着解压php-7.2.12.tar.gz

tar -zxvf php-7.2.12.tar.gz

[root@localhost src]# tar -zxvf php-7.2.12.tar.gz

进入到解压后的目录

cd php-7.2.12

[root@localhost src]# cd php-7.2.12

编译PHP

yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

[root@localhost php-7.2.12]# yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

编译php指定安装目录为 /usr/local/php

[root@localhost php-7.2.12]# ./configure --prefix=/usr/local/php \ 
--enable-fpm \ --with-openssl \ 
--with-curl \ 
--with-zlib-dir \
 --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd --enable-gd-jis-conv \ 
--with-zlib \ 
--enable-bcmath \ 
--enable-mbstring \ 
--enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd

如果此处出现error或warring,一般为缺少相应依赖,查找对应依赖并使用yum命令安装

 

安装PHP

make && make install

[root@localhost php-7.2.12]# make && make install

 

复制一份php.ini-production 到/usr/local/php/lib 目录下 并命名为php.ini

[root@localhost php-7.2.12]# cp php.ini-production /usr/local/php/lib/php.ini

进入到刚刚安装的php目录下的etc目录 cd /usr/local/php/etc

[root@localhost php-7.2.12]# cd /usr/local/php/etc

拷贝php-fpm.conf.default 并重命名为php-fpm.conf

[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf

进入到/usr/local/php/etc/php-fpm.d 目录下

[root@localhost php]# cd /usr/local/php/etc/php-fpm.d/

拷贝一份 www.conf.defalut 并重命名为 www.conf

[root@localhost php-fpm.d]# cp www.conf.default www.conf

返回到/usr/local/php 目录下并启动php-fpm

[root@localhost php-fpm.d]# cd ../../ 
[root@localhost php]# ./sbin/php-fpm

配置Nginx+php

nginx+php的配置中 php作为独立进程工作 其核心是nginx把接收到的请求信息转发给9000端口的PHP进程。让PHP进程处理

接下来配置nginx 使其接收到有关php的请求后能把请求转发给php-fpm

进入到nginx目录 cd /usr/local/nginx 编辑nginx.conf配置文件

[root@localhost php]# cd /usr/local/nginx [root@localhost nginx]# vim conf/nginx.conf

 

找到该部分把相应地方注释去掉

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           /var/www; #网站根目录
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            #告诉php进程当前的脚本是$doucment_root$fastcgi_script_name
            fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

保存退出

:wq

检查配置文件是否有错

[root@localhost nginx]# ./sbin/nginx -t 
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

发现没有错误(如有错误根据提示修正) 重新载入nginx配置文件(热重启)

[root@localhost nginx]# ./sbin/nginx -s reload

接着我们在/var目录下创建www目录作为网站根目录

并在/var/www目录下创建inf.php文件并写入输出配置信息的函数 phpinfo();

[root@localhost nginx]# mkdir /var/www 
[root@localhost nginx]# cd /var/www [root@localhost www]# vim info.php

 

保存并退出 接着用浏览器访问 localhost/info.php 查看配置文件 检查相应扩展是否已开启

 

 

三、yum 安装mysql8.+

使用如下命令找出系统自带的安装的mysql软件包和依赖

rpm -qa|grep mysql

[root@localhost src]# rpm -qa|grep mysql

如果有依次删除找出的程序

yum remove mysql-XXX-XXX
yum remove mysql-XXX-XXX

找出mysql的配置文件并删除;可能出现如下:

[root@localhost src]# find / -name mysql 
/usr/lib64/mysql 
/usr/share/mysql 
[root@localhost src]# rm -rf /usr/lib64/mysql /usr/share/mysql

删除MariaDB

使用rpm命令查找mariadb文件,并依次将其删除

[root@localhost src]# rpm -qa|grep mariadb 
mariadb-libs-5.5.60-1.el7_5.x86_64 
mariadb-libs-5.5.56-2.el7.x86_64 
[root@localhost src]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 
[root@localhost src]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

到mysql官网下载mysql最新yun源

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第4张图片

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第5张图片

鼠标放在红框处点击右键 复制链接地址

 

进入 /usr/local/src 目录下

cd /usr/local/src

[root@localhost src]# cd /usr/local/src

 

下载mysql8.0yum源

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

[root@localhost src]# wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

安装yum repo文件

[root@localhost src]# rpm -ivh mysql80-community-release-el7-1.noarch.rpm

更新yum缓存

[root@localhost src]# yum clean all [root@localhost src]# yum makecache

查看yum仓库中mysql版本

[root@localhost src]# yum repolist all | grep mysql

最新LNMP环境搭建(Linux+Nginx+MySql+PHP)_第6张图片

我们可以看到mysql8.0为启用状态 其他版本为禁用状态

 

使用yum命令安装mysql服务

[root@localhost src]# yum install mysql-community-server

开启mysql服务

[root@localhost src]# systemctl start mysqld.service

 

获取mysql的初始登录密码 mysql在安装完成后会创建一个root@localhost的用户,并把初始化密码放到了 /var/log/mysqld.log 中;

[root@localhost src]# cat /var/log/mysqld.log | grep password

qjO/RN5s+z*( 即为我们的初始话密码

启动服务输入刚才查到的初始密码

mysql -u root -p

 

修改密码(由于参数validate_password_policy的限制,密码必须包含大小写字母数字及字符)

mysql> alter user 'root'@'localhost' identified by '$107Lab';

 (此处$107lab为新设置的密码,自行设定密码)

如果只用于测试 不想把密码设置太复杂 可以修改validate_password_policy参数的值,然后设置简单的密码

mysql> set global validate_password_policy=0;

修改密码成功后切记不要创建新用户 先退出mysql 再用修改后的密码重新登录 然后创建新用户

 

重新登录mysql

创建新用户,并修改加密方式,使用Navicat远程操作mysql

create user '107lab'@'%' identified by 'your password';

107lab为创建的mysql用户名,%代表允许改用户在任何ip下远程连接mysql,your password为密码,自行设置,默认加密方式为 caching_sha2_password

修改加密方式,使navicat能够远程连接

grant all on *.* to 'username'@'host' with grant option;

四、完结、撒花

 

你可能感兴趣的:(PHP)