LAMP的PHP

这章我们讲PHP,和fastcgi

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

首先准备几个安装包

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 

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

 2、定位至DirectoryIndex index.html 

   修改为:

    DirectoryIndex  index.php  index.html

 3、添加模块

 LoadModule php5_module modules/libphp5.so

wKioL1h3OLWzntkUAABKnkZcloA537.png

4、测试是否正常

在数据添加权限

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的编译安装任务

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

我们在体验个小游戏:

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 -pEnter 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> EXITBye$

##创建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


登录网页

即有安装提示:

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

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

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

邮箱需要填上哦

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

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

测试机器,用的192.168.230.204

##命令使用详细说明

我们现在只用下面的命令

输入命令

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


其中-n表示请求数,-c表示并发数

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

10000个请求 999个并发,

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

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


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

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