mysql
下载源码包:mysql-5.6.43-linux-glibc2.12-x86_64.tar
要 yum install -y wget
# cd /usr/local/src
# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
# tar -zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
# useradd -s /sbin/nologin mysql
# mkdir -p /data/mysql
# chown -R mysql:mysql /data/mysql
# mv mysql-5.6.43-linux-glibc2.12-x86_64 /usr/local/mysql
# cd /usr/local/mysql/
# yum install -y perl*
# yum install -y autoconf
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
# cp support-files/my-default.cnf /etc/my.cnf
# vi my-default.cnf
#These are commonly set ,remove the # and set as required
Basedir=/usr/local/mysql
//basedir表示MySQL包所在路径
Datadir=/data/mysql/datadir
//表示定义存放数据的位置
Port=3306
//port表示定义MySQL服务监听的端口号
Server_id=128
//表示该MySQL服务的ID号
socket = /tmp/mysql.sock
//定义MySQL服务监听的套接字地址
# cp support-files/mysql.server /etc/init.d/mysql
# chmod 755 /etc/init.d/mysql
# vi /etc/my.cnf
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
server_id = 155
socket = /tmp/mysql.sock
//注释都去掉,再添加后面内容
# vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql
# chkconfig --add mysql
# chkconfig mysql on
# service mysql start
Apache
# cd /usr/local/src/
# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.39.tar.gz
有出错:
注意查看网址里存在的压缩包
# wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.46.tar.gz
有出错
解决:
添加 --no-check-certificate
# wget --no-check-certificate https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.46.tar.gz
# wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
# ll
# tar -zxvf httpd-2.4.46.tar.gz
# tar -zxvf apr-1.6.5.tar.gz
# tar -zxvf apr-util-1.6.1.tar.gz
# cd apr-1.6.5
# ./configure --prefix=/usr/local/apr
# echo $?
# make && make install
有出错
解决:
# yum update
# yum install -y gcc build-essential
# ./configure --prefix=/usr/local/apr
# make && make install
# echo $? //查看是否有出错
# cd /usr/local/src/
# cd /usr/local/src/apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
有出错:
解决:
# yum install -y expat-devel
# make && make install
# echo $?
# cd /usr/local/src/httpd-2.4.46
# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
有出错:
解决:
# yum -y install pcre-devel
# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
# make && make install
有出错:
解决:
# cd /usr/local/src/
# cp -r apr-1.6.5 /usr/local/src/httpd-2.4.46/srclib/apr
# cd apr-1.6.5
# ./configure --prefix=/usr/local/apr
# cd /usr/local/src/
# cp -r apr-util-1.6.1 /usr/local/src/httpd-2.4.46/srclib/apr-util
# cd /usr/local/src/apr-util-1.6.1
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install
# echo $?
# cd /usr/local/src/httpd-2.4.46
# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
# make && make install
# echo $?
# /usr/local/apache2.4/bin/apachectl -M
安装PHP
# cd /usr/local/src/
# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
# ll
# tar -zxvf php-5.6.30.tar.gz
# cd php-5.6.30
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
有出错
解决:
# yum install -y libxml2-devel bzip2 bzip2-devel libpng libpng-devel openssl openssl-devel freetype freetype-devel opel-release
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
有出错
解决:
# yum install -y jpeglib jpeglib-devel
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
有出错
解决:
# yum install -y epel-release
# yum install -y libmcrypt-devel
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
# echo $?
# make && make install
# echo $?
httpd解析PHP
# vi /usr/local/apache2.4/conf/httpd.conf
搜索ServerName,把ServerName www.example.com:80前#去掉
<Directory />
AllowOverride none
Require all denied
</Directory>
改成:
<Directory />
AllowOverride none
Require all granted
</Directory> //目的允许所有请求访问
在AddType application/x-gzip .gz .tgz,
下面添加一行 AddType application/x-httpd-php .php;
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改成:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl start
# netstat -lnp | grep httpd
# yum install -y net-tools
# netstat -lnp | grep httpd
# curl localhost
# vi /usr/local/apache2.4/htdocs/1.php
<?
echo “php解析正确”
?>
# curl localhost/1.php
默认虚拟主机
# cd /usr/local/src/
# vi /usr/local/apache2.4/conf/httpd.conf
注:
一定要搜索httpd-vhost,去掉前面#
不然结尾出不来想要的结果!
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@wang.com
DocumentRoot "/data/wwwroot/test0920.com"
ServerName test0920.com
ServerAlias www.testdomain.com
ErrorLog "logs/aming.com-error_log"
CustomLog "logs/aming.com-access_log" common
</VirtualHost>
//ServerAdmin指定管理员邮箱,
//DocumentRoot为该虚拟主机站点的根目录,
//ServaerName为网站的域名
//ServerAlias为网站的第二域名
//ErrorLog为站点的错误日志
//CustomLog为站点的访问日志
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
</VirtualHost>
# mkdir -p /data/wwwroot/test0920.com /data/wwwroot/testdomain.com
# echo “www.test0920.com” > /data/wwwroot/test0920.com/index.html
# echo “www.testdomain.com” > /data/wwwroot/testdomain.com/index.html
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 www.test0920.com
# curl -x127.0.0.1:80 www.testdomain.com
# curl -x127.0.0.1:80 www.abc.com
用户认证
# ls /data/
# cd /usr/local/src/
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
<Directory /data/wwwroot/testdomain.com>
// 指定认证的目录
AllowOverride AuthConfig
// 这个相当于打开认证的开关
AuthName "testdomain.com user auth"
//自定义认证的名字,作用不大
AuthType Basic
//认证的类型,一般为Basic
AuthUserFile /data/.htpasswd
//指定密码文件所在位置
require valid-user
// 指定需要认证的用户为全部可用用户
</Directory>
</VirtualHost>
# /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd cyx
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
注意:
C:\Windows\System32\drivers\etc\hosts打开文件在最后一行输入:
#虚拟机IP www.testdomain.com
域名跳转
# cd /usr/local/src/
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
<IfModule mod_rewrite.c>
RewriteEngine on
// 打开rewrite功能
RewriteCond %{HTTP_ HOST} !^www.testdomain.com$
//定义rewrite的条件,当主机名不是www.testdomain.com时满足条件
RewriteRule ^/(. *)$ http://www.testdomain.com/$1 [R=301,L]
//定义rewrite规则,RewriteRule后面分为三个部分,第一部分为当前网址
//第二部分为要跳转的网址,第三部分是选项,需要括号括起来。
</IfModule>
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -M |grep -i rewrite
# vi /usr/local/apache2.4/conf/httpd.conf
注:搜索rewrite,把前面#去掉
# /usr/local/apache2.4/bin/apachectl graceful
# /usr/local/apache2.4/bin/apachectl -M |grep -i rewrite
注:有Rewrite_module(share)输出,说明正常加载rewrite模块
# curl -x127.0.0.1:80 -I testdomain.com
访问日志
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domain.com$
RewriteRule ^/(.*)$ http://www.testdomain.com/$1 [R=301,L]
</IfModule>
Customlog "logs/testdomain. com-access_log" combined
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 -I testdomain.com
# tail /usr/local/apache2.4/logs/testdomain.\ com-access_log
访问日记不记录静态文件
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.testdomain.com$
RewriteRule ^/(.*)$ http://www.testdomain.com/$1 [R=301,L]
</IfModule>
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image- request
SetEnvIf Request_URI ".*\.css$" image- request
Customlog "logs/testdomain1.com-access_log" combined
</VirtualHost>
//先定义了一个image-request环境变量,把gif,jpg,png, bmp,swf,js,css等格式文件全归类到此
# /usr/local/apache2.4/bin/apachectl -t
# mkdir -p /data/wwwroot/www.123.com //因为此目录不存在
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 -I testdomain.com
# ls /usr/local/apache2.4/logs/
访问日记切割
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.testdomain.com$
RewriteRule ^/(.*)$ http://www.testdomain.com/$1 [R=301,L]
</IfModule>
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image- request
SetEnvIf Request_URI ".*\.css$" image- request
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined env=!image-request
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# touch /data/wwwroot/testdomain.com/aming.jpg
# touch /data/wwwroot/testdomain.com/aming.txt
# curl -x127.0.0.1:80 www.testdomain.com/aming.jpg
# curl -x127.0.0.1:80 www.testdomain.com/aming.txt
# cat /usr/local/apache2.4/logs/123.com-access_20201013.1og
静态元素过期时间
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.testdomain.com$
RewriteRule ^/(.*)$ http://www.testdomain.com/$1 [R=301,L]
</IfModule>
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image- request
SetEnvIf Request_URI ".*\.css$" image- request
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined env=!image-request
<IfModule mod_ expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days“
ExpiresByType image/jpeg "access plus 24 hours"
ExpiresByType image/png "access plus 24 hours'
ExpiresByType text/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>
</VirtualHost>
//这里gif,jpeg, png格式的文件过期时长为1天,css. js. flash格式的文件过期时长为2小时
# /usr/local/apache2.4/bin/apachectl -t //没有输出则说明当前httpd并不支持expires模块,所以需要修改配置文件
# /usr/local/apache2.4/bin/apachectl graceful
# /usr/local/apache2.4/bin/apachectl -M |grep -i expires
# vi /usr/local/apache2.4/conf/httpd.conf
//搜索关键词expires,
#LoadModule expires_ module modules/mod_ expires .so
//把前面#删掉
# /usr/local/apache2.4/bin/apachectl graceful
# /usr/local/apache2.4/bin/apachectl -M |grep -i expires //expires_module(share)有这行输出说明正确加载expires模块
# curl -x127.0.0.1:80 -I www.testdomain.com/aming.txt
# curl -x127.0.0.1:80 -I www.testdomain.com/aming.jpg
配置防盗链
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined env=!image-request
<Directory /data/wwwroot/testdomain.com>
SetEnvIfNoCase Referer "http://www.testdomain.com" local_ref
SetEnvIfNoCase Referer "http://testdomain.com" local_ref
SetEnvIfNoCase Referer "^$" local ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
</Directory>
</VirtualHost>
//首先定义允许访问链接的referer,其中^$为空referer,
//当直接在浏览器里输入图片地址去访问它时,它的referer就为空。
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 -I -e "http://www.testdomain.com/testdomain.txt" http://testdomain.com/aming.jpg
# curl -x127.0.0.1:80 -I -e "http://www.1234.com/1.txt" http://testdomain.com/aming.jpg
# curl -x127.0.0.1:80 -I -e "http://www.testdomain.com/123.txt" http://www.123.com/index.html
访问控制-Diretory
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined
<Directory /data/wwwroot/testdomain.com/admin/>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
</VirtualHost>
//Directory是用来指定限制访问的目录,order定义控制顺序
# mkdir /data/wwwroot/testdomain.com/admin
# echo "admin" > /data/wwwroot/testdomain.com/admin/index.html > /usr/local/apache2.4/logs/123.com-access_20201013.1og /
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x192.168.10.10:80 -I testdomain.com/admin/index.html
# curl -x127.0.0.1:80 -I testdomain.com/admin/index.html
FileMatch
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined
<Directory /data/wwwroot/testdomain.com/admin/>
<Filesmatch "admin.php(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Filesmatch>
</Directory>
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# touch /data/wwwroot/testdomain.com/admin/admin.php
# curl -x127.0.0.1:80 www.testdomain.com/admin/admin.php -I
# curl -x192.168.10.10:80 www.testdomain.com/admin/admin.php -I
访问控制-禁止解析PHP
# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined
<Directory /data/wwwroot/testdomain.com/upload>
php_admin_flag engine off
</Directory>
</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# mkdir -p /data/wwwroot/testdomain.com/upload/
# cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/testdomain.com/upload/
# curl -x127.0.0.1:80 testdomain.com/upload/1.php
# curl -x192.168.10.10:80 testdomain.com/upload/1.php
访问控制-user_agent
257 vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.*[NC]
RewriteRule .* - [F]
</IfModule>
</VirtualHost>
//%{HTTP_USER_AGENT}为user_agent的内置变量,NC代表“不区分大小写”,F代表Forbidden,OR表示“或者”
258 /usr/local/apache2.4/bin/apachectl -t
259 /usr/local/apache2.4/bin/apachectl graceful
260 curl -I -x127.0.0.1:80 testdomain.com/upload/1.php
261 curl -A “123123” -I -x127.0.0.1:80 testdomain.com/upload/1.php
PHP配置
PHP基础配置
# /usr/local/php/bin/php -i |grep -i "loaded configuration file"
注:显示none
解决:
# cd /usr/local/src/php-5.6.30
# cp php.ini-production /usr/local/php/etc/
# mv /usr/local/php/etc/php.ini-production /usr/local/php/etc/php.ini
# /usr/local/php/bin/php -i |grep -i "loaded configuration file"
# vi /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
搜索date. timezone设置如下:
date.timezone = Asia/Shanghai
日志相关配置
# vi /usr/local/php/etc/php.ini
//记录错误日志:搜索log_errors, 改成如下
log_errors=On
//记录错误日志目录位置:搜索error. log,改为
error_log = /var/log/php/php_errors.log
//记录错误日志级别:搜索error_reporting 改为
error_reporting = E_ALL
//再搜索display_errors,改为
display_errors = Off
# mkdir /var/log/php
# chmod 777 /var/log/php
# /usr/local/apache2.4/bin/apachectl graceful
# vi /data/wwwroot/testdomain.com/test.php
<?php
echo 111
?php>
# curl -A "123" -I -x127.0.0.1:80 testdomain.com/test.php
# cat /var/log/php/php_errors.log
配置open_basedir
# vi /usr/local/php/etc/php.ini
//搜索open_basedir,改成如下
open_ basedir = /tmp:/data/wwwroot/testdomain.com
# /usr/local/apache2.4/bin/apachectl graceful
# cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/testdomain.com/
# curl -x127.0.0.1:80 -I testdomain.com/1.php
虚拟主机配置open_basedir
# vim /usr/local/apache2 .4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/testdomain.com"
ServerName www.testdomain.com
ServerAlias testdomain.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.1og 86400"combined
php_admin_value open_basedir "/data/wwwroot/testdomain.com/:/tmp/"
</VirtualHost>
PHP扩展模块安装
# /usr/local/php/bin/php -m
# 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
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make
# make install
# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
# vi /usr/local/php/etc/php.ini
//增加一行配置(可以放在文件最后一行)
extension = redis.so
# /usr/local/php/bin/php -m | grep redis