Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。

Nginx下网站部署实战

题目:部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。
一、 搭建Nginx
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx作为负载均衡服务:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。无缓存的反向代理加速,简单的负载均衡和容错。

首先通过Xftp工具将nginx-1.12.2.tar.gz文件传到Linux中,这里推荐大家将文件统一在家目录下的新创建的子目录中(子目录名称可以自定义)

[root@localhostTEST2 ~]# mkdir huanjdaj
[root@localhostTEST2 ~]# ls
anaconda-ks.cfg huanjdaj initial-setup-ks.cfg

1、 解压压缩包(将安装包解压到 /opt/目录下)
[root@localhostTEST2 ~]# cd huanjdaj/
[root@localhostTEST2 huanjdaj]# ls
nginx-1.12.2.tar.gz
[root@localhostTEST2 huanjdaj]# tar -zxvf nginx-1.12.2.tar.gz -C /opt/
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第1张图片2、创建用户,并且不允许登录系统
[root@localhostTEST huanjdaj]# useradd -M -s /sbin/nologin nginx

在这里插入图片描述
3、安装编译工具

[root@localhostTEST huanjdaj]# yum install gcc gcc-c++ pcre-devel zlib-devel -y
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第2张图片4、进行编译安装

1)切换至目录 opt 下进行编译

[root@localhostTEST2 huanjdaj]# cd /opt
[root@localhostTEST2 opt]# ls
nginx-1.12.2 rh
[root@localhostTEST2 opt]# cd nginx-1.12.2/
[root@localhostTEST2 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第3张图片
2)安装

[root@localhostTEST2 nginx-1.12.2]# make && make install
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第4张图片Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第5张图片

5、为了方便管理,可以给nginx创建一个软连接

[root@localhostTEST2 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/

6、编写一个脚本,可以用 systemctl 工具控制其开启、关闭、重载

[root@localhostTEST2 nginx-1.12.2]# cd /lib/systemd/system
[root@localhostTEST2 system]# vim nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/bin/kill -s HUP $MAINPID
ExecStop=/usr/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

为文件添加权限

[root@localhostTEST2 system]# chmod 754 nginx.service

7、启动Nginx,并关闭防火墙和增强性安全功能(服务必须启动着,后面的web网站访问才正常)

[root@localhostTEST2 system]# systemctl start nginx.service
[root@localhostTEST2 system]# systemctl stop firewalld.service
[root@localhostTEST2 system]# setenforce 0

8、我们在客户机上进行访问验证:打开浏览器,地址栏输入:http://IP/,IP为nginx服务所在服务器的ip地址。

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第6张图片二、 搭建MySQL
在环境搭建的目录中,创建一个mysql 子目录,用来存放后面mysql安装需要的yum包

[root@localhostTEST2 system]# cd /root/huanjdaj/
[root@localhostTEST2 huanjdaj]# mkdir mysql
[root@localhostTEST2 huanjdaj]# ls
mysql nginx-1.12.2.tar.gz

首先通过Xftp工具将mysql57-community-release-el7-10.noarch.rpm文件传到Linux目录 /root/huanjdaj/mysql 中

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第7张图片1、Centos7 安装完成后,如果要安装mysql ,先卸载默认安装的mariadb数据库。
如果是centos7请执行如下(A-B步骤)
A 、centos7中安装的是MariaDB,查找组件
rpm -qa | grep -i maria*
在这里插入图片描述
B 、卸载mariadb 数据库:
yum -y remove mariadb-libs.x86_64
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第8张图片
如果是已经安装了mysql ,需要卸载重新安装,执行以下步骤:
A.rpm -qa | grep -i mysql
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第9张图片
B、停止mysql服务、删除之前安装的mysql
停止服务
service mysqld stop
删除命令:rpm -e –nodeps 包名 //如果没有安装nodeps包,则去掉这个关键字。

rpm -e mysql80-community-release-el7-3.noarch
rpm -e mysql-community-client-8.0.22-1.el7.x86_64

rpm -e mysql-community-libs-8.0.22-1.el7.x86_64

rpm -e mysql-community-client-plugins-8.0.22-1.el7.x86_64

rpm -e mysql-community-common-8.0.22-1.el7.x86_64

备注:严格按照这个顺序卸载,不然卸载不掉

卸载完成后,再次查询,没有安装包开始安装mysql57
2、下载并安装MySQL官方的 Yum Repository
方法1):下载至Windows系统,并且通过远程工具上传至 linux 目录下

http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

下载本地,xft上传至linux
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第10张图片
方法2):也可以执行命令在线下载至linux目录下,注意安装也在该目录下进行。

[root@localhostTEST discuzx]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3、安装 yum 包

1)进入到放yum包的目录中,安装yum 包

[root@localhostTEST mysql]# yum -y install mysql57-community-release-el7-10.noarch.rpm
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第11张图片
2)开始在线安装Mysql

yum -y install mysql-community-server
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第12张图片
3) 启动 mysql 57 服务

service mysqld start

如果启动服务失败,按照下面操作
在这里插入图片描述
报错了:数据库初始化启动失败,所以需要删除一个文件
rm -rf /var/lib/mysql
再次启动服务,OK
在这里插入图片描述
4)查看初始密码,在安装日志 log 文件中,红线勾画的部分

grep “password” /var/log/mysqld.log
在这里插入图片描述5)登录mysql 数据库,修改密码,刷新权限。必须做,不然无法后续操作

登录MySQL: mysql -u root -p
在这里插入图片描述
密码输入小技巧:远程工具,鼠标右键复制粘贴画横线部分
修改密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new password’;

注意:newpassword 必须符合密码原则,不能太简单,不然修改会报错。密码原则:
大写+小写+字母+数字>8位,例如:Dsfz123456@
在这里插入图片描述
如果,第一次输入,提示报错了,因为修改太简单了,先执行刷新权限语句,再执行修改密码语句(必须符合规则)。

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第13张图片刷新权限(必须步骤):flush privileges;

4、 重新启动mysql服务
输入:exit ,退出mysql 命令输入模式,返回至linux命令输入模式

service mysqld restart

三、 安装PHP
PHP是超文本预处理语言Hypertext Preprocessor的缩写。PHP是一种内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。

PHP5.6.7安装步骤如下:
1) 首先使用Xftp工具将文件传到Linux中
在这里插入图片描述
2) 解压该文件:
[root@localhostTEST2 huanjdaj]# tar -zxvf php-5.6.7.tar.gz
在这里插入图片描述3) 进入php_5.6.7目录进行配置(代码如下,当你想换行的时候千万不要直接回车,要打一个反斜线\ ,注意反斜杠\后面前面不要有空格)
[root@localhostTEST huanjdaj]# cd php-5.6.7/
在这里插入图片描述Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第14张图片
./configure --prefix=/usr/local/php5.6
–with-gd
–enable-gd-native-ttf
–enable-mysqlnd
–with-mysql=mysqlnd
–with-pdo-mysql=mysqlnd
–with-openssl
–enable-mbstring
–enable-fpm

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第15张图片4) 编译和安装.( 这个需要的时间长,请耐心等待.(注意中间有两个&符号))
[root@localhostTEST2 php-5.6.7]# make && make install
在这里插入图片描述
5) 安装完成后,有如下提示:

Wrote PEAR system config file at: /usr/local/php5.6/etc/pear.conf
You may want to add: /usr/local/php5.6/lib/php to your php.ini include_path((注意这句话的意思是你可能需要在/usr/local/php5.6/lib/目录下添加php.ini文件))
/root/huanjdaj/php-5.6.7/build/shtool install -c ext/phar/phar.phar /usr/local/php5.6/bin
ln -s -f /usr/local/php5.6/bin/phar.phar /usr/local/php5.6/bin/phar
Installing PDO headers: /usr/local/php5.6/include/php/ext/pdo/
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第16张图片
6) 切换目录cd /usr/local/php5.6启动PHP,报错了,启动失败。

[root@localhostTEST2 php-5.6.7]# cd /usr/local/php5.6
[root@localhostTEST2 php5.6]# ./sbin/php-fpm
[24-Feb-2021 14:28:53] ERROR: failed to open configuration file ‘/usr/local/php5.6/etc/php-fpm.conf’: No such file or directory (2)
[24-Feb-2021 14:28:53] ERROR: failed to load configuration file ‘/usr/local/php5.6/etc/php-fpm.conf’
[24-Feb-2021 14:28:53] ERROR: FPM initialization failed
在这里插入图片描述
这个错误的意思是找不到在这个路径找不到配置文件/usr/local/php5.6.3–with-gd/etc/php-fpm.conf,ls etc下面,发现有一个文件php-fpm.conf.default.这个是PHP自带的配置文件。
7) 将php.ini-production文件复制到/usr/local/lib目录下,并改名为php.ini
[root@localhostTEST2 php5.6]# cp etc/php-fpm.conf.default etc/php-fpm.conf
在这里插入图片描述
8) 整合PHP和Nginx服务,让Nginx支持php的启动。
打开/usr/local/nginx/conf/nginx.conf,增加下面的代码块( D O C U M E N T R O O T 就 是 代 表 服 务 的 根 目 录 . DOCUMENT_ROOT就是代表服务的根目录. DOCUMENTROOT.fastcgi_script_name变量代表执行文件(例:a.php))。在本地location 中index 后面 新增 index.php ,注意前后有空格。在将下面的代码整段增加。(看截图)

[root@localhostTEST php5.6]# 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 D O C U M E N T R O O T DOCUMENT_ROOT DOCUMENTROOTfastcgi_script_name;
include fastcgi_params;
}

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第17张图片
9) 将解压缩包中的php.ini-production文件复制到/usr/local/lib目录下,并改名为php.ini。(另外一个php.ini-development适用于开发,错误会尽量多报)

[root@localhostTEST2 lib]# cd /root/huanjdaj/php-5.6.7/
[root@localhostTEST2 php-5.6.7]# ls
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第18张图片
复制并且改名:
[root@localhostTEST2 php-5.6.7]# cp php.ini-production /usr/local/php5.6/lib/php.ini
在这里插入图片描述10) 创建测试文件,验证:在/usr/local/nginx/html下面创建文件vim a.php,内容为

[root@localhostTEST2 php-5.6.7]# cd /usr/local/nginx/html
[root@localhostTEST2 html]# vim a.php
10) 创建测试文件,验证:在/usr/local/nginx/html下面创建文件vim a.php,内容为

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第19张图片
11) 重启服务器

[root@localhostTEST ~]# shutdown -r now

  1. 重新连接虚拟机服务器,重启nginxf服务,关闭防火墙

    [root@localhostTEST ~]# systemctl start nginx.service
    

[root@localhostTEST ~]# systemctl stop firewalld.service
[root@localhostTEST ~]# setenforce 0

  1. 切换至/usr/local/php5.6目录,重启php服务

[root@localhostTEST ~]# cd /usr/local/php5.6
[root@localhostTEST php5.6]# ./sbin/php-fpm
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第20张图片14) 打开浏览器 http://你的ip/a.php ,出现如下也没,PHP安装完成。
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第21张图片

四、 部署ecshop网站
ECShop是一款B2C独立网店系统,适合企业及个人快速构建个性化网上商店。系统是基于PHP语言及MYSQL数据库构架开发的跨平台开源程序。

1) 获取ecshop软件的安装包,将安装包发送到Linux服务器中,解压后的内部文件夹内有三个文件,如图所示:
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第22张图片
上传到Linux有两种方式,可以直接在windows下解压,上传upload包到/usr/local/nginx/html目录,并重命名为ecshop:
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第23张图片
2) 也可以将ECshop.zip的压缩包上传后使用命令解压缩,再复制到/usr/local/nginx/html目录,并重命名为ecshop

[root@localhostTEST2 huanjdaj]# cd /root/huanjdaj/
[root@localhostTEST2 huanjdaj]# unzip ECShop2.zip
在这里插入图片描述[root@localhostTEST2 ECShop2]# mv upload /usr/local/nginx/html/ecshop

在这里插入图片描述
3) 修改ecshop中的一些配置文件,要不然安装后会报很多错误。
修改ecshop下includes文件夹下的init.php文件.
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第24张图片[root@localhostTEST ECShop2]# cd /usr/local/nginx/html/ecshop/includes/
[root@localhostTEST includes]# vim init.php
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第25张图片Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第26张图片
修改ecshop下install/includes文件夹下的init.php文件
在这里插入图片描述
[root@localhostTEST includes]# cd …
[root@localhostTEST ecshop]# cd install/includes
[root@localhostTEST includes]# vim init.php
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第27张图片
4) 访问nginx服务器上的ecshop,进行ecshop的安装:在浏览器中打开进入到ecshop的环境,如图地址。
URL为:http://IP/ecshop/install/index.php
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第28张图片

  1. 选择同意协议,并点击下一步,进入如下界面
    Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第29张图片当前目录权限全部为不可写,需要给ecshop目录中的data temp cert includes images themes目录及其所有子目录增加写的权限,可直接修改权限为777
    [root@localhostTEST includes]# cd …/…/
    [root@localhostTEST ecshop]# chmod -R 777 data/ temp/ cert includes/ images/ themes/
    在这里插入图片描述
    返回浏览器刷新页面,不可写的问题全部解决
    Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第30张图片6)点击下一步,继续配置系统
    数据库密码填写之前设置的数据库密码(dsfz123456@),数据库名为ecshop,表前缀为it_,如图

Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第31张图片但是如果页面提示错误,修改为127.0.0.1
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第32张图片
如果还是提示创建数据库失败,可以重启mysql服务

service mysqld restart

7)管理员账号创建如图,admin密码为dsfz1234
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第33张图片8)勾选安装测试数据后,选择立即安装则可以安装成功
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第34张图片

9)安装完成后需要删除install和demo两个目录
在这里插入图片描述
[root@localhostTEST2 ~]# cd /usr/local/nginx/html/ecshop
[root@localhostTEST2 ecshop]# ls
[root@localhostTEST2 ecshop]# rm -rf demo/ install/

10)Ecshop前台访问地址:
http://服务器IP地址/ecshop/index.php

11)Ecshop后台管理的URL为:

http://服务器IP地址/ecshop/admin/index.php
使用admin/dsfz1234登录即可
Linux系统部署Nginx+Mysql+PHP,在WEB服务器上部署ecshop网站。_第35张图片

你可能感兴趣的:(Linux,MYSQL,linux,服务器)