本文介绍的是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-available、sites-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
安装
- 先安装PHP:
sudo apt install php。 - 安装Apache的PHP模块:
sudo apt install libapache2-mod-php。
管理
配置文件php.ini位置:/etc/php/7.0/apache2/php.ini。
查看扩展存放目录的方法:
- 命令:
php -i | grep extension_dir。 - 新建一个php页面,执行
phpinfo()函数。搜索extension_dir就可以得知。
常见操作或者问题
开启mysqli模块
- 先查看是否已经安装过
mysqli:进入扩展存放目录中查看是否存在mysqli.so文件。没有该文件就表示没有安装mysqli模块。 - 如果没有则先要安装:
sudo apt install php7.0-mysqli,PHP5则安装sudo apt install php5-mysqli。 - 修改php.ini文件。去掉
extension_dir前面的注释。 - 重启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功能
-
首先检查Apache的
rewrite模块是否启用。
查看模块启用的方法:- 看
phpinfo()函数执行的结果。查看Loaded Modules部分有没有包含目标模块。 - TODO
- 查看
/etc/apache2/mods-enabled目录中是否包含某个模块定义的链接。 比如:a模块定义在/etc/apache2/mods-available/a.load文件中。如果mods-enabled目录中有该文件的链接则表示启用了该模块。没有的话就创建一个软连接:sudo ln -s ../mods-available/a.load a.load。
- 看
-
如果没有启用
rewrite模块则启用。 -
修改
/etc/apache2/apache2.conf文件中对应虚拟目录的定义。如:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
将其中的AllowOverride None改为AllowOverride All。重启Apache即可。