概述php
Lamp架构是目前成熟的网站应用模式之一,指的是协同工做的一整套系统和相关软件,可以提供动态web站点服务及其应用开发环境。html
组成:Linux 、Apache、MySQL、php/perl/pythonpython
优点:成本低廉、可定制、易于开发、方便易用、安全和稳定mysql
(1)准备工做linux
setenforce 0 #关闭selinuxc++
systemctl stop firewalld.servicegit
apr-utils apache移植运行库github
--prefix=:指定安装目录web
--enable-so:启用动态加载模块支持,使httpd具有进一步扩展功能的能力sql
--enable-rewrite::启用网页地址重写功能,用于网站优化及目录迁移维护。(若是访问网站未找到,将自动跳转到其余网页)
--enable-charset-lite:启动字符集支持,以便支持使用各类字符集编码的网页。
--enable-cgi:启用CGI脚本程序支持,以便于网站的应用访问能力
--help:帮助信息
make && make install
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
chmod +x /etc/rc.d/init.d/httpd
checkconfig --add httpd
报错1:httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName 不能找到彻底合格的域名
解决:vim /usr/local/httpd/conf/httpd.conf
97 #ServerName www.example.com:80
98 ServerName localhost:80
报错2:
/usr/local/apache/bin/httpd: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
有不少so模块在/usr/local/lib目录下,因此在/etc/ld.so.conf中加入/usr/local/lib这一行
/usr/local/httpd/bin/apachectl start启动httpd服务
下载工具
[root@E tools]# pwd
/home/evan/tools
[root@E tools]# wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
[root@E tools]# ls -l cmake-3.5.2.tar.gz
-rw-r--r-- 1 root root 6863498 4月 16 01:40 cmake-3.5.2.tar.gz
解压cmake3.5.2
[root@E tools]# tar xf cmake-3.5.2.tar.gz
[root@E tools]# ls -ld cmake-3.5.2
drwxr-xr-x 11 root root 4096 4月 27 09:45 cmake-3.5.2
安装cmake3.5.2
[root@E tools]# cd cmake-3.5.2
[root@E cmake-3.5.2]# ./configure
[root@E cmake-3.5.2]# gmake
[root@E cmake-3.5.2]# gmake install
[root@E cmake-3.5.2]# cd ../
3.yum -y install gcc gcc-c++ ncurses-devel perl openssl-devel bison 解决依赖
4.安装MySQL
建立用户和组
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
mkdir -p /usr/local/mysql
mkdir -p /data/mysql
chown -R mysql.mysql /data/mysql
chown -R mysql.mysql /usr/local/mysql
解压编译安装(编译文档附件)
安装openssl 和 ncurses
tar zxf mysql-5.5.32.tar.gz
cd mysql-5.5.32
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql
#-- Build files have been written to: /home/evan/tools/mysql-5.5.32
提示,编译时可配置的选项不少,具体可参考结尾附录或官方文档:
make && make install
cp supports-file/my-medium.cnf /etc/my.cnf 使用样原本给mysql做为配置文件
[root@localhost mysql-5.5.11]#scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/ 初始化
指定basedir 和 datadir
cp support-file/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
checkconfig --add mysqld
checkconfig --list mysqld
vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
编译安装php
整合lamp
php须要php.ini做为配置文件
在/php-5.3.6安装包中有两个配置文件一个是php.ini-development还有一个是php.ini-production
将production拷到/usr/local/php中
修改配置文件
修改httpd的配置文件/usr/local/httpd/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
modules/libphp5.so 模块位置 54 AddType application/x-httpd-php .php .phtml 添加对“.php”类型网页支持 169 DirectoryIndex index.php index.html 识别常见的php首页文件
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
测试是否能连同mysql
<?php
$conn = mysql_connection('127.0.0.1','root','')
if ($conn)
echo "ok";
else
echo 'not ok';
?>
Xcache 以及 fastcgi配置
下载地址:
http://xcache.lighttpd.net/wiki/Release-3.2.0
编译安装:
配置文件参数解释:
[xcache-common]
extension = xcache.so
; extension = php_xcache.dll
[xcache.admin]
; 登陆管理界面的用户名和密码,留空则禁用管理界面
xcache.admin.enable_auth = On
; 管理用户名
xcache.admin.user = "xcache-admin"
; MD5加密后的密码,# echo -n pass | md5sum
xcache.admin.pass = ""
[xcache]
; 决定 XCache 如何从系统分配共享内存
xcache.shm_scheme = "mmap"
; 所用共享缓存的大小。若是为0,缓存将没法使用
xcache.size = 60M
; 指定将 cache 切分红多少块, 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是做为 hash 槽个数的参考值, 您能够放心地缓存超过这个个数的项目.
xcache.slots = 8K
; Opcode文件的生存时间。若是将此值设置为0,则将无限期缓存 (int)
xcache.ttl = 0
; 触发垃圾回收的时间间隔。默认设置为0 (秒)
xcache.gc_interval = 0
; 同上, 只是针对变量缓存设置
xcache.var_size = 4M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
; 启用或禁用测试功能
xcache.test = off
; 若是启用了 ReadonlyProtection, 将会略微下降性能, 可是会提升必定的安全系数.
; 这个选项对于xcache.mmap_path = /dev/zero 无效.
xcache.readonly_protection = On
; 用于只读保护的文件路径
; 这将限制两个 php 进程组共享同一个 /tmp/xcache 目录, 指定为 /dev/zero 时无效
xcache.mmap_path = "/tmp/xcache"
; 在遇到故障时,放置核心转储的目录。必须是PHP可写入的目录。保留为空表明禁用.
xcache.coredump_directory = ""
; 仅用于 Windows
xcache.coredump_type = 0
xcache.disable_on_crash = off
xcache.experimental = off
; 使用/不使用 opcode 缓存. xcache.size = 0 时无效.
xcache.cacher = On
; 使用 stat() 发现检查脚本更新.
xcache.stat = ON
; 启用或禁用优化。默认状态为禁用
xcache.optimizer = off
[xcache.coverager]
; 启用代码覆盖信息采集器
; 启用后 xcache.coveragedump_directory 设置以及 xcache_coverager_start/stop/get/clean() 系列函数才可使用. (启用后会对下降影响).
xcache.coverager = off
; 每一个页面请求自动调用 xcache_coverager_start()
xcache.coverager_autostart = off
; 放置数据采集信息的目录位置。默认使用目录 /tmp/pcovis
xcache.coveragedump_directory = ""
https://my.oschina.net/angelangel/blog/338458 eaccelerator
这几个PHP加速插件的主要原理都相同,就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,可以直接使用缓冲区已编译的代码从而提升速 度,下降服务器负载,它们的效率是显而易见的,像drupal这种庞大的CMS,每次打开一个页面要调用数十个PHP文件,执行数万行代码,效率可想而 知,在安装APC等加速器后打开页面的速度明显加快。
Zend Opcache 已经集成在了PHP 5.5里面,编译安装PHP5.5的时候加上–enable-opcache就好了。但也支持低版本的 PHP 5.2.*, 5.3.*, 5.4.*,将来会取消对5.2的支持,下面是我在PHP 5.4下的安装方法:
依次执行下面的命令
wget http:
//pecl.php.net/get/zendopcache-7.0.2.tgz
tar xzf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
/usr/local/php/bin/phpize (此处根据实际php安装路径)
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
若是显示Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 表示安装完成,下面要修改php的配置文件让它生效
接着呢,配置下php.ini,在最后加上:
[opcache]
zend_extension=opcache.so
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.enable=1
通常来讲,按照以往的经验,若是加在ZendGuardLoader以前会稳定多了。
128意思是给它分配128M内存,而后重启apache,用phpinfo查看是否生效,显示下面的信息就说明生效了
在phpinfo页面的下面能够看到的运行状态
若是嫌这个不直观能够装个PHP文件查看,地址在https://gist.github.com/ck-on/4959032,把上面的代码保存为一个php文件放到你的网站目录下面打开就能够看到:
命中率100%。