Ubuntu 16 服务器配置PHP+MySQL+Apache环境
一、获取软件包资源并进行资源更新
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>
最新文章
- WebApi Post 后台无法获取参数的解决方案
- nginx 客户端不缓存header
- IOS 杂笔-1(为什么不继承类簇?)
- 如何在Ubuntu上更新Node.js
- 17SpringMvc_在业务控制方法中写入包装User的模型来收集参数——解决问题
- 告示:CSDN博客通道支持Windows Live Writer写blog离线好友
- BAPI总的数据库提交和回滚
- opencv 训练自己的分类器汇总
- Exception in thread ";main"; org.hibernate.HibernateException: save is not valid without active transaction
- jboss规则引擎KIE Drools 6.3.0 Final 教程(3)
- 返回present的根
- php仿经典省市县三级联动
- 跨域请求传递Cookie问题
- robot启动
- Spring data Jpa,Mybatis,读写锁,@Lock 使用
- Python全栈问答小技巧_2
- Android get current Locale, not default
- 任意的组合,数组或数组,数组或list,list或list不用循环得出匹配的总数和需要的字段列
- Spring Cloud Dalston.SR5 BUG一记
- vscode 配置import @ 路径提示及代码智提
热门文章
- oracle表空间位置迁移
- AndroidStudio报错:Emulator: I/O warning : failed to load external entity ";file:/C:/Users/Administrator/.AndroidStudio3
- mysql在建表语句中添加索引
- GMOJ5409.【GDOI2017模拟一试4.11】平行宇宙
- MySql学习-2. NavicatforMySQL 与 MySql的对接以及一些操作:
- 洛谷P1063能量项链(区间dp)
- Gird(2)
- C# convert json to datatable,convert list to datatable
- Dart中类的getter和setter
- HTML指定页面编码