【虚拟机/服务器】在Ubuntu Server上从零开始配置Nginx、Mysql、PHP7.0

本文主要是介绍【虚拟机/服务器】在Ubuntu Server上从零开始配置Nginx、Mysql、PHP7.0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、升级当前系统数据源

sudo apt-get update && sudo apt-get upgrade

遇到询问是否继续,输入 y 或直接回车继续就好了

2、安装 Nginx

sudo apt-get install nginx

安装完成之后就会默认自动开启 Nginx 服务器,可以通过 ps -ef | grep nginx 查看。

3、配置 Nginx 环境

1)替换默认配置

tail /etc/nginx/sites-available/default -n 13 | cut -c 2- | sudo tee /etc/nginx/sites-available/abloume.com 1> /dev/null

tail 语法:

  • tail n +num <== 从文件开头指定的单元数开始将文件写到标准输出
  • tail n -num <== 从文件末尾指定的单元数开始讲文件写到标准输出

cut 语法:

  • cut -d ‘分隔字符’ -f fields  <==用于有特定分隔字符
  • cut -c ‘字符区间’     <==用于排列整齐的信息

tee 语法:

  • tee        <== 只输出到标准输出,因为没有指定文件
  • tee file      <== 输出到标准输出的同时,保存到文件file中
  • tee -a file     <== 输出到标准输出的同时,追加到文件file中。如果文件不存在则创建;如果已经存在,就在末尾追加内容,而不是覆盖
  • tee -       <== 输出到标准输出两次
  • tee file1 file2 -   <== 输出到标准输出两次,同时保存到file1和file2中

2)配置网站文档(/etc/nginx/sites-available/abloume.com)

server {listen 80;listen [::]:80;server_name www.abloume.com abloume.com;   // 将默认的default.com进行修改root   /var/www/abloume.com;       // 这里放置网站根目录index  index.html index.php;location / {try_files $uri $uri/ =404;}
}

3)创建网站文件夹目录

mkdir -p /var/www/abloume.com

-p 是指递归,这里表示递归创建目录

4)启动设置

sudo ln -s /etc/nginx/sites-available/abloume.com /etc/nginx/sites-enabled
sudo rm /etc/nginx/sites-enabled/default
sudo systemctl restart nginx

ln -s 源文件 目标文件,创建软链接

systemctl命令是系统服务管理器指令

这里我们启动对应网站的配置,并删除默认系统的根目录,重启 nginx 后生效

4、部署 PHP7

1)安装 PHP7

sudo apt-get install php7.0-cli php7.0-cgi php7.0-fpm php7.0-mysql php7.0-dev

2)修改网站配置文件(/etc/nginx/sites-available/abloume.com)

server {listen 80;listen [::]:80;server_name www.abloume.com abloume.com;root /var/www/abloume.com;index index.html index.php;location / {try_files $uri $uri/ =404;}location ~ \.php$ {root /var/www/abloume.com   # php 文件所在目录include fastcgi_params;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME /var/www/abloume.com$fastcgi_script_name;}
}

打开 /etc/php/7.0/fpm/pool.d/www.conf 文件,找到listen=的这两行,设置相应的IP和端口值

;listen = /run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000

简单介绍下刚才安装的 php-cig、php-fpm、php-cli

php_module 是怎么将数据传给 php 解析器来解析 php代码的呢? 答案是 SAPI

SAPI 提供了一个和外部通信的接口,有点类似于 socket,使得 PHP 可以和其他应用进行交互数据(Apache、NGINX、cli等)。

① php-cgi
PHP 的 SAPI 的一种方式 mode_php 加载模式,这里要说另一种方式是提供cgi模式,由于cgi比较老所以就出现了fastcgi来取代它(mode_fastcgi 模式)。fastcgi事先就早早启动好了,而且可以启动多个cgi模块,在那里一直运行着等着Web发过来的请求,然后再给php解析运算完成生成html给Web后,也不会退出,而且继续等着下一个Web请求。

@php-fpm
就是专门来辅助 mode_fastcgi 模式的

@php-cli
就是 php 实现的自带的 fastcgi管理器

CGI是外部应用程序与Web服务器之间的接口标准

3)启动配置生效

sudo systemctl restart php7.0-fpm nginx

5、安装 MySQL 数据库

sudo apt install mysql-server   
# 安装过程中需要输入两次root密码

安装MySQL安全组件

sudo mysql_secure_installation

安装过程中首先需要输入MYSQL的root密码.

当询问“Change the root password?”时,输入“N”

剩下的问题可以敲击回车键,选择默认选项。

6、部署项目

将项目文件上传到之前我们创建的网站目录 /var/www/abloume.com

你可能会遇到以下两个问题:

  1. 访问虚拟机/服务器的IP地址时返回403(可能是因为nginx找不到需要展示的)
  2. 本地电脑连接不上虚拟机或服务器(可能是虚拟机网络没设置好)
  3. 上传文件到网站目录时被拒绝(因为权限不够)

先解决第一个问题:

如果你还没有要上传到网站目录(/var/www/abloume.com)的项目,那么必须先在这个目录下面 touch index.html 创建并写一个简单的 hello world 页面出来,此目录下不能为空

接着解决第二个问题:

1)在虚拟机/服务器上 ifconfig 后获得IP地址
2)在本地Windows电脑上 ipconfig 后获得IP地址
3)分别 ping 对方的IP地址看是否可接收,若不可接收请检查虚拟机网络设置是否正确
4)应为自定义特定虚拟网络下的 VMnet8(NAT模式)【如果你有经验就会直接检查这块】
这里写图片描述

再解决第二个问题:

chmod -r 777 /var/www/abloume.com 最傻瓜式的操作就是赋予它所有操作权限


无法在本地和虚拟机/服务器之间使用上传下载?

which vsftpd :查看是否安装ftp 显示出来路径说明已经安装,什么都没有,则没有安装

service vsftpd start :开启ftp

service vsftpd status :查看ftp的状态

如果没有安装ftp,可以使用命令 sudo apt-get install vsftpd 安装

详情请跳转 Ubuntu Server上配置FTP服务器

另外推荐一款免费开源的 FTP上传下载工具:WinSCP

这篇关于【虚拟机/服务器】在Ubuntu Server上从零开始配置Nginx、Mysql、PHP7.0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1146385

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

如何去写一手好SQL

MySQL性能 最大数据量 抛开数据量和并发数,谈性能都是耍流氓。MySQL没有限制单表最大记录数,它取决于操作系统对文件大小的限制。 《阿里巴巴Java开发手册》提出单表行数超过500万行或者单表容量超过2GB,才推荐分库分表。性能由综合因素决定,抛开业务复杂度,影响程度依次是硬件配置、MySQL配置、数据表设计、索引优化。500万这个值仅供参考,并非铁律。 博主曾经操作过超过4亿行数据

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间