本文主要是介绍【虚拟机/服务器】在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
你可能会遇到以下两个问题:
- 访问虚拟机/服务器的IP地址时返回403(可能是因为nginx找不到需要展示的)
- 本地电脑连接不上虚拟机或服务器(可能是虚拟机网络没设置好)
- 上传文件到网站目录时被拒绝(因为权限不够)
先解决第一个问题:
如果你还没有要上传到网站目录(/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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!