一、获取软件包资源并进行资源更新

apt是Ubuntu上默认的软件包管理器,使用它可以很容易进行各种软件安装,而且会自动帮你安装可能需要的依赖关系。

另一个强大的软件管理工具是 dpkg,可以用于安装本地的deb文件。但是 dpkg 不会解决模块的依赖关系,也不会关心ubuntu的软件仓库内的软件版本,因此不推荐新手使用。

update 用于获取软件包资源,upgrade 用于下载和安装获取到的软件包资源。

sudo apt update
sudo apt upgrade

二、依次安装PHP、PHP的一般性扩展、MySQL和Apache

1.php-fpm:

服务器软件(apache、nginx、IIS)本身不能处理和解释编程语言(JAVA、PHP、Per等),服务器接收到动态请求后,会把请求发送给对应的解释器处理,并把结果返回给客户端。

一般是把请求发送给fastcgi管理进程处理,fastcgi管理进程选择cgi子进程处理结果并返回。

php-fpm就是一个PHP FastCGI管理器,旨在将FastCGI进程管理整合进PHP包中。

php-fpm提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点。

2.php-mbstring:是一个编码相关的扩展

sudo apt install -y php php-fpm php-mbstring mysql-server apache2

三、安装php对MySQL的支持扩展和apache对php的支持扩展

安装完PHP、MySQL和Apache后还要让三者互相支持彼此,为此需要安装一些额外的扩展。

php-mysql扩展能让PHP支持MySQL,而 libapache2-mod-php 能让Apache支持PHP。

sudo apt install -y php-mysql libapache2-mod-php

四、对apache进行相关配置,一般配置文件在 /etc/apache2/ 目录下,其目录结构一般如下:

.
├── apache2.conf
├── conf-available
├── conf-enabled
├── envvars
├── magic
├── mods-available
├── mods-enabled
├── ports.conf
├── sites-available
└── sites-enabled

apache2.conf是主要的配置文件,Apache在启动时会自动读取这个文件的配置信息。而其他的一些配置文件,如 httpd.conf等,则是通过Include指令包含进来。

该目录下有一些以 -available 和 -enable 结尾的目录,正真的配置文件在available 目录中,enable中的只是这些配置文件的一些链接符号(一般是软链接)。

要使用某种配置其实很简单,只需要在enable目录中创建对应available目录中文件的软链接,不需要时再删除软链接。

如果你只是在服务器上放置一个网站,简单的修改一下 /etc/apache2/site-enable 中的符号文件 000-default.conf 就行了,只需要把 DocumentRoot 的值改为你网站入口文件所在的目录即可。该文件配置内容大致如下:

<VirtualHost *:>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

如果想要在一个服务器上放多个域名和网站,又不想使用虚拟主机,这时你可能还需要修改 ServerAdmin 的值为你服务器IP绑定的域名。

五、利用apache重写模块隐藏入口文件:

为了简化和安全的目的,一般会隐藏入口文件。可以利用apache的重写模块和一定的配置实现这个目的。

1.引入重写模块:在 /etc/apache2/mods-enable 中创建符号文件 rewrite.load,指向 /etc/apache2/mods-available 中的重写模块 rewrite.load

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load 

2.启动重写功能:修改 /etc/apache2/apache2.conf 配置文件中的 AllowOverride None 为 AllowOverride ALL,一共有三处,三处都要修改。

3.隐藏入口文件:在项目入口文件所在的目录中新建 .htaccess 文件,键入如下内容:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?s=$ [QSA,PT,L]
</IfModule>

Ubuntu 16 服务器配置PHP+MySQL+Apache环境的更多相关文章

  1. Ubuntu 16.04下的LAMP环境配置

    在学习开发过程中,每当遇到新的问题时,通常都能在网上搜到解决的方法,但是网上的方法千千万,有些是已经过时了的,有些是跟自己开发环境不同的,总是不能第一时间能找到答案. 而当时遇到的问题可能在今后的开发 ...

  2. ubuntu 16.04上 mysql 5.7 安装笔记

    一 安装 ubuntu 采用APT安装方式,可参考: Ubuntu 安装mysql和简单操作 Ubuntu 16.04安装MySQL(5.7.18) A Quick Guide to Using th ...

  3. Ubuntu 16.04 安装Mysql 5.7 踩坑小记

    title:Ubuntu 16.04 安装Mysql 5.7 踩坑小记 date: 2018.02.03 安装mysql sudo apt-get install mysql-server mysql ...

  4. Ubuntu 16.04 搭建LAMP服务器环境流程

    http://www.linuxidc.com/Linux/2016-09/135629.htm [安装mysql时 只需安装 mysql-server无需安装mysql-client] mysql ...

  5. 【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解

    64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛.  安装步骤 1.准备工具安装目录 下载 ar ...

  6. 在Ubuntu 16.04 安装python3.6 环境并设置为默认

    在Ubuntu 16.04 安装python3.6 环境并设置为默认 1.添加python3.6安装包,并且安装 sudo apt-get install software-properties-co ...

  7. Ubuntu 16.04 安装 Gnome 桌面环境

    个人博客链接:Ubuntu 16.04 安装 Gnome 桌面环境

  8. [eShopOnContainers 学习系列] - 03 - 在远程 Ubuntu 16.04 上配置开发环境

    直接把 md 粘出来了,博客园的富文本编辑器换成 markdown,没啥效果呀 ,先凑合吧.实在不行换地方   # 在远程 Ubuntu 16.04 上配置开发环境 ## 零.因 为什么要用这么麻烦的 ...

  9. 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导

    导读 LEMP 是个缩写,代表一组软件包(注解 ① L:Linux OS,E:Nginx 网络服务器,M:MySQL/MariaDB 数据库和 P:PHP 服务端动态编程语言),它被用来搭建动态的网络 ...

随机推荐

  1. 连接数据库的方法---ODBC

    2012-12-10 11:50 (分类:计算机程序) 技术博客,对抗遗忘…… 1.ODBC   Open Database Connectivity    1.1 简介:提供了一组对数据库访问的标准 ...

  2. Head First设计模式——代理模式

    在HeadFirst设计模式中代理模式用了比较多的篇幅来讲解,其中的例子我感觉有些繁琐,所以我们这篇就不按照惯例用例子来阐述代理模式了.我们直接进入正题,分析模式本身的设计和解决的问题. 远程代理模式 ...

  3. MySQL索引优化深入

    创建 test 测试表 CREATE TABLE `test` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `c1` varchar(10) DEFAULT N ...

  4. 「Flink」Flink中的时间类型

    Flink中的时间类型和窗口是非常重要概念,是学习Flink必须要掌握的两个知识点. Flink中的时间类型 时间类型介绍 Flink流式处理中支持不同类型的时间.分为以下几种: 处理时间 Flink ...

  5. JS笔记之第二天

    一元运算符:++  -- 分为前++和后++ and 前--和后-- 如果++在后面,如:num++ +10参与运算,先参与运算,自身再加1 如果++在前面,如:++num+10参与运算,先自身加1, ...

  6. stlink 下载报错:Error Flash Download failed - "Cortext-M0+"

    stlink 下载报错:Error Flash Download failed - "Cortext-M0+" 解决方法: STM32 ST-LINK Utility 用这个软件把 ...

  7. 剑指offer-面试题62-圆圈中最后剩下的数字-约瑟夫环-解法2

    /* 题目: 约瑟夫环问题. 思路: 数学规律 f(n)=0(n=1),[f(n-1,m)+m]%n(n>1) */ #include<iostream> #include<l ...

  8. BUGFIX 09 - 记一次Java中String的split正则表达式匹配 - 引发`OutOfMemoryError: Java heap space`的oom异常 排查及解决 -Java根据指定分隔符分割字符串,忽略在引号里面的分隔符

    问题简述 说白了,Java根据指定分隔符分割字符串,忽略在引号(单引号和双引号)里面的分隔符; oom压测的时候,正则匹配"(?=(?:[^\"]*\"[^\" ...

  9. 安装PHP到CentOS(YUM)

    运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:PHP-7.2 硬件要求:无 安装过程 1.配置YUM源 [root@localhost ~]# rpm -i ...

  10. Django2.2 静态文件的上传显示,遇到的坑点-------已解决

    前情提要:这里虽说是Django2.2 ,但经过测试发现Django 的其他版本也可以用此方法解决 一.项目根目录下的static文件的路由显示问题 在项目根目录下创建静态文件时发现,即使我配置了se ...