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. Django之转发和重定向

    https://blog.csdn.net/gscsd_t/article/details/79389167 转发和重定向: 转发:一次请求和响应,请求的地址没有发生变化,如果此时刷新页面,就会出现重 ...

  2. mysql 全文搜索(转载http://blog.csdn.net/manbujingxin/article/details/6656992)

    前提:mysql只支持英文内容的全文索引,所以只考虑英文的全文搜索.假定数据表名为post,有三列:id.title.content.id是自增长序号,title是varchar,content是te ...

  3. leetcode-algorithms-24 Swap Nodes in Pairs

    leetcode-algorithms-24 Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and re ...

  4. 关于int8_t,uint8_t.....等数据类型的理解

    实习中,今天在看公司源码的时候,发现前辈给的代码都是这样的 typedef int8_t int8; typedef uint8_t uint8; typedef int16_t int16; typ ...

  5. const 内联 枚举 宏

    const 常量   程序运行时在常量表中,系统为它分配内存,在堆栈分配了空间:const常量有数据类型:语句末有分号:有类型检查:可以限制范围 //将所有不希望改变的变量加const修饰 const ...

  6. JS时钟--星期 年 月 日 时 分

    var clock = function(clockName){ var mydate = new Date(); var hours = mydate.getHours(); var minutes ...

  7. OpenSSH隐藏版本号教程

    1.查看当前OpenSSH版本号 sshd -v #sshd并没有-v选项,这并不是重点重点是这样能曝出版本号 2.查看sshd位置 which sshd 3.备份sshd cp /usr/sbin/ ...

  8. python(6)之文件

    一.读写文件 以追加文件内容(a).读(r).写(w),读写(r+)的形式打开文件: f = open('yesterday','a',encoding='utf-8')#文件句柄 #输出一行文件内容 ...

  9. js问题 项目问题

    项目问题1. js 中字符串替换函数var a = 'fajlfjal'a.replace(/b/,'a') // 不能直接改变a 而是返回替换后的值 2. vue 属性绑定中 class style ...

  10. Daily record-July

    July11. Nonsense! 胡说八道!2. Who cares! 谁管你呀!3. It's on me.. 我来付.4. It's a deal. 一言为定.5. I've done my b ...