LAMP整理

时间:2023-03-09 14:30:03
LAMP整理

LAMP第一部分

查看编译了哪些软件:是编译时自动生成的

Cat /usr/local/apache2/build/config.nice

网站根目录存放处:

/usr/local/apache2/htdocs

启动apache

/usr/local/apache2/bin/apachectl start

监听端口  netstat –lnp    查看进程  ps aux |grep httpd

Vi conf/httd.conf   编辑servername

./bin/httpd –t   或者./bin/apachectl –t 检测是否正确。 有没有问题

Curl localhost   - I 检测问题

Php解析时   安装什么用rpm –ql  libjpeg-turbo-devel

Yum list |grep –i mcrypt   查询安装哪个包

注意这个错误:

Mcrypt.h not found Please reinstall libmcrypts

yum install –y epel-release

yum install –y libmcrypt-devel

Apache的配置文件

/usr/local/apache2/conf/httpd.conf

apache解析不了

则利用/usr/local/ apache2/bin/apachectl –M 查看php5_module (shared)

之后加载cp /usr/local/src/php-5.3.28/php.ini-production  /usr/local/php/etc/php.ini

/usr/local/php/bin/php -i |grep -i configuration  用来查看加载成功没

其次查看 ls /usr/local/apache2/modules/libphp5.so

依旧不显示,ldd !$

第三步,查看 grep –I ‘addtype’ /usr/local/apache2/conf/httpd.conf

有没有Addtype  applicatipn/x-httpd-php .php

最后重启httpd 基本可以解决问题

/usr/local/apache2/bin/apachectl –t

有时候可以 killall httpd   也可以查看selinux有没有关 getenforce 显示disabled

之后在/usr/local/apache2/bin/apachectl start

curl localhost/1.php   则可以显示编译的结果

/usr/local/php/bin/php  里面可以新建1.php

Php中\n是什么意思 、usr/local/php/bin/php –m 查看安装的模块 –i 查看编译的模块

编辑php时

/usr/local/php/bin/php

<?

Echo > “carlton”;

Echo > “\n”;

?>

如果改成phpinfo  则可以看到网页上的模块 缺哪里可以在这里看见

LAMP第二部分

Cd  data/mysql  里面有一个文件Carlton.localdomain.err 可以查看日志

配置一个虚拟主机

删除httpd.conf中的这行前面的警号
#Include conf/extra/httpd-vhosts.conf
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

改完配置则/usr/local/apache2/bin/apachectl
–t  用来修改的配置有没有出错

之后在restart   想开机启动就放入init.d

C:\Windows\System32\drivers\etc  hosts里面加入192.168.1.111 www.XX.com

这样就等同于本地解析

在linux中也要使用,vim 
/etc/hosts 更改

关闭SELINUX的方法:
#vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled

353     AddType application/x-compress .Z

354    
AddType application/x-gzip .gz .tgz

355    
AddType application/x-httpd-php .php

cat /usr/local/apache2/build/config.nice  可以看编译的软件

etc/host

1、nginx编译参数:
#/usr/local/nginx/sbin/nginx -V
2、apache编译参数:
# cat /usr/local/apache/build/config.nice
3、php编译参数:
# /usr/local/php/bin/php -i |grep configure
4、mysql编译参数:
# cat /usr/local/mysql/bin/mysqlbug|grep configure

Ldd
/usr/local/apache2/modules/libphp5.so  查看文档

Grep –i ‘addtype’
/usr/local/apache2/conf/httpd.conf  查看有没有addtype

第三部分

Mysql –uroot     后面加上-p 改密码

第一种方法

还可以使用 ln –s
/usr/local/mysql/bin/mysql /usr/bin/mysql

第二种方法

Vim  /etc/profile.d /path.sh里面加入 export PATH=$PATH:/usr/local/mysql/bin

之后source !$

create database discuz;
> grant all on discuz.* to
'aming'@'localhost' identified by '123456aminglinux';
> quit

vi   http.conf
限制用户登录,需要密码

在相应的虚拟主机配置文件段,加入
<Directory *>
          
 AllowOverride AuthConfig
          
 AuthName "自定义的"
          
 AuthType Basic
          
 AuthUserFile /data/.htpasswd          
     # 这里的/data/.htpasswd你可以随便写一个路径或名字,没有限制
          
 require valid-user
</Directory>

保存后,然后
创建apache的验证用户

/usr/local/apache2/bin/htpasswd -c /data/.htpasswd
carlton

htpasswd -cm /data/.htpasswd  test

增加第二个用户的时候,就不要加-c了,因为-c是创建的意思,如果加上会把这个文件重写。

6. 配置域名跳转
    <IfModule mod_rewrite.c>
    
   RewriteEngine on
    
   RewriteCond %{HTTP_HOST} ^www.domain1.com$
    
   RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
如果是多个域名,可以这样设置:也就是多加了一个[OR]
    <IfModule mod_rewrite.c>
    
   RewriteEngine on
    
   RewriteCond %{HTTP_HOST} ^www.domain.com [OR]
    
   RewriteCond %{HTTP_HOST} ^www.domain1.com$
    
   RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>
或者:    <IfModule mod_rewrite.c>
    
   RewriteEngine on
    
   RewriteCond %{HTTP_HOST} !^www.domain2.com$
    
   RewriteRule ^/(.*)$ http://www.domain2.com/$1 [R=301,L]
    </IfModule>

LAMP第四部分

discuz伪静态配置:
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/topic-(.+)\.html$
/portal.php?mod=topic&topic=$1&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/article-([0-9]+)-([0-9]+)\.html$
/portal.php?mod=view&aid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/forum-(\w+)-([0-9]+)\.html$
/forum.php?mod=forumdisplay&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule
^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$
/forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/group-([0-9]+)-([0-9]+)\.html$
/forum.php?mod=group&fid=$1&page=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/space-(username|uid)-(.+)\.html$
/home.php?mod=space&$1=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/blog-([0-9]+)-([0-9]+)\.html$
/home.php?mod=space&uid=$1&do=blog&id=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/archiver/(fid|tid)-([0-9]+)\.html$
/archiver/index.php?action=$1&value=$2&%1
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule
^/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ /plugin.php?id=$1:$2&%1

网站的根目录data /www/ data /attachment/forum

针对请求的uri去限制    文件
    <filesmatch
"(.*)admin(.*)">
          
 Order deny,allow
          
 Deny from all
          
 Allow from 127.0.0.1
    </filesmatch>

某个某陆下禁止解析php  目录
<Directory /data/www/path>
    php_admin_flag engine off 
           
    <filesmatch
"(.*)php">
          
 Order deny,allow
          
 Deny from all
    </filesmatch> 
</Directory>

第五部分 MYSQL部分

/usr/local/php/bin/php –i |head 用来查看php的路径

Rc.local 复制到这里去

grant all on *.*
to 'root'@'192.168.1.111' identified by '123456';  小心不打分号

第二步 授权select * from user where
host='192.168.1.111'\G;

远程登录mysql -uroot -h192.168.1.111 -P3306 –p

也可以通过mysql -uroot -S /tmp/mysql.sock –p 登录

库 表 行 字段 是这么一个逻辑

1. 忘记root密码
编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数  skip-grant  ,重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot ,修改相应用户密码 use mysql; update user set password=password('your password') where
user='root';flush privileges;  最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务

2. skip-innodb   我们可以增加这个参数不使用innodb引擎。

3. 配置慢查询日志
#log_slow_queries = /path/to/slow_queries
#long_query_time = 1

4. mysql常用操作
查看都有哪些库  show databases;
查看某个库的表 use db; show tables; 
查看表的字段 desc tb;
查看建表语句 show create table tb;
当前是哪个用户  select user();
当前库 select database();
创建库 create database db1; 
创建表 create table t1 (`id` int(4), `name` char(40));  
查看数据库版本 select version(); 
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors =
1000; 
查看mysql队列 show processlist; 
创建普通用户并授权 grant all on *.* to user1 identified by '123456'; 
grant all on db1.* to 'user2'@'10.0.2.100'
identified by '111222'; 
grant all on db1.* to 'user3'@'%' identified by
'231222';insert into tb1 (id,name) values(1,'aming');
更改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE
user='username' ;   
查询 select count(*) from mysql.user; select * from mysql.db; select * from
mysql.db where host like '10.0.%'; 
插入 update db1.t1 set name='aaa' where id=1;  
清空表 truncate table db1.t1; 
删除表 drop table db1.t1; 
删除数据库 drop database db1; 
修复表 repair table tb1 [use frm];

5. mysql备份与恢复
备份 mysqldump -uroot -p db >1.sql 
恢复 mysql -uroot -p db <1.sql  
只备份一个表  mysqldump -uroot -p db tb1 > 2.sql
备份时指定字符集 mysqldump -uroot -p --default-character-set=utf8  db
>1.sql
恢复也指定字符集 mysql -uroot -p
--default-character-set=utf8  db  < 1.sql