CenOS6.6下编译安装LAMP

准备材料: 
CentOS 6.6
apr-1.5.0.tar.bz2
apr-util-1.5.3.tar.bz2
httpd-2.4.10.tar.bz2
mariadb-5.5.44-linux-x86_64.tar.gz(此为编译好的二进制文件.)
php-5.4.40.tar.bz2
phpMyAdmin-4.4.15.2-all-languages.zip
xcache-3.2.0.tar.bz2


所有材料放于家目录下.
下面命令开始执行时的当前目录时家目录.


配置编译环境:
yum groupinstall "Server Platform Development" "Development tools"


安装apr:
tar xf apr-1.5.0.tar.bz2
# 解压缩;
cd apr-1.5.0
./configure --prefix=/usr/local/apr
make && make install


安装apr-util
tar xf apr-util-1.5.3.tar.bz2
cd apr-util-1.5.3
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# 安装apr-util需使用--with-apr指定apr的安装目录;
# 详情查阅./configure --help;
make && make install
# 编译和安装;

安装httpd-2.4.10
tar xf httpd-2.4.10.tar.bz2
# 解压缩;
cd httpd-2.4.10
yum install pcre-devel
# 编译安装httpd会用到pcre-devel;
./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# --with-mpm=event使用httpd的event工作模式;
# 其他选项自行./configure --help查看;
make && make install
# 编译和安装;
cd /etc/rc.d/init.d/
cp httpd httpd24
# 为放置与其他httpd程序冲突, 复制启动脚本为httpd24;
vim httpd24
# 编辑httpd24启动脚本的以下内容(主要是路径和脚本名);
...
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
...
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
...
chkconfig --add httpd24
# 添加httpd24开机启动;
chkconfig --list httpd24
# 查看开机启动的级别;
cd /etc/profile.d/
vim httpd.sh
# 添加编辑此文件使系统开机添加httpd的安装路径至$PATH变量;
export PATH=/usr/local/apache/bin:$PATH
# 此为添加的文件内容;
. httpd.sh
# 重读此脚本;
httpd -t
# 测试httpd24.conf文件;
service httpd24 start
# 启动httpd24服务;
ss -tnl
# 查看80端口是否已监听;
ps aux | grep httpd
# 查看httpd服务是否已启动;
cd /etc/httpd24/
vim httpd.conf(可暂不做修改.)
注意配置文件中中心主机的文档根目录是:
/usr/local/apache/htdocs

安装mariadb
tar xf mariadb-5.5.44-linux-x86_64.tar.gz -C /usr/local
# 解压缩二进制(非源码)文件压缩包至/usr/local目录;
mkdir -pv /mydata/data
# 创建数据库存储目录;
useradd -r mysql
# 创建mysql系统用户(会自动创建同名组);
chown -R mysql.mysql /mydata/data
# 修改数据存储目录属主和属组;
cd /usr/local
ln -sv mariadb-5.5.44-linux-x86_64/ mysql
# 创建mysql软连接指向"mariadb-5.5.44-linux-x86_64";
cd mysql/
chown -R root.mysql ./*
# 递归修改mysql目录及其下所有文件的属组;
scripts/mysql_install_db --datadir=/mydata/data --user=mysql
# 使用scripts目录下的"mysql_install_db"修改数据默认存储目录;
mkdir /etc/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf
# 创建/etc/mysql目录, 并把对应的配置文件复制至其下;
cd /etc/mysql/
vim my.cnf
# 修改my.cnf文件, 并修改或添加下面的语句;
thread_concurrency = 8(此条表示CPU线程数,按需修改)
datadir = /mydata/data
innodb_file_per_table = on
skip_name_resolve = on
cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# 复制mysql.server为启动服务脚本mysqld;
chkconfig --add mysqld
# 添加mysqld开机启动;
service mysqld start
# 启动服务
ss -tnl
# 验证端口;
./bin/mysql_secure_installation
# 安全初始化(删除匿名用户并设置root用户密码);
/usr/local/mysql/bin/mysql -uroot -p(使用这个客户端执行登录.)


以httpd模块方式编译安装php-5.4.40
yum install libxml2-devel  bzip2-devel libmcrypt-devel
# 配置php编译环境;
# libmcrypt-devel需要使用aliyun仓库.
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --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/apache/bin/apxs --with-mcrypt  --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts
# 请./configure --help查看详情;
make && make install
vim /etc/httpd/httpd.conf
# 添加如下语句;
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps
   DirectoryIndex  index.php  index.html
cp php.ini-production /etc/php.ini
# 复制php配置文件;

配置使用phpmyadmin
cd ~
unzip phpMyAdmin-4.4.15.2-all-languages.zip
mv phpMyAdmin-4.4.15.2-all-languages /usr/local/apache/htdocs/pma
cd /usr/local/apache/htdocs/
cd pma
cp config.sample.inc.php config.inc.php
# 复制自带配置文件;
vim config.inc.php
# 加随机字符串:
$cfg['blowfish_secret'] = '8bvcxg83busgr34trs7hgsvf8d9sbfdsh'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */


编译安装xcache
(xcache会极大提高php的执行速度.)
tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0
/usr/local/php/bin/phpize
# 编译安装须先执行对应的phpize程序;
./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config
# --with-php-config指定php-config的位置;
make && make install
mkdir /etc/php.d
cp xcache.ini /etc/php.d
# 复制配置文件为php配置文件的一部分;
cd /etc/php.d
vim xcache.ini
# 使用下面的语句修改配置文件;
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so
xcache.admin.enable_auth = Off
service httpd24 restart
# 重启httpd24服务;
打开网页http://192.168.1.109/index.php验证查找xcache.
测试: ab -c 20 -n 1000 http://192.168.1.109/pma/index.php


使用fpm运行方式的php
(以fpm运行的php比以模块方式运行于httpd的php效率要高.)
cd ~
rm -rf php-5.4.40/
# 删除旧的源码文件目录;
tar xf php-5.4.40.tar.bz2
cd php-5.4.40
./configure --prefix=/usr/local/php5 --with-mysql=/usr/local/mysql --with-openssl --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 --enable-fpm --with-mcrypt  --with-config-file-path=/etc/php5/ --with-config-file-scan-dir=/etc/php5.d --with-bz2
# 注意使用的是新的php安装目录:php5(以防和原有程序冲突);
make && make install
cd /etc/httpd24
mv httpd.conf httpd.conf.mod_php
mv httpd.conf.bak httpd.conf
# 使用.bak的httpd配置文件(编译安装httpd时生成的);
cd -
mkdir /etc/php5{,.d}
# 创建/etc/php5和php5.d目录;
cp php.ini-production /etc/php5/php.ini
# 复制php配置文件;
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# 复制php的启动服务脚本, 注意以fpm方式运行的php程序是个单独的程序, 须开机启动;
chmod +x /etc/rc.d/init.d/php-fpm
# 添加可执行权限;
chkconfig --add php-fpm
chkconfig --list php-fpm
# 设置开机启动;
cp /usr/local/php5/etc/php-fpm.conf.default /usr/local/php5/etc/php-fpm.conf
# 复制php-fpm的配置文件;
vim /usr/local/php5/etc/php-fpm.conf
# 修改php-fpm中下面的语句;
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php5/var/run/php-fpm.pid 
service php-fpm start
# 启动服务;
验证: ps aux | grep php-fpm
查看9000端口: ss -tnl
cd /etc/httpd24/
vim httpd.conf
# 修改httpd.conf文件, 启动fcig代理模块和添加文件类型:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.php

ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1
# 上面的两行可以加在中心主机里面, 也可以加在虚拟主机里面.
service httpd24 restart
# 重启httpd24服务;
ab压力测试

给php-fpm编译安装xcache模块:
cd ~
rm -rf xcache-3.2.0
# 删除原有的源码目录;
tar xf xcache-3.2.0.tar.bz2
# 重新解压缩;
cd xcache-3.2.0
/usr/local/php5/bin/phpize
# 这次要执行php5目录下phpize程序;
./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config
make && make install
cp xcache.ini /etc/php5.d/
cd /etc/php5.d/
vim xcache.ini
extension = /usr/local/php5/lib/php/extensions/no-debug-non-zts-20100525/xcache.so
# 编译, 复制并修改配置文件;
# 注意以上目录均为php5, 指明要编译进哪个php;
service php-fpm restart
# 重启php-fpm服务;
打开网页http://192.168.1.109/index.php验证查找是否有xcache,
有则说明xcache编译安装成功;
测试: ab -c 20 -n 1000 http://192.168.1.109/pma/index.php

启用httpd状态页面:
启用状态页面的方法很简单,只需要在主配置文件中添加如下内容即可:
<Location /server-status>
    SetHandler server-status
    Require all granted
</Location>

可以通过类似如下网站查看状态:
http://192.168.1.109/server-status

需要提醒的是,这里的状态信息不应该被所有人随意访问,因此,应该限制仅允许某些特定地址的客户端查看。比如使用Require ip 192.168.1.0/24来限制仅允许指定网段的主机查看此页面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值