LAMP的PHP

这章我们讲PHP,和fastcgi

下面链接是LAMP的AM,apache和mariadb

http://rexchow.blog.51cto.com/11619161/1886441


首先准备几个安装包

libmcrypt-2.5.8.tar.gz

wget http://down1.chinaunix.net/distfiles/libmcrypt-2.5.7.tar.gz

php-5.6.29.tar.gz 

wget http://cn2.php.net/distributions/php-5.6.29.tar.gz


1、解决依赖关系

如果想让编译的php支持mcrypt扩展,需安装libmcrypt libmcrypt-devel 或者编译安装

#tar -zxvf libmcrypt-2.5.7.tar.gz 

#cd libmcrypt-2.5.7 

#./configure

#make && make install 




2、编译安装php-5.6.29 

#tar zxvf php-5.6.29.tar.bz2 

#cd php-5.6.29 

./configure\
 --prefix=/usr/local/php\
 ##php路径
 --with-mysql=/usr/local/mysql\
 ##mysql路径
 --with-openssl=/usr/local/openssl1u\
 ##openssl路径
 --with-mysqli=/usr/local/mysql/bin/mysql_config \
 ##mysql配置文档
 --enable-mbstring --with-freetype-dir \
 --with-jpeg-dir --with-png-dir --with-zlib \
 ##支持图文件
 --with-libxml-dir=/usr\
 ##支持xml库
 --enable-xml  --enable-sockets \
 ##支持xml、套接字
 --with-apxs2=/usr/local/httpd2.4/bin/apxs \
 ##apxs
 --with-mcrypt  --with-config-file-path=/etc \
 --with-config-file-scan-dir=/etc/php.d \
 --with-bz2  --enable-maintainer-zts


./configure\

 --prefix=/usr/local/php\

 --with-mysql=/usr/local/mysql\

 --with-openssl=/usr/local/openssl1u\

 --with-mysqli=/usr/local/mysql/bin/mysql_config \

 --enable-mbstring --with-freetype-dir \

 --with-jpeg-dir --with-png-dir --with-zlib \

 --with-libxml-dir=/usr\

 --enable-xml  --enable-sockets \

 --with-apxs2=/usr/local/httpd2.4/bin/apxs \

 --with-mcrypt  --with-config-file-path=/etc \

 --with-config-file-scan-dir=/etc/php.d \

 --with-bz2  --enable-maintainer-zts



# make  && make install





为php提供配置文件:

# cp php.ini-production /etc/php.ini


3、 编辑apache配置文件httpd.conf,以apache支持php

 

 # vim /etc/httpd/httpd.conf

 1、添加如下二行

   AddType application/x-httpd-php  .php

   AddType application/x-httpd-php-source  .phps


wKiom1h3OLXhGOBpAABACNQQ1Ew247.png


 2、定位至DirectoryIndex index.html 

   修改为:

    DirectoryIndex  index.php  index.html

 3、添加模块


 LoadModule php5_module modules/libphp5.so

wKioL1h3OLWzntkUAABKnkZcloA537.png


j_0003.gif


4、测试是否正常


wKiom1h3PKLS0pXMAABS1zFNCA8002.png

在数据添加权限

mysql -u账号 -p密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rexchow' WITH GRANT OPTION;
##授权root账号访问%=(本地、IP、hostname)
FLUSH PRIVILEGES;
更新权限



#cd /usr/local/apache/htdocs

#mv index.html index.php

#vim index.php     清除内容

<?php

$conn=mysql_connect('192.168.230.202','root','rexchow');

  if ($conn)

    echo "Connect Success...";

  else

    echo "Connect Failure...";


 phpinfo();

?>



打开浏览器测试、走到这步,已经完成lamp的编译安装任务

那么我们开始新的路线,建一个网站,首先下个模板

j_0056.gif


我们在体验个小游戏:

1、建立wordpress

2、给服务器做压力测试



##下周wordpress

wget https://cn.wordpress.org/wordpress-4.7.1-zh_CN.zip 
##下载 
unzip wordpress-4.7.1-zh_CN.zip  
##解压 
mv wordpress /usr/local/httpd2.4/htdocs   
##将wordprss复制到apache服务器下的根目录


先安装个mysql管理器


yum install phpmyadmin -y




$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5340 to server version: 3.23.54
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wp"@"localhost" IDENTIFIED BY "wp";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye
$


##创建wordpress数据,及给予改wp授权该数据管理权限。

从网上抄来的一段精华内容:

用户管理

mysql>use mysql;

查看

mysql> select host,user,password from user ;

创建

mysql> create user  zx_root   IDENTIFIED by 'xxxxx';   //identified by 会将纯文本密码加密作为散列值存储

修改

mysql>rename   user  feng  to   newuser;//mysql 5之后可以使用,之前需要使用update 更新user表

删除

mysql>drop user newuser;   //mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限

更改密码

mysql> set password for zx_root =password('xxxxxx');

 mysql> update  mysql.user  set  password=password('xxxx')  where user='otheruser'

查看用户权限

mysql> show grants for zx_root;

赋予权限

mysql> grant select on dmc_db.*  to zx_root;

回收权限

mysql> revoke  select on dmc_db.*  from  zx_root;  //如果权限不存在会报错

 

上面的命令也可使用多个权限同时赋予和回收,权限之间使用逗号分隔

mysql> grant select,update,delete  ,insert  on dmc_db.*  to  zx_root;

如果想立即看到结果使用

flush  privileges ;

命令更新 

 

设置权限时必须给出一下信息

1,要授予的权限

2,被授予访问权限的数据库或表

3,用户名

grant和revoke可以在几个层次上控制访问权限

1,整个服务器,使用 grant ALL  和revoke  ALL

2,整个数据库,使用on  database.*

3,特点表,使用on  database.table

4,特定的列

5,特定的存储过程

 

user表中host列的值的意义

%              匹配所有主机

localhost    localhost不会被解析成IP地址,直接通过UNIXsocket连接

127.0.0.1      会通过TCP/IP协议连接,并且只能在本机访问;

::1                 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1






登录网页http://192.168.230.202/wordpress

即有安装提示:

按照提示附带index.php,验证wordpress账号登录是否正常

<?php
$conn=mysql_connect('127.0.0.1','wp','wp');
  if ($conn)
    echo "Connect Success...";
  else
    echo "Connect Failure...";
?>

我的localhost 被锁了,原因还没有查出来。则用127.0.0.1代替


安装wordpress的提示页,需要你把配置文档复制到wordpress目录下的wp-config.php文件内


wKiom1h-DcWQTDmLAAC0i2sknrA635.png


邮箱需要填上哦j_0076.gif




登录进去,直接点击发布,咱们实用性网页发布完成。


wKioL1h-DlbAlvtdAALFAPC8EXc228.png






j_0054.gif

来来,开始ab进行压力测试

测试机器,用的192.168.230.204

http://www.jianshu.com/p/43d04d8baaf7

##命令使用详细说明



我们现在只用下面的命令

输入命令

ab -n 100 -c 10 http://test.com/


其中-n表示请求数,-c表示并发数
wKioL1h-D8GwezT_AACQuMGgNIU035.png


响应非常快,原因是我们用的压力太小了

wKioL1h-ELXTKOZfAABojZ-WGBk837.png

10000个请求 999个并发,

吞吐率2784 用户平均请求等待时间 355

服务器平均请求处理时间 0.359ms




咱们进行下一个故事,fastcgi模块

把服务器速度加速优化!~