lamp介绍
概述
Lamp架构是目前成熟的网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态web站点服务及其应用开发环境。
组成:Linux 、Apache、MySQL、php/perl/python
优势:成本低廉、可定制、易于开发、方便易用、安全和稳定
(1)准备工作
setenforce 0 #关闭selinux
systemctl stop firewalld.service
apr-utils apache移植运行库
--prefix=:指定安装目录
--enable-so:启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--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
编译安装:
- # wget http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
- # tar -zxvf xcache-3.2.0.tar.gz
- # cd xcache-3.2.0
- # /usr/local/php/bin/phpize
- # ./configure --enable-xcache --enable-xcache-coverager --enable-xcache-optimizer
- --with-php-config=/usr/local/php/bin/php-config
- # make && make install
- # vim php.ini #add line extension=xcache.so
配置文件参数解释:
[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
Zend Opcache
这几个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%。