1、 更新源

apt-get update

2、安装apache

apt-get install apache2

ubuntu下apache2虚拟主机配置

  

cd /etc/apache2/sites-available
ls
000-default.conf default-ssl.conf
sudo cp 000-default.conf 000-default.conf.bak
sudo vim 000-default.conf

  文件修改为以下内容

// 此处由于下边要把apache端口设为8080 也要改为8080端口
<VirtualHost *:8080> ServerAdmin webmaster@localhost
DocumentRoot /data/www ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory />
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory> </VirtualHost>

3、安装php7.0

apt-get install php7.0

4、安装mysql  https://www.cnblogs.com/Mvloveyouforever/p/9931290.html

5、安装nginx

apt-get install nginx

①配置nginx

  • 修改/etc/nginx/sites-available/default
location ~ \.php$ {
#include snippets/fastcgi-php.conf;
#With php7.0-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
#With php7.0-fpm:
#fastcgi_pass unix:/run/php/php7.0-fpm.sock;
proxy_pass http://127.0.0.1:8080; # 添加此代码,指向动态服务器的ip地址及端口号
}

②配置apache

  • 修改监听的端口号/etc/apache2/ports.conf
# Listen 80
Listen 8080

③重启服务

/etc/init.d/nginx reload
/etc/init.d/apache2 reload

至此: 带php后缀的 80端口 直接指向apache,其他从nginx配置走。

6、安装 php-fpm

apt-get install php-fpm

更新 php-fpm配置

// 改php-fpm配置文件

vim /etc/php/7.0/fpm/pool.d/www.conf

// 找到  listen = 

// tcp方式 (现在用的是tcp)
listen = 127.0.0.1:9000
// socket方式
listen = /run/php/php7.0-fpm.sock // 测试是否有误,显示successful即无误
sudo php-fpm7.0 -t // 重启php-fpm
sudo service php7.0-fpm restart

7、配置apache2 链接 php-fpm

  加载模块
  apache用php-fpm方式要加载两个模块mod_proxy.somod_proxy_fcgi.so,先要Load这两个模块。

ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf
ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load
ln -s /etc/apache2/mods-available/proxy_fcgi.load /etc/apache2/mods-enabled/proxy_fcgi.load
vim /etc/apache2/sites-available/000-default.conf

// 在<VirtualHost *:8080>内加上
// 这里IfModule 意思是当检测到加载了mod_proxy模块,才执行里面的内容,笔者认为应该要加上mod_proxy_fcgi.c的,但没找到写两个模块的写法..
<IfModule mod_proxy.c>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/data/www/$1
DirectoryIndex /index.php index.php
</IfModule>
// 测试是否配置正确 success为正确
apache2 -t
// 重启apache
service apache2 restart

8、部署了 laravel之后的  nginx配置

location ^~ /public/ {
# include snippets/fastcgi-php.conf;
#
# # With php7.0-cgi alone:
# fastcgi_pass 127.0.0.1:8080;
# # With php7.0-fpm:
# fastcgi_pass unix:/run/php/php7.0-fpm.sock;
proxy_pass http://127.0.0.1:8080; # 添加此代码,指向动态服务器的ip地址及端口号
}

然后,发现服务器不打印错误 555

// 在  data/www 下开启文件访问权限

sudo chmod -R 777 项目名

9、开启curl

  1、通过命令搜索可用扩展:

apt-cache search curl

  2、安装

apt-get install php7.0-curl

3、重启apache

service apache2 restart

10、安装php7.0-mysql 驱动

apt-get install php7.0-mysql

部署php的正确姿势的更多相关文章

  1. 基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)

    基于winserver的Apollo配置中心分布式&集群部署实践(正确部署姿势)   前言 前几天对Apollo配置中心的demo进行一个部署试用,现公司已决定使用,这两天进行分布式部署的时候 ...

  2. 玩转 Ceph 的正确姿势

    玩转 Ceph 的正确姿势 本文先介绍 Ceph, 然后会聊到一些正确使用 Ceph 的姿势:在集群规模小的时候,Ceph 怎么玩都没问题:但集群大了(到PB级别),这些准则可是保证集群健康运行的不二 ...

  3. Redis实现分布式锁的正确姿势

    分布式锁一般有三种实现方式:1. 数据库乐观锁:2. 基于Redis的分布式锁:3. 基于ZooKeeper的分布式锁.本篇博客将介绍第二种方式,基于Redis实现分布式锁.虽然网上已经有各种介绍Re ...

  4. Golang错误和异常处理的正确姿势

    Golang错误和异常处理的正确姿势 错误和异常是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从 ...

  5. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  6. 【分布式缓存系列】集群环境下Redis分布式锁的正确姿势

    一.前言 在上一篇文章中,已经介绍了基于Redis实现分布式锁的正确姿势,但是上篇文章存在一定的缺陷——它加锁只作用在一个Redis节点上,如果通过sentinel保证高可用,如果master节点由于 ...

  7. GitHub 热点速览 Vol.18:刷 LeetCode 的正确姿势

    作者:HelloGitHub-小鱼干 摘要:找对路子,事半功倍,正如本周 GitHub Trending #刷 LeetCode# 主题想表达的那般,正确的学习姿势方能让人走得更远,走进大厂

  8. 如何成为一名合格的Apache项目Committer,参与Apache开源贡献的正确姿势

    近日,孙金城老师在 "Open Source Promotion Plan - Summer 2020" 开源软件供应链点亮计划做了<如何成为一名合格的Apache项目Com ...

  9. 判断是否为gif/png图片的正确姿势

    判断是否为gif/png图片的正确姿势 1.在能取到图片后缀的前提下 1 2 3 4 5 6 7 8 9 //假设这是一个网络获取的URL NSString *path = @"http:/ ...

随机推荐

  1. python-flask-配置文件的源码分析

    方式一:app.config['xx'] = 'xxx'源码分析:#第1步:class Flask(_PackageBoundObject):    self.config = self.make_c ...

  2. C语言实现哈夫曼编码(最小堆,二叉树)

    // 文件中有通过QT实现的界面#include <stdio.h> #include <stdlib.h> #include <string.h> typedef ...

  3. Oracle 11.2.0.4.0 Dataguard部署和日常维护(1)-数据库安装篇

    本次测试环境 系统版本 CentOS release 6.8 主机名 ec2t-userdata-01 ec2t-userdata-01 IP地址 10.189.102.118 10.189.100. ...

  4. spring boot 之如何在两个页面之间传递值(转)

    原文地址:spring boot 之如何在两个页面之间传递值 问题:页面之间的跳转,通常带有值的传输,但是,在现在比较流行的SPRING MVC WEB 开发模型中,设计机制导致页面之间的直接接跳转和 ...

  5. 按钮切换显示不同的内容(js控制)

    今天项目发现了一个jsp页面按钮切换,下面展示模块的不同显示问题,看到同事修改完之后的效果,js控制感觉特写好,所以想写把这个好的方法js记录下来,以便以后的参考. 一:先上图,了解大概的样子,如下图 ...

  6. linux查看主机最后启动时间

    1.使用who查看最后重启时间 who -b 2.使用last查看近几次重启时间 last reboot 第一条即为最后一次重启日期 last其实是查询用户的登录记录,reboot是一个伪用户:也就是 ...

  7. Wireshark:No interfaces found解决方法(Windows 10)

    启动Wireshark时有时会报“No interfaces found”,找不到网卡进行截包.造成这种情况的原因可能有两个,一是npf服务没启动,二是当前用启对网卡没有拦截权限. 一.npf服务未启 ...

  8. Java集合list,map,set区别及遍历

    1.1 List.Set.Map基本区别 1.List,Set都是继承Collection接口,Map不是. 2.List:LinkedList.ArrayList.Vector Set :HashS ...

  9. windows 文本操作

    type命令 作用:显示文件类文件内容 (例如:.txt .Java .cpp .c .html 等属于文本类文件 .word excel ppt exe dll 等都不属于文本类文件) fc命令 作 ...

  10. ASP.Net MVC(2) 之目录结构

    认识MVC从目录结构 App_Data 文件夹 用于存储应用程序数据. App_Start 启动文件的配置信息,包括很重要的RouteConfig路由注册信息 Content文件 Content 文件 ...