1.PHP的配置文件

虽然PHP是以httpd一个模块的形式存在,但PHP本身也有自己的配置文件。
image.png
image.png
php.ini为php的配置文件,
image.png
查看php.ini,可以看到第一行的的Warning为警告信息
取消这个警告需要编辑php.ini,
搜索date.timezone
设置如下:
image.png
再次执行不再显示警告信息:
image.png

2.PHP的disable_functions

PHP有诸多内置的函数,有一些函数(比如exec)会直接调取Linux系统命令,如果开放会非常危险。
因此,基于安全考虑应该把一些存在安全风险的函数禁掉
编辑php.ini
搜索disable_functions
编译如下
image.png
这些函数你暂时不需要细究
配置完成需要重启httpd服务才能生效。

3.配置 error_log

image.png
上图是我们在主机游览器上访问123.php时 出现的错误日志
直接把路径显示在了页面上,这样是非常不安全的。
而且也不美观。
想要关闭这个选项。
配置php.ini
搜索display_errors
改为display_errors = Off
image.png

log_errors可以设置为On或者Off
如果想让PHP记录错误日志,设置为On
image.png

error_log设置错误日志路径
image.png

error_reporting设定错误日志的级别,E_ALL为所有类型的日志,不管是提醒还是警告都会记录。
在开发环境下面设置为E_ALL,可以方便程序员排查问题,但也会造成日志记录很多无意义的内容。
8符号表示并且,~表示排除,所以两个组合在一起就是在E_ALL的基础上排除掉 notice相关的日志。
image.png
保存并且退出
重新加载httpd服务
/usr/local/apache2.4/bin/apachectl graceful
配置才会生效

mkdir /var/log/php
chmod 777 /var/log/php
需要保证PHP的错误日志目录存在,并且权限为可写。
游览器访问一下,查看错误日志,生产了新的日志文件。
image.png

4.配置open_basedir

一个服务器上跑很多网站,这是几乎所有小公司为节省成本采用的做法,但这样做也会有一些弊端:多个网站跑在同一个服务器上,如果其中一个网站被黑,很有可能连累到其他站点。
还好PHP有一个概念叫作 open_basedir,它的作用是将网站限定在指定目录里,就算该站点被黑了,黑客只能在该目录下面有所作为,而不能左右其他目录。如果你的服务器上只有一个站点,那可以直接在 php. ini中设置 open_basedir参数。但如果服务器上跑的站点比较多,那在 php. ini中设置就不合适了,因为在 php. ini中只能定义一次,也就是说所有站点都一起定义限定的目录,那这样似乎起不到隔离多个站点的目的。
先来看如何在php.ini中设置 open_basedir
搜索open_basedir,配置如下:
image.png
//限制PHP只能在/tmp和/usr/local/apache2.4/docs/www.123.com两个目录下活动。
重新加载一下服务
`/usr/local/apache2.4/bin/apachectl graceful```
curl命令测试一下。
image.png

也可以给单个虚拟主机设置open_basedir,
进入配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
中增加一行:
php_admin_value open_basedir "/usr/local/apache2.4/doce/www.123.com:/tmp"
这样就可以实现,一个虚拟主机定义一个open_basedir

5.PHP动态拓展模块安装

cd /usr/local/src
image.png
image.png
#/usr/local/php/bin/phpize的目的是生成configure文件
./configure --with-php-config=/usr/local/php/bin/php-confi
make
make install

查看扩展模块生成目录
image.png
//可以看到redis.so文件
编辑php.ini
最后一行增加:
extension = redis.so

查看是否生成了redis模块。
image.png
这样扩展模块就安装完成了。