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

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. 关于Java/Kotlin下载图片,图片打开不能显示问题探究

    图片下载其实是个很简单的功能,通过IO流从在线地址获取流,之后将流输出到文件即可完成下载功能,但是,最近我发现某个网站中的图片下载成功,但是打开却是无法打开,这让我迷惑,百度上根本就没有人说清楚 今天 ...

  2. package包

    为什么需要package? 为了解决类之间的重名问题.为了方便管理类,合适的类放在合适的包. 怎么用package? 通常是类的第一句非注释性语句. 包名,域名倒着写,加上模块名,并与内部管理类. 命 ...

  3. String实例 (练习)

    练习题1:用户输入一段字符串,要求统计出在该段字符串中,数字,字母以及其他字符各出现过几次??? 代码实现: 运行结果:  补充:1. 连接符的使用: +用作连接符时,只能连接字符串,即“    ”双 ...

  4. 关于OFFICE 文件在线编辑dsoframer

    下载dsoframer.ocx 系统为32位时:拷贝 dsoframer.ocx  到c:\windows\system32\dsoframer.ocx打开cmd命令行注册  regsvr32.exe ...

  5. Notability

    Notability 上课记笔记.听网课→Notability 有录音功能, 在原来笔记中新添加空白行(选中之后下移) Notability常用的功能总结 1.纸张有颜色2.荧光笔会盖住文字3.套索工 ...

  6. RHEL6 yum本地源配置

    RHEL6 yum本地源配置 将RHEL6 的iso上传到/file1/xxx 新建目录/file1/xxx/mnt,将iso挂载到mnt目录 mount rhel-server-6.3-x86_64 ...

  7. Java遍历字符串数组的几种方法

    1. for循环 for(int i = 0; i < fields[].length; i++){ } 2 for each循环 for(String x:fields){ } 3. JDK8 ...

  8. SpringBoot整合NoSql--(二)MongoDB

    简介: MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是 ...

  9. Html介绍,认识html标签

    什么是网页?网页就是我们我们提前写好的代码样式经过浏览器的渲染展示出来的样式效果.其实我们常说的上网就是浏览各式各样的网页,这些网页都是由html标签组成,下面就是一个简单的网页,效果图如下: 简单看 ...

  10. 关于在ssm下创建项目使用阿里巴巴下的druid数据库报错,出现无法创建连接的原因

    报错原因:外部jdbc.driver使用原生jdbc驱动jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql:///yonghedb?charact ...