LAMP环境的搭建和维护

341 阅读3分钟

本文介绍的是PHP运行环境的安装和维护。包括Apache、MySQL和PHP。

Apache 2

安装

安装命令:sudo apt install apache2
安装后访问localhost验证是否成功。

运行

启动、停止、重启、查看状态:
sudo /etc/init.d/apache2 [ start | stop | restart | status ]

配置

Apache的配置文件目录位置:/etc/apache2。

sites-available和sites-enabled目录

这两个目录配置的是网站路径。区别是:sites-available目录里面存放的是真正要用到的配置文件,而sites-enabled目录存放的是指向sites-available目录中文件的链接。
也就是如果要启用某个配置文件,只需要在sites-enabled目录中加个链接即可,取消则删除链接,这样就不用修改真正的配置文件了。

mods-available和mods-enabled目录:

sites-availablesites-enabled目录类似,区别是该目录存放是模块。
根目录位置:/etc/apache2/sites-available/000-default.conf
HTTPS根目录:/etc/apache2/sites-available/default-ssl.conf

配置别名Alias:
更改网站配置文件如:/etc/apache2/sites-available/000-default.conf。 添加:Alias "/phpmyadmin" "/var/www/phpMyAdmin"

MySQL

安装

安装命令:sudo apt install mysql-server
安装后用mysql -u root -p登录来验证安装是否成功。

管理

  • 登录:mysql -u root -p

PHP

安装

  1. 先安装PHP:sudo apt install php
  2. 安装Apache的PHP模块:sudo apt install libapache2-mod-php

管理

配置文件php.ini位置:/etc/php/7.0/apache2/php.ini

查看扩展存放目录的方法:

  1. 命令:php -i | grep extension_dir
  2. 新建一个php页面,执行phpinfo()函数。搜索extension_dir就可以得知。

常见操作或者问题

开启mysqli模块

  1. 先查看是否已经安装过mysqli:进入扩展存放目录中查看是否存在mysqli.so文件。没有该文件就表示没有安装mysqli模块。
  2. 如果没有则先要安装:sudo apt install php7.0-mysqli,PHP5则安装sudo apt install php5-mysqli
  3. 修改php.ini文件。去掉extension_dir前面的注释。
  4. 重启Apache。

更改根目录后报403错误的解决办法

原因:应用的根目录路径没有配置访问权限。

解决办法:编辑/etc/apache2/apache2.conf文件,复制一份原来的根目录配置文件,将路径改成自己项目的根目录路径。如:

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

# 项目的根目录
<Directory /home/wuanrin/Desktop/projects/wordpress>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

然后重启Apache即可。

启用.htaccess功能

  1. 首先检查Apache的rewrite模块是否启用。
    查看模块启用的方法:

    1. phpinfo()函数执行的结果。查看Loaded Modules部分有没有包含目标模块。
    2. TODO
    3. 查看/etc/apache2/mods-enabled目录中是否包含某个模块定义的链接。 比如:a模块定义在/etc/apache2/mods-available/a.load文件中。如果mods-enabled目录中有该文件的链接则表示启用了该模块。没有的话就创建一个软连接:sudo ln -s ../mods-available/a.load a.load
  2. 如果没有启用rewrite模块则启用。

  3. 修改/etc/apache2/apache2.conf文件中对应虚拟目录的定义。如:

<Directory /var/www/>
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
</Directory>

将其中的AllowOverride None改为AllowOverride All。重启Apache即可。