php基础配置
查看php配置文件的位置
#/usr/local/php/bin/php -i |grep -i “loaded configuration file”
将php.ini-production 拷贝到phpi.ni
# cp /usr/local/src/php-5.6.30/php.ini-production /usr/local/php/etc/php.ini
拷贝完成以后就可以查看php文件的位置信息了
# /usr/local/php/bin/php -i |grep -i “loaded configuration file”
切换到docs的子目录下编辑123.php的配置文件使其显示phpinfo
# cd /usr/local/apache2.4/docs/www.111.com
# vim 123.php
<?php
phpinfo();
?>
配置完成以后打开浏览器
#vim /usr/local/php/etc/php.ini
搜索disable_functions,编辑如下:
disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,1eak,popepassthru,stream_socket_server,popen,proc_open,proc_close
disable_functions表示禁用这些函数。
定义date.timezone,减少警告/
# vim /usr/local/php/etc/php.ini
找到date. timezone设置如下:
date.timezone = Asia/Shanghai
日志的相关配置
例如,在disable_functions,定义禁用phpinfo函数,
# vim /usr/local/php/etc/php.ini
disable_functions=phpinfo,eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,1eak,popepassthru,stream_socket_server,popen,proc_open,proc_close
浏览器访问www.111.com/123.php,显示空白
配置error_log:
# vim /usr/local/php/etc/php. ini
//记录错误日志:搜索log_errors, 改成如下
log_errors=On
//记录错误日志目录位置:搜索error. log,改为
error_log = /tmp/php_errors.log
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful
配置完php.ini,查看日志
# tail -f /tmp/php_errors.log (这里需要自己建立一个用于存放php错误日志的文件夹 /tmp/php_errors.log
配置open_basedir**
open_basedir将网站限定在指定的目录,做目录的隔离
先在php.ini中设置open_basedir:
# vim /usr/local/php/etc/php.ini
//搜索open_basedir,改成如下
open_basedir = /usr/local/apache2.4/docs/www.111.com/admin:/tmp
因为限制了PHP只能在/tmp和/usr/local/apache2.4/docs/www.111.com/admin两个目录下面活动,演示如下:
将/usr/local/php/etc/php.ini中open_basedir注释掉
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful
打开浏览器依次访问http://www.111.com/admin/123.php、http://www.111.com/upload/123.php
虚拟主机配置open_basedir
将/usr/local/php/etc/php.ini中open_basedir注释掉,编辑虚拟主机配置open_basedir
编辑虚拟主机配置open_basedir
#vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
php_admin_value open_basedir "/usr/local/apache2.4/docs/www.111.com/admin/:tmp/"
ErrorLog "logs/111.com-error_log"
CustomLog "logs/www.111.com-access_log" combined
</VirtualHost>
//起作用的是php_admin_value 配置完成以后使用-t、graceful重新读取 刷新配置
使用curl命令查看
#curl -x127.0.0.1:80 www.111.com/admin/123.php
Hello World!
# curl -x127.0.0.1:80 www.111.com/upload/123.php -I
HTTP/1.0 500 Internal Server Error
Date: Tue, 09 Mar 2021 08:41:38 GMT
Server: Apache/2.4.46 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Connection: close
Content-Type: text/html; charset=UTF-8
php扩展模块安装
使用 /usr/local/php/bin/php -m 即可查看php加载了那些模块
切换到src目录使用源码包安装一个新的redis
cd /usr/local/src
wget http://pecl.php.net/get/redis-2.2.5.tgz
tar -zxvf redis-2.2.5.tgz
重命名:mv redis-2.2.5 phpredis-develop
cd phpredis-develop
yum install -y autoconf 安装一个依赖 如果有可以忽略
usr/local/php/bin/phpize//目的生成configure文件执行 ./configure --with-php-config=/usr/local/php/bin/php-config
执行完成以后使用echo $? 查看返回值 确认无误后使用make && make install
/make install时候编译好的就会放在这个目录里
Installing shared extensions: /usr/local/php/lib/ php/extensions/ no-debug- zts - 20131226/
ls /usr/local/php/lib/php/extensions/no-debug-zts-20/可以查看到rdis.so
编辑配置文件 vim /usr/local/php/etc/php.ini
增加一行配置extension = redis.so
/usr/local/php/bin/php -m |grep redis
//查看是否加载了redis模块