|
LAMP搭建
安装Mysql
1. 下载二进制编译好的mysql到/usr/local/src
cd /usr/local/src
[iyunv@localhost src]# wget http://mirrors.sohu.com/mysql/My ... 6_64-glibc23.tar.gz
2. 解压
[iyunv@localhost src]# tar zxf mysql-5.1.72-linux-x86_64-glibc23.tar.gz
3. 创建mysql用户与创建数据库数据文件夹并修改权限
[iyunv@localhost mysql-5.1.72-linux-x86_64-glibc23]# useradd -s /sbin/nologin/ -M mysql
[iyunv@localhost mysql-5.1.72-linux-x86_64-glibc23]# mkdir -pv /data/mysql/
[iyunv@localhost mysql-5.1.72-linux-x86_64-glibc23]# chown -R mysql /data/mysql
4. 把二进制mysql包移动并重命名到/usr/local/mysql
[iyunv@localhost src]# mv mysql-5.1.72-linux-x86_64-glibc23 /usr/local/mysql
5.修改mysql目录权限并初始化mysql,再重新修改主权限
[iyunv@localhost mysql]# chown -R mysql:mysql /usr/local/mysql
[iyunv@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/msyql
[iyunv@localhost mysql]# chown -R root /usr/local/mysql
6. 把配置文复制到/etc/my.cnf 如存在将它覆盖。
[iyunv@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
7. 复制启动脚本到/etc/init.d/mysqld并更改脚本内容,加入服务列表中
[iyunv@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
basedir=/usr/local/mysql //二进制mysql程序保存目录
datadir=/data/mysql //数据库保存目录
[iyunv@localhost mysql]# chkconfig --add mysqld //加入服务启动列表
[iyunv@localhost mysql]# chkconfig mysqld on //启动mysqld列表
[iyunv@localhost mysql]# chkconfig --list | grep mysqld //查看mysqld运行级别
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[iyunv@localhost mysql]# /etc/init.d/mysqld start //启动mysql
ps aux | grep mysql //查看mysql进程
netstat -lnp //查看mysql的3306端口是否运行
[iyunv@localhost htdocs]# cat /usr/local/mysql/bin/mysqlbug | grep -i configure //查看记录编译命令
安装Apache
1. 下载Apache安装包
cd /usr/local/src
[iyunv@localhost src]#wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.31.tar.bz2
2. 解压
[iyunv@localhost src]#tar -jxf httpd-2.2.31.tar.bz2
3. 配置编译参数
vim INSTALL // 如不懂编译,可查看此文档
[iyunv@localhost httpd-2.2.31]# ./configure
--prefix=/usr/local/apache2 //指定安装目录
--with-included-apr //依赖包
--enable-so //表示启用DSO
--enable-deflate=shared //表示共享的方式编译deflate
--enable-expires=shared //表示共享的方式编译expires
--enable-rewrite=shared //表示共享的方式编译rewrite
--with-pcre //与正则相关的库
make
echo $? //检查是否正常
make install
echo $? //检查是否正常
4. 启动httpd服务并查看进程与监听端口
[iyunv@localhost httpd-2.2.31]# /usr/local/apache2/bin/apachectl start
[iyunv@localhost httpd-2.2.31]# ps aux | grep httpd
[iyunv@localhost httpd-2.2.31]# netstat -lnp | grep httpd
5. 列出静态与动态模块
/usr/lcoal/apache2/bin/apachectl -M
6. 查看动态模块、静态模块存在位置与列出静态加载模块
ls /usr/local/apache2/modules
ls /usr/local/apache2/bin/httpd
/usr/local/apache2/bin/apachectl -l
7.查看配置文件是否有语法错误与重新加载配置文件
ls /usr/local/apache2/conf/httpd.conf
/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl graceful
[iyunv@localhost htdocs]# cat /usr/local/apache2/build/config.nice //查看记录编译命令
安装PHP
1. 下载Apache安装包
cd /usr/local/src
[iyunv@localhost src]#wget http://cn2.php.net/distributions/php-5.4.36.tar.bz2
2. 解压
[iyunv@localhost src]#tar -jxf php-5.4.36.tar.bz2
3. 配置编译参数
[iyunv@localhost src]# cd php-5.4.36
[iyunv@localhost php-5.4.36]# ./configure
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache2/bin/apxs //自动安装动态扩展模块
--with-config-file-path=/usr/local/php/etc
--with-mysql=/usr/local/mysql //php依赖于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
--disable-ipv6
4.编译错误解决
错误1: configure: error: xml2-config not found. Please check your libxml2 installation.
解决如下:
[iyunv@localhost php-5.4.36]# yum list | grep -i xml2
[iyunv@localhost php-5.4.36]# yum install -y libxml2-devel.x86_64
错误2:configure: error: Please reinstall the BZip2 distribution
解决如下:
[iyunv@localhost php-5.4.36]# yum list | grep -i BZip2
[iyunv@localhost php-5.4.36]# yum install -y bzip2-devel.x86_64
错误3:configure: error: jpeglib.h not found.
解决如下:
[iyunv@localhost php-5.4.36]# yum list | grep -i jpeg
[iyunv@localhost php-5.4.36]# yum install -y libjpeg-turbo-devel.x86_64
错误4:configure: error: png.h not found.
解决如下:
[iyunv@localhost php-5.4.36]# yum list | grep -i png
[iyunv@localhost php-5.4.36]# yum install -y libpng-devel.x86_64
错误5:configure: error: freetype-config not found.
解决如下:
[iyunv@localhost php-5.4.36]# yum list | grep -i freetype
[iyunv@localhost php-5.4.36]# yum install -y freetype-devel.x86_64
错误6:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决如下:
[iyunv@localhost php-5.4.36]# rpm -ivh 'http://www.lishiming.net/data/attachment/forum/epel-release-6-8_64.noarch.rpm' //安装epel源
[iyunv@localhost php-5.4.36]# yum list | grep -i libmcrypt
[iyunv@localhost php-5.4.36]# yum install -y libmcrypt-devel.x86_64
5.排除错误后再编译
make
echo $? //检查是否正常
make install
echo $? //检查是否正常
6.查看动态模块与静态模块及信息
ls /usr/local/apache2/modules/ //目录下多了libphp5.so动态模块,是因为apxs更新了libphp5.so动态模块
/usr/local/php/bin/php -m //查看静态模块
/usr/local/php/bin/php -i // 查看相关模块信息及编译命令
PHP解析
1. 访问网页入口
[iyunv@localhost php-5.4.36]# cd /usr/local/apache2/htdocs/
root@localhost htdocs]# /usr/local/php/bin/php 2.php //php可执行文件执行2.php
2.php解析
在/usr/local/apache2/conf/httpd.conf配置文件中添加两行
AddType application/x-httpd-php .php //添加这一行,如果不添加,http无法解析php文件
<IfModule dir_module>
DirectoryIndex index.html index.php //添加php索引 index.php
</IfModule>
[iyunv@localhost htdocs]# /usr/local/apache2/bin/apachectl -t //每次修改httpd.conf配置文件都要检查是否有语法问题
[iyunv@localhost htdocs]# /usr/local/apache2/bin/apachectl graceful //每次修改httpd.conf配置文件都要检查重新加载
3.增加php配置文件并重新加载apache
[iyunv@localhost htdocs]# cp /usr/local/src/php-5.4.36/php.ini-production /usr/local/php/etc/php.ini
[iyunv@localhost htdocs]# /usr/local/apache2/bin/apachectl graceful
4.用curl测试info.php
[iyunv@localhost htdocs]# curl 10.30.4.132/info.php
安装Discuz
1. 创建Discuz目录
[iyunv@localhost ~]# mkdir /data/www
2. 下载Discuz安装包
cd /usr/local/src
[iyunv@localhost www]#wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip
3.解压
[iyunv@localhost www ]#unzip Discuz_X32_SC_GBK.zip
4.将程序目录upload移出来并删除多余文件
[iyunv@localhost www]# mv upload/* ./
[iyunv@localhost www]# rm -rf readme/ utility/ upload/ Discuz_X3.2_SC_GBK.zip
5.配置虚拟主机
[iyunv@localhost www]# vim /usr/local/apache2/conf/httpd.conf //打开配置文件加载虚拟主机这一项
Include conf/extra/httpd-vhosts.conf //取消#加载虚拟主机
[iyunv@localhost www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //配置虚拟主机
<VirtualHost *:80>
DocumentRoot "/data/www" //主目录
ServerName www.test.com //服务器域名
ServerAlias www.aaa.com //别名
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all //把Deny from all 修改为 Allow from all
</Directory>
[iyunv@localhost www]# /usr/local/apache2/bin/apachectl -t
使用httpd检测语法问题出现httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
解决如下:
[iyunv@localhost www]# vim /usr/local/apache2/conf/httpd.conf //打开配置文件
ServerName www.example.com:80 //找到这一行把前面#取消
6.把目录设置成daemon主
[iyunv@localhost www]# chown -R daemon config data uc_client/data uc_server/data
7. 配置mysql
[iyunv@localhost www]# vim /etc/profile.d/path.sh //配置环境变量,将mysql的路径加进去
#!/bin/bash
#
export PATH=$PATH:/usr/loca/mysql/bin
[iyunv@localhost www]# source /etc/profile.d/path.sh //重新加载环境变量配置文件
[iyunv@localhost www]# mysql
mysql> create database discuz; //创建数据库
mysql> grant all on discuz.* to 'aming'@'localhost' identified by 'aminglinux' //创建用户
Apache用户认证
1. 创建目录
[iyunv@localhost www]# mkdir abc
[iyunv@localhost www]# cp /etc/passwd ./abc/12.txt
2.更改虚拟主机配置文件
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.aaa.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
<Directory /data/www/abc> // 指定路径,针对哪个目录进行限制
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd //存在用户与密码信息
require valid-user
</Directory>
</VirtualHost>
3. 创建虚拟用户密码
[iyunv@localhost abc]# htpasswd -c /data/.htpasswd user1 // 以-c选项创建加密文件与新用户密码,首次用-c
[iyunv@localhost abc]# cat /data/.htpasswd
[iyunv@localhost abc]# htpasswd /data/.htpasswd user2 // 第二次创建新用户不能加-c,不然会覆盖第一个用户
默认虚拟主机
1. 配置虚拟主机
<VirtualHost *:80> // 限制任何解析的域名访问,限制默认的主机访问,允许定义的域名访问 。另外Apache的默认虚拟主机是第一个
DocumentRoot "/tmp/123" //创建空目录
ServerName 1111.com
</VirtualHost>
[iyunv@localhost data]# mkdir /tmp/123
[iyunv@localhost data]# chmod 600 /tmp/123
[iyunv@localhost data]# apachectl restart
域名跳转
1. 配置虚拟主机
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com //有两个域名
ServerAlias www.aaa.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
<IfModule mod_rewrite.c> // rewrite模块
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ // 条件,满足条件才可以跳转
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L] //301表示永久,302表示临时
</IfModule>
<Directory /data/www/abc/>
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/www"
ServerName www.test.com //有三个域名
ServerAlias www.aaa.com
ServerAlias www.bbb.com
# ErrorLog "logs/dummy-host.example.com-error_log"
# CustomLog "logs/dummy-host.example.com-access_log" common
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR] // 加上【OR】表法或者
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
</IfModule>
<Directory /data/www/abc/>
AllowOverride AuthConfig
AuthName "自定义的"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</Directory>
</VirtualHost>
2. 以curl测试跳转
[iyunv@localhost data]# curl -x10.30.4.132:80 www.aaa.com/fasdfa -I // 以curl测试跳转
HTTP/1.1 301 Moved Permanently
Date: Wed, 29 Jul 2015 12:56:01 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Location: http://www.test.com/fasdfa
Content-Type: text/html; charset=iso-8859-1
[iyunv@localhost data]# curl -x10.30.4.132:80 www.bbb.com/fasdfa -I
HTTP/1.1 301 Moved Permanently
Date: Wed, 29 Jul 2015 13:02:27 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Location: http://www.test.com/fasdfa
Content-Type: text/html; charset=iso-8859-1
Apache切割访问日志
1. 设置日志
[iyunv@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf // 在虚拟主机打开日志选项并修改
ErrorLog "logs/test.com-error_log"
CustomLog "logs/test.com-access_log" combined
[iyunv@localhost logs]# cd /usr/local/apache2/logs/ // 日志目录
2.归档与切割日志
ErrorLog "logs/test.com-error_log"
CustomLog "|usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined // 使用rotatelogs -l进行按日切割日志
Apache不记录指定文件类型日志
1. 配置日志
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
ErrorLog "logs/test.com-error_log"
CustomLog "|usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" combined env=!image-request
Apache配置静态缓存
1.配置静态缓存
<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 test/css "now plus 2 hour"
ExpiresByType application/x-javascript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 min"
</IfModule>
2. 测试
[iyunv@localhost logs]# curl -x127.0.0.1:80 'http://www.test.com/static/image/common/logo.png' -I
HTTP/1.1 200 OK
Date: Mon, 31 Aug 2015 09:17:15 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Last-Modified: Tue, 09 Jun 2015 02:21:10 GMT
ETag: "441f9-1149-5180c695e1180"
Accept-Ranges: bytes
Content-Length: 4425
Cache-Control: max-age=86400 // 测试留在浏览器的缓存时间
Expires: Mon, 31 Aug 2015 21:17:15 GMT
Content-Type: image/png
Apache配置防盗链
1.配置网站图片不被盗用
SetEnvIfNoCase Referer "http://.*\.test\.com" local_ref
SetEnvIfNoCase Referer ".*\.aminglinux\.com" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png|js|css)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>
Apache访问控制
1.配置访问控制
[iyunv@localhost logs]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<Directory "/data/www"> //配置拒绝某个IP地址访问
AllowOverride None
Options None
Order allow,deny
Allow from all
Deny from 127.0.0.1
</Directory>
2. 测试
[iyunv@localhost logs]# curl -x127.0.0.1:80 -I www.test.com
HTTP/1.1 403 Forbidden // 拒绝
Date: Mon, 31 Aug 2015 10:44:38 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Content-Type: text/html; charset=iso-8859-1
[iyunv@localhost logs]# curl -x10.30.4.132:80 -I www.test.com
HTTP/1.1 301 Moved Permanently // 通过
Date: Mon, 31 Aug 2015 10:45:16 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
X-Powered-By: PHP/5.4.36
location: forum.php
Cache-Control: max-age=0
Expires: Mon, 31 Aug 2015 10:45:16 GMT
Content-Type: text/html
3. 访问链控制
<filesmatch "(.*)admin(.*)">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</filesmatch>
4. 测试
[iyunv@localhost logs]# curl -x127.0.0.1:80 -I www.test.com/admin.php
HTTP/1.1 200 OK
Date: Mon, 31 Aug 2015 11:01:34 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
X-Powered-By: PHP/5.4.36
Set-Cookie: vhmJ_2132_saltkey=r52vH265; expires=Wed, 30-Sep-2015 11:01:34 GMT; path=/; httponly
Set-Cookie: vhmJ_2132_lastvisit=1441015294; expires=Wed, 30-Sep-2015 11:01:34 GMT; path=/
Set-Cookie: vhmJ_2132_sid=G7kUa9; expires=Tue, 01-Sep-2015 11:01:34 GMT; path=/
Set-Cookie: vhmJ_2132_lastact=1441018894%09admin.php%09; expires=Tue, 01-Sep-2015 11:01:34 GMT; path=/
Cache-Control: max-age=0
Expires: Mon, 31 Aug 2015 11:01:34 GMT
Content-Type: text/html; charset=gbk
[iyunv@localhost logs]# curl -x10.30.4.132:80 -I www.test.com/admin.php
HTTP/1.1 403 Forbidden
Date: Mon, 31 Aug 2015 11:01:55 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
Content-Type: text/html; charset=iso-8859-1
Apache禁止解析php
1. 配置文件
[iyunv@localhost data]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<Directory /data/www/data>
php_admin_flag engine off
<filesmatch "(.*)php">
Order deny,allow
Deny from all
</filesmatch>
</Directory>
[iyunv@localhost data]# vim info.php // 在/data/www/data新建info.php文件
\[iyunv@localhost data]# curl -x127.0.0.1:80 www.test.com/data/info.php // 无法解析php
<?php
phpinfo();
?>
Apache禁止指定user_agent
1. 配置文件
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR] // 配置禁止
RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]
RewriteRule .* - [F]
</IfModule>
[iyunv@localhost data]# curl -x127.0.0.1:80 www.baidu.com // 测试
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
</body></html>
Apache通过rewrite限制某个目录
1.配置限制目录文件
[iyunv@localhost data]# cd /data/www
[iyunv@localhost www]# ls
[iyunv@localhost www]# mkdir tmp
[iyunv@localhost www]# cd tmp
[iyunv@localhost tmp]# vim 12.txt
[iyunv@localhost tmp]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.aaa.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.bbb.com$
RewriteRule ^/(.*)$ http://www.test.com/$1 [R=301,L]
#RewriteCond %{HTTP_USER_AGENT} ^.*curl.* [NC,OR]
#RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]
#RewriteRule .* - [F]
RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC]
RewriteRule .* - [F]
</IfModule>
php.int配置文件详解
1.查看php配置文件
[iyunv@localhost tmp]# /usr/local/php/bin/php -i | head // 查看php配置文件在哪里
2.配置参数
root@localhost tmp]# vim /usr/local/php/etc/php.ini
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,leak,popepassthru,,popen,proc_open,proc_close // 配置disable_functions
display_errors = on // 配置错误日志
[iyunv@localhost tmp]# vim /data/www/forum.php //在这个文件中任意添加字母,再打开http://www.test.com/forum.php会出错
[iyunv@localhost tmp]# curl -x127.0.0.1:80 www.test.com/forum.php -I // 另一种测试方法是用curl
HTTP/1.0 500 Internal Server Error
Date: Mon, 31 Aug 2015 13:00:46 GMT
Server: Apache/2.2.31 (Unix) PHP/5.4.36
X-Powered-By: PHP/5.4.36
Cache-Control: max-age=0
Expires: Mon, 31 Aug 2015 13:00:46 GMT
Connection: close
Content-Type: text/html
3. 更改错误日志配置路径并创建目录
[iyunv@localhost tmp]# vim /data/www/forum.php
error_log = /usr/local/php/logs/php_errors.log
[iyunv@localhost tmp]# mkdir /usr/local/php/logs/ //创建目录
[iyunv@localhost tmp]# chmod 777 !$ //修改权限
chmod 777 /usr/local/php/logs/
4. 配置日志格式与级别
[iyunv@localhost tmp]# vim /data/www/forum.php
error_reporting = E_ALL & ~E_NOTICE //一般配置notice,~表示取反
[iyunv@localhost tmp]# cat /usr/local/php/logs/php_errors.log //在浏览器输入www.test.com/forum.php后出现的错误记录日志,目的是在浏览器的错误日志不被用户看到
5. 限定网站程序访问目录
[iyunv@localhost tmp]# vim /data/www/forum.php
open_basedir = /data/www:/tmp //限定目录
DocumentRoot "/data/www"
ServerName www.test.com
ServerAlias www.aaa.com
ServerAlias www.bbb.com
php_admin_value open_basedir "/data/www/:/tmp/" // 配置目录限定,用Apache配置可以区分不同的虚拟主机
<Directory "/data/www">
AllowOverride None
Options None
Order allow,deny
Allow from all
#Deny from 127.0.0.1
</Directory>
PHP扩展模块如何安装
1. 任意某个扩展模块,如curl
[iyunv@localhost php-5.4.36]# cd /usr/local/src/php-5.4.36/ext/curl/ // 进入curl模块
[iyunv@localhost curl]# /usr/local/php/bin/phpize // 使用此命令生成.confgure可执行文件
[iyunv@localhost curl]# ./configure --with-php-config=/usr/local/php/bin/php-config // 编译curl包
错误:configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/
解决方法:[iyunv@localhost curl]# yum install -y curl-devel
make
make install
[iyunv@localhost curl]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/ // 在这个目录下有curl.so
curl.so
[iyunv@localhost curl]# /usr/local/php/bin/php -i |grep extension_dir // 存放扩展模块
[iyunv@localhost curl]# vim /usr/local/php/etc/php.ini // 添加动态加载的模块
extension=curl.so
[iyunv@localhost curl]# grep '^extension=' /usr/local/php/etc/php.ini // 查看动态加载的模块
mysql重置密码
[iyunv@localhost mysql]# vim /etc/my.cnf //在配置文件中定义初始化这一行
skip-grant
mysql> use mysql // 使用mysql库
mysql> update user set password=password('redhat') where user='root'; // 重置密码
mysql> select * from user where user='root'\G; // 查看密码,然后vim /etc/my.cnf文件中去掉skip-grant
mysql登陆
mysql> grant all on *.* to 'root'@'10.30.4.132' identified by '123aaa'; // 增加10.30.4.132权限
mysql> select * from user where host='10.30.4.132'\G; //查看10.30.4.132权限
mysql> select user(); // 查看当前使用的用户
[iyunv@localhost mysql]# mysql -uroot -h10.30.4.132 -p3306 -p123aaa //远程登陆
mysql常用操作
mysql> show databases; // 显示mysql库
mysql> use mysql // 使用库
mysql> select database(); //查看所在的库
mysql> select user(); // 查看用户
mysql> select version(); // 查看版本
mysql> show tables; // 查看表
mysql> desc pre_ucenter_vars; // 描述pre_ucenter-vars表里有哪些字段
mysql> show create table pre_ucenter_vars\G; // 查看表具体是怎么创建的
mysql> create table tb1 (`id` int(4), `name` char(40)) ENGINE=MYISAM DEFAULT CHARSET=gbk; //创建表字段
mysql> insert into tb1 value(1, 'aming'); // 插入第一行数据
mysql> insert into tb1 (`id`) values(3); //插入单个数据
mysql> select * from tb1; // 查看表数据
mysql> update tb1 set id=5 where name = '55'; //更改表数据
mysql> delete from tb1 where name='55'; // 删除行
mysql> truncate table aming.tb1; // 清空表数据
mysql> drop table tb1; // 删除表
mysql> drop database aming; // 删除库
mysql> grant all on discuz.* to 'user1'@'%' identified by 'redhat'; //授权用户权限
mysql> flush privileges; // 刷新权限
mysql> show processlist; //查看有哪里任务在工作
mysql> show variables; //查看变量
mysql> set global max_connections=200; //设置变量参数, 要永久生效,需编辑my.cnf修改参数就可以了
mysql> show variables like 'max_connec%'; // 过滤查看max_connections
mysql> show status; //查看状态
[iyunv@localhost ~]# cd /data/mysql //mysql的错误日志在定义的datadir下
mysql> repair table discuz.pre_forum_post; //使用repair修复表
mysq备份与恢复
[iyunv@localhost mysql]# mysqldump -uroot -predhat discuz > /data/discuz.sql //备份数据库重向定到备份文件
[iyunv@localhost discuz]# mysql -uroot -predhat discuz < /data/discuz.sql // 恢复数据库反重向到库
[iyunv@localhost discuz]# mysqldump -uroot -predhat discuz pre_forum_post > /data/post.sql //单独备份表
[iyunv@localhost discuz]# mysql -uroot -predhat discuz < /data/post.sql //恢复时不要加表名
[iyunv@localhost discuz]# mysqldump -uroot --default-character-set=gbk -predhat discuz pre_forum_post > /data/post.sql //指定字符集备份
[iyunv@localhost discuz]# mysql -uroot --default-character-set=gbk -predhat discuz < /data/post.sql //指定字符恢复
|
|