LAMP环境搭建4-整合
重新整理以前的笔记发到博客还真是累,以前笔记做的有点乱,知识点也比较杂,以致每次发现其他地方有相似内容需要添加就得重新修改博客,前面的都比较基础,后面开始才会慢慢结合一些高级功能进行讲解。
一、配置apache结合php 1、# vim /usr/local/apache2/conf/httpd.conf 找到:AddType application/x-gzip .gz .tgz 在该行下面添加:AddType application/x-httpd-php .php
2、找到: <IfModule dir_module> DirectoryIndex index.html </IfModule> 将该行改为: <IfModule dir_module> DirectoryIndex index.html index.htm index.php </IfModule> 3、找到:ServerName www.example.com:80 修改为:ServerName localhost:80 4、不改会出现403错误 <Directory /> # 2.4以下版本 # Deny from all => Allow from all # 2.4及以上的 Require all denied => Require all granted </Directory>
二、测试php是否正确加载、是否可以正确连接mysql 1、首先测试apache是否可以正常结合php # vim /usr/local/apache2/htdocs/test.php <?php echo "Hello world."; ?> # 用浏览器打开看看是否输出"Hello world.",或者直接使用curl测试 # curl 127.0.0.1/test.php Hello world. 2、测试连接mysql之前还要先给root添加密码,这里就顺便说下怎么改root密码了(-p后面接密码的时候不要加空格,否则会出错!) # 1.root原先没有密码,需要修改为123456: # mysqladmin -uroot password 123456 # 2.root有密码(123456),回车后需要输入旧密码: mysqladmin -u root -p password 654321 # 3.root有密码(123456),不需要再输入旧密码: mysqladmin -u root -p123456 password 654321 3、测试php能否连接mysql # vim /usr/local/apache2/htdocs/test_mysql.php <?php $conn=mysql_connect('localhost','root','123456'); if ($conn){ echo "test ok." } else{ echo "connection error." } # 浏览器输入该文件进行测试,看看是否可以连接
三、php不能正常解析处理方法 1、检查配置文件httpd.conf里的: AddType application/x-httpd-php .php # 这行(就是上头配置添加的)有没有写错单词 2、apachectl -M 查看是否加载了php5_module模块 # 1、没有则查看httpd.conf配置文件是否开启该模块(前面有'#'则表示被注释了要去掉): LoadModule php5_module modules/libphp5.so # 2、ldd查看libphp5.so所需的共享库是否都存在,不存在则要手动复制所依赖的共享库到/lib下了,下面还是具体演示一下ldd的用法吧(看图片) ldd /usr/local/apache2/modules/libphp5.so
看到没有,如果未能找到所需的共享库,则会出现not found,这时只需要copy该共享库到/lib下即可:
这里会出错是因为mv、copy刚好也依赖/lib/libselinux.so.1共享库,这样就惨了...还好可以使用ln做个硬连接到/lib下解决(这也说明ln并不依赖该共享库) # ln libselinux.so.1 /lib/libselinux.so.1
3、这里说一个ln、cp、mv都依赖的共享库:/lib/ld-linux.so.2(实际上很多命令像rename、dd、echo等都依赖该库) 如果你拿这个库做实验,那么后果就有点严重了;这意味着你不能使用重命名mv、rename, 也不能复制,连链接也不能做了,这样的话怎么把该库移动到原来位置? (当然这个并不像‘rm -rf /’命令这么严重,还是可以通过第三方软件等很多方法修复的) --linux允许你随意操作,同样也允许你自杀
四、简单压力测试 # apache在/usr/local/apache2/bin/下有个工具ab:ApacheBench,用于web性能压力测试; # ab命令不仅仅用于测试apache,还可以用于测试任何网站,如nginx、IIS等; 1、常用选项: -c 单次发起的请求个数 -n 总共发起多少请求 --help 查看帮助信息 2、开始测试、测试方法 第一组:每次发10个请求一共100个请求,测试静态页面、php、php+mysql的 ab -c 10 -n 100 localhost/test.html # 请求静态页面 ab -c 10 -n 100 localhost/test.php # 请求动态页面 ab -c 10 -n 100 localhost/test_mysql.php # 请求php结合mysql的页面 第二组:加大测试数据 ab -c 100 -n 1000 localhost/test.html ab -c 100 -n 1000 localhost/test.php ab -c 100 -n 1000 localhost/test——mysql.php 第三组:继续加大测试数据(根据你服务器质量决定,普通PC机的话就不要加大了,一会儿死机不好的) ab -c 2000 -n 10000 localhost/test.html # 这里可能会报错 # 因为centos默认每个进程最多只允许打开1024个文件,可以使用"ulimit -n 3000"将限制改成3000个,这样就不会出错了 3、测试的时候尽量找局域网里面的其他机子帮忙测,这样是最准确的; 使用本机测的话效果不是很好,毕竟请求报文和响应报文这时候都得自己发,当然不会那么准确的了; 使用远程的话需要经过路由器和DNS解析等,测试出来的时间还需要加上时延时间,一般来说是最不准确的 (想想这时候你的网络不好,还选择大数据测试,这时候结果显示的时间还会准吗? 很大部分时间都花在了网络传输过程中了) 4、这里就不对ab命令显示的结果进行讲解了,下面链接有人已经总结的很全面了:
见:http://www.ha97.com/4617.html
下篇开始介绍些LAMP的高级功能,比如: 防盗链 日志分割 静态文件缓存配置 访问控制 URL重写 域名跳转 配置访问日志 ... 对于Apache2.2和2.4不同的地方(如访问控制等)还会进行比较
转载于:https://blog.51cto.com/chenshaorong/1664438