CentOS6编译安装LAMP,配置wordpress,xcache
apache,php,mariadb,xcache
准备包:
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
httpd-2.4.29.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.34.tar.bz2
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.gz
cd /usr/local/src/; ls; rz 上传下载的包
编译安装httpd-2.4
rpm -q apr; rpm -q apr-util 版本1.3过低,使用1.4以上才可以
service httpd status 把本机的httpd服务关闭
chkconfig --list httpd 不设置为开机启动
cd /usr/local/src/
tar xvf apr-1.5.2.tar.bz2
tar xvf apr-util-1.5.4.tar.bz2
tar xvf httpd-2.4.29.tar.bz2
cd /usr/local/src/httpd-2.4.29
mv ../apr-1.5.2 srclib/apr
mv ../apr-util-1.5.4 srclib/apr-util;
ll srclib/
yum -y groupinstall "Development tools"
编译时会缺少这两个包,所有直接安装
yum -y install pcre-devel openssl-devel
./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make && make install
vim /etc/profile.d/app.sh
export PATH=/app/httpd24/bin:$PATH
. /etc/profile.d/app.sh
cp /etc/init.d/httpd /etc/init.d/httpd24
vim /etc/init.d/httpd24
更改为下面四处的文件路径即可
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
service httpd status
chkconfig --add httpd24; which httpd
关闭防火墙和selinux
service httpd24 start
浏览器:192.168.29.126 OK
service httpd24 stop
浏览器:192.168.29.126 OK
mariadb的安装
yum list mysql 显示已经安装
yum -y remove mysql
getent passwd; id mysql; userdel -r mysql 删除mysql用户,在创建此用户
useradd -r -d /app/data -s /sbin/nologin -u 36 mysql -m
ll /app/data/ -d 文件权限mysql.mysql,不用更改
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/ 指定文件路径
cd /usr/local/ ;ll
ln -s mariadb-5.5.57-linux-x86_64/ mysql 把mariadb-...的文件夹名称改为mysql或者软连接也可以
ll mysql/
chgrp -R mysql mysql/ 更改权限mysql属组
cd mysql/support-files/;ls 里面的配置文件根据自己的需要来复制,生产环境用大的配置文件,英文字母的意思来判断即可
mkdir /etc/mysql
cp my-huge.cnf /etc/mysql/my.cnf
ll my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]下面添加信息
datadir = /app/data
innodb_file_per_table = on 创建的每个表都是独立的数据库
skip_name_resolve = on 禁止主机名解析,速度快
创建数据库
cd /usr/local/mysql;ls
scripts/mysql_install_db --datadir=/app/data --user=mysql
ll /app/data/ 文件生成
cat support-files/mysql.server 是一个服务脚本
cp support-files/mysql.server /etc/init.d/mysqld
ll /etc/init.d/mysqld 看是否有执行权限,有即可
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list mysql
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log
ll /var/log/mysqld.log
service mysqld start; ss -ntl 3306端口
vim /etc/profile.d/app.sh 把mysql放到path变量里
export PATH=/usr/local/mysql/bin:/app/httpd24/bin:$PATH
. /etc/profile.d/app.sh
mysql_secure_installation 删除匿名用户登陆
mysql -uroot -p
不用操作:mysql -uroot -p < feng.sql(此文件里就是要执行的sql语句,自动化)
create database blogdb;
grant all on blogdb.* to wpuser@"192.168.%.%" identified by "123456" ;
quit
mysql -u wpuser -h "192.168.29.126" -p; use blogdb;
安装php
cd /usr/local/src; ls
tar xvf php-5.6.34.tar.bz2
cd php-5.6.34
yum -y install libxml2-devel bzip2-devel libmcrypt-devel(epel)
没有epel源,安装libmcrypt(libmcrypt-2.5.8.tar.gz)
下载libmcrypt-2.5.8.tar.gz包:
http://nchc.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
cd /usr/local/src
rz 上传至此目录下
tar -xvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install 说明:libmcript默认安装在/usr/local
cd /usr/local/src/php-5.6.34
./configure --prefix=/app/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=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo --with-bz2
make -j 4 && make install
cp php.ini-production /etc/php.ini
vim /app/httpd24/conf/httpd.conf
搜索:/AddType,添加信息
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
搜索:DirectoryIndex
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
apachectl stop
浏览器:192.168.29.126 OK
apachectl
浏览器:192.168.29.126 OK
测试
php结合MySQL
vim vim /app/httpd24/htdocs/index.php 支持旧版本
<?php
$link = mysql_connect('192.168.29.126','wpuser','123456');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
apachectl
浏览器:192.168.29.126/index.php OK
service mysqld stop
浏览器:192.168.29.126/index.php OK
service mysqld start
浏览器:192.168.29.126/index.php OK
部署wordpress
cd /usr/local/src; ls
tar xvf wordpress-4.8-zh_CN.tar.gz -C /app/httpd24/htdocs; ls
cd /app/httpd24/htdocs
mv wordpress/ blog
cd blog/
浏览器:192.168.29.126/blog OK
cp wp-config-sample.php wp-config.php
vim wp-config.php
define('DB_NAME', 'database_name_here'); 变为 define('DB_NAME', 'blogdb');
define('DB_USER', 'username_here'); 变为 define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'password_here'); 变为 define('DB_PASSWORD', '123456');
define('DB_HOST', 'localhost'); 变为 define('DB_HOST', '192.168.29.126');
浏览器:192.168.29.126/blog
Site Title 联盟之家
Username qiangge
Password qianggedu123456
Your Email 594634660@qq.com
点击 "Install Wordpress"
浏览器:192.168.29.126/blog
centos7: ab -c10 -n 200 http://192.168.29.126/blog/
配置xcache加速器
cd /usr/local/src
tar xvf xcache-3.2.0.tar.gz
cd xcache-3.2.0/; ls 没有config文件
/app/php/bin/phpize 生成config文件
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
make && make install
ll /app/php/lib/php/extensions/no-debug-zts-20131226/ 生成的模块文件
ll /etc/php.d; mkdir /etc/php.d
cp xcache.ini /etc/php.d
vim /etc/php.d/xcache.ini
extension = /app/php/lib/php/extensions/no-debug-zts-20131226/xcache.so
service httpd24 restart
浏览器:192.168.29.126 ctrl+f:搜索xcache
centos7: ab -c10 -n 200 http://192.168.29.126/blog/ 性能提高了2-3倍
centos6配置fpm方式的php
以独立的服务,独立的端口运行,之前使以模块方式运行
环境:
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
httpd-2.4.29.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.34.tar.bz2
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.gz
以上面的实验为基础,编译php的时候,不同之处:
把 --with-apxs2=/app/httpd24/bin/apxs(模块方式) 换成 --enable-fpm
./configure --prefix=/app/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 --enable-fpm --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo --with-bz2
cd /usr/local/src/; rm -rf php-5.6.34
tar xvf php-5.6.34.tar.bz2;
cd php-5.6.34
yum -y install libxml2-devel bzip2-devel libmcrypt-devel(epel) 已经装过,不需要再装了
为了避免与上面的实验冲突,需要更改文件的路径:
--prefix=/app/php 换为 --prefix=/app/php5
--with-config-file-path=/etc 换为 --with-config-file-path=/etc/php5
--with-config-file-scan-dir=/etc/php.d 换为 --with-config-file-scan-dir=/etc/php5.d
./configure --prefix=/app/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 --enable-maintainer-zts --disable-fileinfo --with-bz2
make -j 4 && make install 快速编译的意思
mkdir /etc/php5 /etc/php5.d
cp php.ini-production /etc/php5/php.ini
cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm fastcgi独立服务,需要创建服务脚本
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list php-fpm
cd /app/php5/etc
cp php-fpm.conf.default php-fpm.conf
vim /app/php5/etc/php-fpm.conf 编辑php配置文件,可不做修改
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5 和pm.start_servers = 5一致
pid = /app/php5/var/run/php-fpm.pid
service php-fpm start
ps aux |grep fpm; pstree -p
ss -ntl 9000端口
修改httpd24的配置文件
service httpd24 stop
备份前面实验的配置文件
cp /app/httpd24/conf/httpd.conf /app/httpd24/conf/httpd.conf.module
vim /app/httpd24/conf/httpd.conf
说明:启用httpd的相关模块
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,
此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载
去掉下面两行注释
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 修改为 DirectoryIndex index.php index.html (做过)
在文件最下面增加下面两行
ProxyRequests Off 关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
ProxyPassMatch:
把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,
所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,
其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。
httpd -t
httpd –M
service httpd24 restart
vim /app/apache24/htdocs/index.php 生成测试页(已经做过)
<?php
$link = mysql_connect('192.168.29.126','wpuser','123456');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?>
浏览器:192.168.29.126 可以看到使用的是FPM/FastCGI模式,但没有xcache信息
centos7: ab -c10 -n 200 http://192.168.29.126/blog/
编译安装xcache实现加速
cd /usr/local/src
rm -rf xcache-3.2.0
tar xvf xcache-3.2.0.tar.bz2
cd xcache-3.2.0/
/app/php5/bin/phpize 生成编译环境.configure脚本
./configure --enable-xcache --with-php-config=/app/php5/bin/php-config
make && make install
注意最后结果的一行目录
ll /app/php5/lib/php/extensions/no-debug-zts-20131226/
cp xcache.ini /etc/php5.d/
vim /etc/php5.d/xcache.ini
[xcache-common]修改
extension = /app/php5/lib/php/extensions/no-debug-non-zts-20131226/xcache.so
service php-fpm restart
注意:不需要重启httpd服务
ps aux |grep php 查看php进程
浏览器:192.168.29.126 可以看到xcache信息
centos7: ab -c10 -n 200 http://192.168.29.126/blog/ 性能提高了2-3倍
LAMP-Centos6
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- lamp = centos6.8 + httpd2.4.29 + 安装顺序:httpd, MariaDB, php...
- 因为Centos6 yum源更新的很满,所以php还是5.4版本的,满足不了很多需求.特此说下配置方法 一、安装A...