设为首页 收藏本站
查看: 845|回复: 0

LAMP搭建

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-9-2 08:41:53 | 显示全部楼层 |阅读模式
                      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  //指定字符恢复

                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-108540-1-1.html 上篇帖子: 搭建LAMP环境 下篇帖子: LAMP环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表