lamp
LAMP环境搭建与配置
安装MySQL
(1) 下载安装包
寻找安装包 可以去MySQL官网去下载 。
查看自己的Linux时多少位的 。
# uname -i
下载源码包:
#cd /usr/local/src //建议以后所有安装包 都放到此目录下
#wget http://mirrors.sohu.com/mysql/MYSQL-5.6.35-linux-glibc2.5-x86_64.tar.gz //若该地址失效到官网寻找一个新的下载
(2) 初始化
#Tar zxf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz //解压
#[ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
#mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql //挪动位置
#useradd -s /sbin/nologin mysql //建立MYSQL用户,因为启动需要该用户
#cd /usr/local/mysql
#mkdir -p /data/mysql //创建daradir ,数据库文件会放到这里面
# chown -R mysql:mysql /data/mysql //更改权限,不更改后续操就会出问题
#.scripts/mysql_install_db --usr=mysql --datadir=/data/mysql
&& 表示当前面命令执行成功时,才会执行后面的
--usr表示定义数据库的以哪个用户身份在运行
--datadir 表示定义数据库的安装目录(建议放到大空间的分区上)
执行最后一条命令时,有个错误信息“FATAL ERROR: please install the following Perl modules before executing ./scripts/mysq. install db: Data::Dumper" ,这是因为缺少包perl-Module- Install,使用命令yum install -y perl-Module- Install安装它。
重新安装执行一次最后一条命令 并且会在/data/myssql下面生成几个文件和目录,说明执行正确:或者在执行玩最后一条命令,马上执行 echo &?
看是否为零
配置MySQL
复制配置文件
#cp support-files/my-default.cnf /etc/my.cnf
Cp :是否覆盖/etc/my.cnf ? y
修改配置文件成如下:
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL,Start at 70% of total RAM for dedicated server, else 10%.
innodb_ _buffer_ pool_ _size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log. Bin=aminglinux
# These are commonly set, remove the # and set as required,
Basedir=/usr/local/mysql
Datadir=/data/mysql
port = 3306
server_ id=128
Socket=/tmp/mysql. Sock
# Remove leading # to set options mainly useful for reporting servers .
# Remove leading # to set options mainly useful for reporting servers .
# Adjust sizes as needed, experiment to find the optimal values .
join_ _buffer. _size = 128M
sort_ buffer_ size=2M
read_ rnd_ _buffer_ size = 2M
sql_ mode=NO_ _ENGINE_ SUBSTITUTION, STRICT_ TRANS_ _TABLES
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
datadir是定义的存放数据的地方 一般情况,错误日志也会记录在这个目录下面。
port定义MYSQL服务器监听端口,如果不定义默认就是3306
Server_id 定义该MYSQL服务ID号,这个参数用在做主从配置的时候。
Socketd定义MYSQL服务监听的套接字地址
复制启动该脚本文件并修改其属性,
# cp support-files/mysql.server /etc/init.d/mysql
#chmod 755 /etc/init.d/mysql
修改启动脚本
#vim /etc/init.d/mysql
需要修改的地方有 datadir=/data/mysql(前面初始化数据库定义的目录)。把启动脚本加入系统服务项,设定开机启动并启动MYSQL。
# chkconfig --add mysql //把mysql服务加入到系统服务列表中
#chkconfig mysql on //开机启动
# service mysql start //启动mysql服务
如果启动不了 到/data/mysql目录下查看错误日志,这个日志名通常是主机名.err,检查MYSQL是否启动的命令为
#ps aux |grep mysql //结果应该大于2行
# netstat -lnp|grep 3306 //看看有没有监听3306端口
安装apache
#cd /usr/local/src.
#wget http://mirrors.cnnic/apache/httpd/httpd-2.4-25.tar.gz
//若这个地址失效寻找一个新的下载地址
# wget http: //mirrors.hust.edu,cn/apache/apr/apr-1.5.2.tar.gz
# wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.5.4.tar.gz
解压下载好的源压缩包
#tar zxvf httpd-2.4.25.tar.gz
#tar zxvf apr-1.5.2.tar.gz
#tar zxvf apr-util-1.5.4.tar.gz
安装apr以及apr-util
#cd /usr/local/src/apr-1.5.2
#./configure --prefix=/usr/local/apr
#make && make install
# cd /usr/local/src/apr-util-1.5.4
#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
#make && make install
安装apr-util时出现如下的错误
解决方法
Yum install -y expat-devel
安装完apr以及apr-util 继续安装httpd 配置编译参数
#cd /usr/local/src/httpd-2.4.25
#./configure \ //这里反斜杠表示是转移字符,加上可以把命令写成多行
--prefix=/usr/local/apache2.4
--with-apr=/usr/local/apr
--with-apr-util=/usr/local/apr-util
--enable-so
--enable-mods-shared=most
--prefix 指定安装目录
--enable-so 表示启用DSO DSO意思是,把某些功能模块(一个功能模块就是一个so文件,这些文件在编译完httpd后会看到)的形式展现出来
提前安装pcre-devel
#yum install -y pcre pcre-devel
编译和安装
#make
#make install
查看httpd的目录结构以及modules目录下面的模块
#/usr/local/apache2.4/bin/apachectl -M
安装PHP
首先下载PHP
#cd /usr/local/src
#wget http://cn2.php.net/distributions/php-5.6.30.tar.gz //如果失败 到r.aminglinux.com 下载最新版本
# tar zxf 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-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
错误1
解决方法
#yum install -y libxml2-devel
错误2
解决方法
#yum install -y openssl openssl-devel
错误3
解决方法
#yum install -y bzip2 bzip2-devel
错误4
解决方法
#yum install -y libpng libpng-devel
错误5
解决方法
#yum install -y freetype freetype-devel
错误6
解决方法
#yum install -y epel-release
#yum install -y libmcrypt-devel
Centos 默认的yum源没有libmcrypt-devel这个包,所以只能借助epel yum扩展源
然后编译安装
#make
#make install
最后复制配置文件
#cp php.ini-production /usr/local/php/etc/php.ini
配置httpd支持PHP
httpd的主配置文件为/usr/local/apache2.4/conf/httpd.conf , 编辑这个文件
# vim /usr/local/apache2.4/conf/httpd.conf
搜索ServerName 把ServerName www.example.com:80 前面的井号删除
找到如下内容:
改写如下 <Directory/>
AllowOverride none
Require all granted
</Directory>
修改它的目的是,允许所有请求,如果不设置改行,则我们访问时候会报403,在搜索下一行
AddType application/x-gzip .gz .tgz
在该行下面添加
AddType application/x-httpd-php .php
找到下面这一段
修改为
测试LAMP是否成功
1测试配置文件是否正确
启动httpd之前需要先检验配置文件是否正确
#/usr/local/apache2.4/bin/apachectl -t
如果有错误,请继续修改配置文件httpd.conf
如果正确则会显示Syntax OK .
启动httpd命令如下:
# /usr/local/apache2.4/bin/apachectl start
查看是否启动
#netstart -lnp |grep httpd
另外,还可以用curl命令进行简单测试
# Curl localhost
测试是否正确解析PHP
首先编译一个测试脚本,
#vim/usr/local/apache2.4/htdocs/1.php
<?php
Echo “php解析正常”
?>
保存脚本后测试
#Curl localhost/1.php
解析正常
显示以上信息表示PHP解析正确
HTTP配置
默认虚拟主机
编辑配置文件 httpd.conf
#vim /usr/local/apache2.4/conf/httpd.conf //搜索关键词httpd.vhost ,找到这行把井号删除
保存主配置文件,然后编译虚拟机配置文件:
# vim /usr/local/apache2.4/conf/extra/hpptd-vhsts.conf
//这个配置文件就是主配置文件了,后面操作都是在这个里面完成的
<VirtualHost *:80>
ServerAdmin admin@aminglinux.com
DocumentRoot “ /data/wwwroot/aming.com”
ServerName aming.com
ServerAlias www.aming.com
Errorlog “/logs/aming.com-error_log”
CustomLog “ logs/aming.com-access_log ”common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/www.123.com”
ServerName www.123.com
</VirtualHost>
# mkdir -p /data/wwwroot/aming.com /data/wwwroot/www.123.com
#echo “aming.com” > /data/wwwroot/aming.com/index.html //网页默认主页就是index.html
# echo “123.com” > /data/wwwroot/123.com/index.html
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful //这个操作是重新加载httpd服务,避免重启
#curl -x127.0.0.1:80 aming.com
Aming.com
#curl -x127.0.0.1:80 www.123.com
123.com
#curl -x127.0.0.1:80 www.abc.com
Aming.com
用户认证
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot “ /data/wwwroot/www.123.com”
ServerName www.123.com
<Directory /data/wwwroot/www.123.com> //指定认证目录
AllowOverride AuthConfig //这个相当于打开认证的开关
AuthName “123.com user auth” //自定义认证名字 ,作用不大
AuthType Basic //认证的类型,一般为Basic
AuthUserFile /data/.htpasswd //指定密码文件所在位置
Require valid-user //指定需要认证的用户为全部可用用户
</Directory>
</VirtualHost>
配置文件完成,但还需要创建密码文件。
#/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming
// htpasswd命令为创建用户的工具, -c为create -m指定密码加密方式为MD5
// /data/.htpasswd为密码文件,aming为要创建的用户,第一次执行该命令需要加-c
// 第二次创建新用户时,就不用加-c了
否则/data/.htpasswd文件就会被重置,之前的用户被清空
# /usr/local/apache2.4/bin/apachectl -t
//验证没有问题后才能重启或者重新加载
# /usr/local/apache2.4/bin/apachectl graceful
配置完成后需要到宿主机上去修改一下hosts文件,类似linux上的/etc/hosts 把www.123.com域名指向你的这台linux机器 这样才能通过浏览器访问到www.123.com
#192.168.195.135 www.123.com
//左边的ip地址为你的linux IP ,
保存hosts文件后,就可以用浏览器进行访问 www.123.com。
输入用户和密码将会进入www.123.com 。上面操作是针对整个站点做的认证,其实也可以针对某个目录或者某个文件进行认证,比如要对www.123.com/admin目录进行认证,只需要修改一个地方,把<Directory /data/wwwroot/www.123.com>改为<Directory /data/wwwroot/www.123.com/admin>。如果是一个文件,比如www.123.com/admin.php
<VirtualHost *:80>
DocumentRoot “ /data/wwwroot/www.123.com”
ServerName www.123.com
<FilesMatch admin.php>
AllowOverride AuthConfig
AuthType Basic
AuthName “123.com user auth”
AuthUserFile /data/.htpasswd
require valid-user
</FileMatch>
</VirtualHost>
但这样会有一个问题 ,网址中带有admin.php的链接都会弹出认证窗口
配置域名跳转
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com"
# ServerName www.123.com
#ServerAlias 123.com
#<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
# RewriteEngine on //打开rewrite
# RewriteCond %{HTTP_HOST} !^www.123.com$
//定义rewrite的条件,当主机名(域名)不是www.123.com时满足条件
# RewriteRule ^/(.*)$ http://123.com/$1 [R=301,L]
//定义rewrite规则,当满足上面条件时,这条规矩才会执行
# </IfModule>
#</VirtualHost>
# /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite
//如果没有任何输出,则需要编译配置文件
# vim /usr/local/apache2.4/conf/httpd.conf
//搜索rewrite ,找到那行把前面的#删除
# /usr/local/apache2.4/bin/apachectl graceful
#/usr/local/apache2.4/bin/apachectl graceful -M |grep -i rewrit
配置完后,进行测试,在这里用curl就可以看到效果
#curl -x127.0.0.1:80 -I 123.com
配置访问日志
#vim /usr/local/apache2.4/conf/httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
%h为访问网站ip;%l为远程登录名,这个字段上基本为-;%u为用户名,当使用用户认证时,这个字段为认证的用户名;%t为时间;%r为请求的动作(比如curl -I时九尾HEADE);%s为请求的状态码,写成%>s为最后的状态码;%b为传输数据大小;%{Referer}i为referer信息(请求本地上一次的地址就为referer);%{User-Agent}i为浏览器标识
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com虚拟主机改写如下
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com"
# ServerName www.123.com
#ServerAlias 123.com
#<IfModule mod_rewrite.c>
# RewriteEngine on
# RewriteCond %{HTTP_HOST} !^www.123.com$
# RewriteRule ^/(.*)$ http://123.com/$1 [R=301,L]
# </IfModule>
# CustomLog "logs/123.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 123.com
#tail /usr/local/apache2.4/logs/123.com-access_log
发现生成日志并且有相关日志
限制图片js css 等静态文件写入到日志中,防止日志文件过大
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com"
# ServerName www.123.com
# ServerAlias 123.com
#<IfModule mod_rewrite.c>
# RewriteEngine on
# RewriteCond %{HTTP_HOST} !^www.123.com$
# RewriteRule ^/(.*)$ http://123.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_%Ym%d.log 86400"combined env=!image-request
</VirtualHost>
先定义了一个image-request环境变量,把gif、jpg、 png、bmp. swf、js、 Css等格式的文件全部归
类到image- request里,后面的env=!image-request有用到- -个"!", 这相当于取反了,意思是把image . request以外的类型文件记录到日志里。
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
#curl -x127.0.0.1:80 /logs/ //再次访问 才会生成新的日志
# ls /usr/local/apache2.4/logs
#touch /data/wwwroot/www.123.com/aming.jpg
#touch /data/wwwroot/www.123.com/aming.txt
# curl -x127.0.0.1:80 www.123.com/aming.jpg
# curl -x127.0.0.1:80 www.123.com/aming.txt
# cat /usr/local/apache2.4/logs/132.com-access_20170318.log //查看日志
配置静态元素过期时间
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com"
# ServerName www.123.com
# ServerAlias 123.com
# <IfModule mod_rewrite.c>
# RewriteEngine on
# RewriteCond %{HTTP_HOST} !^www.123.com$
# RewriteRule ^/(.*)$ http://www.123.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_%Ym%d.log 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>
这部分配置用到了mod, _expires模块, 相关配置内容并不难理解,通过字面也可以大致猜到其含义。这里gif. jpeg. png格式的文件过期时长为1天,css、 js、flash格式的文件过期时长为2小时,其他文件过期时长为0,也就是不缓存。保存配置文件,检查配置是否有问题,没问题重新加载服务:
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
//检查httpd是否加载expires模块
#/usr/local/apachee2.4/bin/apachectl graceful -M |grep -i expires
//没有任何输出,说明当前httpd并不支持expires模块,所以速妖修改配置文件,打开模块
#vim /usr/local/apache2.4/conf/httpd.conf
//搜索expries关键词,找到
#LoadModule expires_ module modules/mod_ expires . so删掉前面#
# /usr/local/apache2.4/bin/apachectl graceful
#/usr/local/apachee2.4/bin/apachectl graceful -M |grep -i expires
expires_ module (shared) //有这行输出,说明已经正确加载expires模块
#curl -x127.0.0.1:80 -I www.123.com/aming.jpg
#curl -x127.0.0.1:80 -I www.123.com/aming.txt
配置防盗链
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com
# ServerName www.123.com
# ServerAlias 123.com
# CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Ym%d.log 86400"combined
# <Directory /data/wwwroot/www.123.com>
# SetEnvIfNoCase Referer "http://www.123.com" local_ref
# SetEnvIfNoCase Referer "http://123.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>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -x127.0.0.1:80 -I -e “http:// www.123.com/123.txt ”http://www.123.com/aming.jpg
# curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txt” http://www.123.com/aming.jpg
# curl -x127.0.0.1:80 -I -e “http://www.1234.com/1.txt” http://www.123.com/index.html
访问控制
这样做的目的为了防止别有用心的人拿到后台权限,并获得内部数据
限制ip访问,编译配置文件:
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改成如下内容
# <VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com
# ServerName www.123.com
# ServerAlias 123.com
# CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Ym%d.log 86400"combined
# <Directory /data/wwwroot/www.123.com/admin/>
# Order deny,allow
# Deny from all
# Allow from 127.0.0.1
# </Directory>
#</VirtualHost>
使用<Directory>来指定限制访问的目录,order定义顺序,哪个在前面就先匹配哪个规则。
#mkdir -p /data/wwwroot/www.123.com/admin/ //创建admin目录,模拟网站后台。
# echo “admin ” > /data/wwwroot/www.123.com/admin/index.html
//在后台目录下面创建文件, 并写入内容
#> /usr/local/apache2.4/logs/123.com-access_20191220.log
// 清空当天的访问日志
#curl -x192.168.195.135 -I www.123.com/admin/index.html
#cat /usr/local/apache2.4/logs/123.com-access_20191220.log
浏览器访问提示 Forbidden,其实就是403.再来看日子就会看到对应的ip。
# tail -1 /usr/local/apache2.4/logs/123.com-access_20191220.log
也可以单独针对某个文件来做限制:
<Directory /data/wwwroot/www.123.com>
<Filesmatch “admin.php(.*)”>
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Filesmatch>
</Directory>
为了避免让黑客拿到服务器权限,我们需要把能上传文件的目录直接禁止解析PHP代码(不用担心会影响网站访问,若这种目录也需要解析PHP,那说明程序员不合格)配置如下
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com
# ServerName www.123.com
# ServerAlias 123.com
# CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Ym%d.log 86400"combined
# <Directory /data/wwwroot/www.123.com/upload>
# php_admin_flag engine off
# </Directory>
#</virtualHost>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
#cp /usr/local/apache2.4/htdocs/1.php /data/wwwroot/www.123.com/upload/
#curl -x127.0.0.1:80 www.123.com/upload/1.php
这说明1.php是不能正常解析的
多台电脑同时访问一个网站会耗尽服务器资源,从而使之不能正常工作。我们可以通过限制user_agent发挥防攻击作用。
修改user_agent
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //编辑虚拟主机配置文件
//内容改为如下
#<VirtualHost *:80>
# DocumentRoot "/data/wwwroot/www.123.com"
# ServerName www.123.com
# ServerAlias 123.com
# CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 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>
# /usr/local/apache2.4/bin/apachectl -t
# /usr/local/apache2.4/bin/apachectl graceful
# curl -I -x127.0.0.1:80 www.123.com/ipload/1.php
#curl -A “123123” -I -x127.0.0.1:80 www.123.com/upload/1.php
Curl -A 选项指定user_agent 第一个请求,user_agent“curl/7.29”匹配了第一个条件,所以会403;杜尔哥请求,user_agent以自定义的“123123”没有匹配任何条件,所以状态码为200
PHP配置
#/usr/local/php/bin/php -i |grep -i “loaded configuration file”
Php.ini为PHP的配置文件,可以看出其/usr/local/php/bin/php ,第一行的warning为警告信息,可以忽略,取消这个警告需要编辑php.ini
Date.timezone= Asia/Shanghai
#/usr/local/php/bin/php -i |grep -i “loaded configuration file”
配置 error_log
# vim /usr/local/php/etc/php.ini
修改文件如下
Log_errors = on
Error_log= /var/log/php/php_errors.log
Error_reporting = E_ALL & ~E_NOTICE
Display_errors =off
#make /var/log/php
#chmod 777 /var/log/php // 需要保证PHP的错误日志所在目录存在,并且权限为可写
# /usr/local/apache2.4/bin/apachectl graceful
# vim /data/wwwroot/www.123.com/test.php //写入如下内容,故意把结尾去掉;丢掉
# curl -A “123” -I -x127.0.0.1:80 www.123.com/test.php
出现了状态码500,这说明了我们访问的页面存在错误的,此时需要查看PHP错误日志来判断错误信息
# cat /var/log/php/php_errors.log
配置open_basedir
# vim /usr/local/php/etc/php.ini
Open_basedir = /tmp:/data/wwwroot/www.123.com
# /usr/local/apache2.4/htdocs/1.php /data/wwwroot/aming.com/
#curl -x127.0.0.1:80 -I aming.com/1.php
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
ServerAlias 123.com
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400"combined
php_admin_value open_basedir "/data/wwwroot/www.123.com"
</VirtualHost>
PHP动态扩展模块安装
# /usr/local/php/bin/php -m
# cd /usr/local/src/
#wget https://codeload.github.com/phpredis/phpredis/zip/develop
wget http://pecl.php.net/get/redis-2.2.5.tgz
# mv develop phpredis-develop.zip
# unzip !$
# cd phpredis-develop/
# /usr/local/php/bin/phpize //目的时生成configure
#yum install -y autoconf
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
#make
#make install
//make install 的时候会把编译好的redis.so放到这个迷路下面,这个目录也是扩展模块存放目录
# /usr/local/php/bin/php -i |grep extension_dir //查看扩展模块存放目录,我们可以再php.ini中自定义该路径
# ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226
# vim /usr/local/php/etc/php.ini
extension= redis.so
# /usr/local/php/bin/php -m |grep redis //查看是否加载了redis模块

浙公网安备 33010602011771号