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

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. LVM知识梳理

    1 LVM介绍 LVM即logical volume manager逻辑卷管理,其主要特点是:可以动态地扩大和缩小分区大小,但前提是分区的文件系统必须是LVM格式的,lvm的实现需要安装lvm2软件包 ...

  2. [CentOS7]安装ODBC Driver 17 for SQL Server

    Python 通过pyodbc 连接SQL Server 数据库驱动 安装环境 cat /etc/redhat-release CentOS Linux release (Core) 微软官网 htt ...

  3. width、height为auto或者100%的区别

    一.规则 1. 某div不设置宽度,那么width默认为auto. 2. 某子元素div的width为100%(或者设置为等于父元素宽度的具体值,比如父元素width为100px,子元素width也设 ...

  4. bootstrap组件---进度条

    <div class="progress"> <div class="progress-bar progress-bar-success" r ...

  5. js是什么?js可以做什么?js的构成与学习方向

    js(百度官方介绍javascript)编程的基本语言学习目标是:a.怎么写和运行js脚本b.理解变量和值c.学会简单的数学运算符d.数据类型是什么e.流程控制 对于JavaScript的背景知识和结 ...

  6. git系列之---将本地的项目添加到码云仓库

    1.前情: 本地写的 Demo 传到码云上面进行维护. 2.操作步骤: git init   将本地文件初始化为git 仓库,文件件会多一个 .git 文件夹[版本库]: git add .   或者 ...

  7. java 正则表达式空格无法匹配

    举个例子 Boolean xx= Pattern.matches("^[a-zA-Z0-9\\s]*$", " 801 Tampines Ave 4 Singapore ...

  8. 「Flink」RocksDB介绍以及Flink对RocksDB的支持

    RocksDB介绍 RocksDB简介 RocksDB是基于C++语言编写的嵌入式KV存储引擎,它不是一个分布式的DB,而是一个高效.高性能.单点的数据库引擎.它是由Facebook基于Google开 ...

  9. apue 外传

    先上目录 chapter 3 [apue] dup2的正确打开方式 chapter 10 [apue] 等待子进程的那些事儿 chapter 14 [apue] 使用文件记录锁无法实现父子进程交互执行 ...

  10. MySql学习-3.命令脚本

    一.数据库操作: 1. 登录数据库:mysql -uroot -p (这个password是自己设定的,我这里的没密码) 注意:(数据路径是:D:\MySql\install1\data 操作路径:D ...