十年网站开发经验+多家企业客户+靠谱的建站团队
量身定制+运营维护+专业推广+无忧售后,网站问题一站解决
1、解决依赖关系
(1)编译安装apr
#tarxfapr-1.5.2.tar.bz2
#cdapr-1.5.2
#./configure--prefix=/usr/local/apr
#make&&makeinstall
(2)编译安装apr-util
#tarxfapr-util-1.5.4.tar.bz2
#cdapr-util-1.5.4
#./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
#yum-yinstallpcre-devel
#yum-yinstallopenssl-devel
#yumupdateopenssl
#!/bin/bash
#
#chkconfig:-8515
#description:ApacheisaWorldWideWebserver.Itisusedtoserve\
#HTMLfilesandCGI.
#Sourcefunctionlibrary.
./etc/rc.d/init.d/functions
fi
HTTPD_LANG=${HTTPD_LANG-"C"}
#Thiswillpreventinitlogfromswallowingupapass-phrasepromptif
#mod_sslneedsapass-phrasefromtheuser.
INITLOG_ARGS=""
#withthethread-based"worker"MPM;BEWARNEDthatsomemodulesmaynot
#workcorrectlywithathread-basedMPM;notablyPHPwillrefusetostart.
#Pathtotheapachectlscript,serverbinary,andshort-formformessages.
apachectl=/usr/local/apache/bin/apachectl
RETVAL=0
start(){
echo-n$"Starting$prog:"
RETVAL=$
echo
[$RETVAL=0]&&touch${lockfile}
return$RETVAL
}
stop(){
echo-n$"Stopping$prog:"
[$RETVAL=0]&&rm-f${lockfile}${pidfile}
reload(){
echo-n$"Reloading$prog:"
echo$"notreloadingduetoconfigurationsyntaxerror"
else
#Seehowwewerecalled.
case"$1"in
start)
start
;;
stop)
stop
status)
restart)
condrestart)
if[-f${pidfile}];then
reload)
reload
graceful|help|configtest|fullstatus)
$apachectl$@
*)
echo$"Usage:$prog{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit1
esac
exit$RETVAL
而后为此脚本赋予执行权限并加入服务列表:
exportPATH=$PATH:/usr/local/apache/bin
二、安装MySQL(我这里通过编译安装MySQL-5.6.33(通用二进制格式))
1.将下载好的压缩包解压至/usr/local,并进入此目录
#tarxfmysql-5.6.33-linux-glibc2.5-x86_64.tar.gz-C/usr/local
#cd/usr/local/
2.为解压后的目录创建一个链接,并进入此目录
#ln-svmysql-5.6.33-linux-glibc2.5-x86_64mysql
#cdmysql
3.创建MySQL用户(使其成为系统用户)和MySQL组
#groupadd-r-g306mysql
#useradd-g306-r-u306mysql
4.使mysql下的所有文件都属于mysql用户和mysql组
#chown-Rmysql.mysql/usr/local/mysql/*
5.提前准备一个分区用来创建逻辑卷(我这里用/dev/sda5),在此分区上创建逻辑卷并使其可以开机自动挂载使用。
#pvcreate/dev/sda5
#vgcreatemyvg/dev/sda5
#lvcreate-nmydata-L512Mmyvg
#mkfs.ext4/dev/myvg/mydata
#vim/etc/fstab,添加以下内容:
/dev/myvg/mydata/mydataext4defaults00
#mkdir/mydata
#mount-a
6.创建数据目录,并使其属于mysql用户和mysql组,其他人无权限
#mkdir/mydata/data
#chown-Rmysql:mysql/mydata/data/
#chmodo-rw/mydata/data/
7.准备安装所需的开发环境
#yum-yinstallperl-Data-Dumper.x86_64
8.准备就绪,开始安装
#scripts/mysql_install_db--user=mysql--datadir=/mydata/data
9.安装完成后为了安全,更改/usr/local/mysql下所有文件的权限
#chown-Rroot.
10.准备启动脚本,并使其开机自动启动
#cpsupport-files/mysql.server/etc/init.d/mysqld
#chkconfig--addmysqld
#chkconfig--listmysqld
11.编辑数据库配置文件
#cpsupport-files/my-default.cnf/etc/my.cnf
#vim/etc/my.cnf,修改和添加以下内容:
datadir=/mydata/data
#vim/etc/profile.d/mysql.sh
添加以下内容:
exportPATH=$PATH:/usr/local/mysql/bin
13.至此,MySQL服务配置完成,可以启动测试
#systemctlstartmysqld
1.安装前准备:
1)想让编译的php支持mcrypt扩展,需要装两个包(这两个包需要额外下载):
#rpm-ivhlibmcrypt-2.5.8-13.el7.x86_64.rpm
#rpm-ivhlibmcrypt-devel-2.5.8-13.el7.x86_64.rpm
2)如果出现出现configure:error:xml2-confignotfound错误:
#yum-yinstalllibxml2
#yum-yinstalllibxml2-devel
2.将源码包下载至本地,开始安装
#tarxfphp-5.5.38.tar.bz2
#cdphp-5.5.38
#./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--enable-fpm--with-mcrypt--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d--with-bz2
(释义:
--prefix=/usr/local/php指定php安装目录;--with-mysql=/usr/local/mysqlmysql安装目录,对mysql的支持;--with-openssl增加openssl的支持;--with-mysqli=/usr/local/mysql/bin/mysql_configmysqlin扩展技术,不仅可以调用MySQL的存储过程,处理MySQL事物,而且可以使访问数据库工作变得稳定;
--enable-mbstring多字节字符串的支持;
--with-freetype-dir打开对freetype字体库的支持;
--with-jpeg-dir对jpeg格式图片的支持;
--with-png-dir打开对png图片的支持;
--with-zlib打开对zlib库的支持;
--with-libxml-dir=/usr打开libxml2库的支持;
--enable-xml打开对xml的支持;
--enable-sockets打开socket支;--with-apxs2=/usr/local/apache/bin/apxs;整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块;
--with-mcrypt算法;
--with-config-file-path=/etc指定php.ini(配置文件)位置;--with-config-file-scan-dir=/etc/php.d是搜索下面的ini文件php.ini一起使用;
--with-bz2打开对bz2文件的支持;
)
#make
#makeinstall
3.为php提供配置文件
#cpphp.ini-production/etc/php.ini
4.配置php-fpm
为php-fpm提供Sysvinit脚本,并将其添加至服务列表:
#cpsapi/fpm/init.d.php-fpm/etc/init.d/php-fpm
#chmod+x/etc/rc.d/init.d/php-fpm
#chkconfig--addphp-fpm
5.为php-fpm提供配置文件:
#cp/usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
6.编辑php-fpm的配置文件:
#vim/usr/local/php/etc/php-fpm.conf
pm.max_children=50
pm.start_servers=5
pm.min_spare_servers=2
pm.max_spare_servers=8
7.接下来就可以启动php-fpm了:
#servicephp-fpmstart
四、配置虚拟主机支持使用fcgi
1、注释中心主机,启用虚拟主机,并启用mod_proxy_fcgi.so和mod_proxy.so模块
注释:DocumentRoot"/usr/local/apache/htdocs"
LoadModuleproxy_modulemodules/mod_proxy.so
LoadModuleproxy_fcgi_modulemodules/mod_proxy_fcgi.so
修改:DirectoryIndexindex.htmlindex.php
2、需要先创建目录:/www/a.org/,并在其中提供测试页面
#mkdir-p/www/a.org
#vimindex.php
myfirst
phpinfo();
>
3、编辑虚拟主机配置文件,并检查有无语法错误
改为如下内容
DocumentRoot"/www/a.org"
ServerNamewww.a.org
ProxyRequestsOff(关闭正向代理功能)
ProxyPassMatch^/(.*\.php)$fcgi://127.0.0.1:9000/www/a.org/$1
Optionsnone
AllowOverridenone
Requireallgranted
ErrorLog"logs/dummy-host.example.com-error_log"
CustomLog"logs/dummy-host.example.com-access_log"common
五、安装xcache,为php加速(我这里用xcache-3.1.2)
1.下载源码,解压
#tarxfxcache-3.1.2.tar.bz2
#cdxcache-3.1.2
2.使php加载xcache扩展
#/usr/local/php/bin/phpize
在此处可能遇到报错:Cannotfindautoconf.Pleasecheckyourautoconfinstallationandthe$PHP_AUTOCONFenvironmentvariable.Then,returnthisscript
原因:Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的shell脚本的工具,需要安装。
解决办法:
#cd/usr/src/
#tar-zvxfm4-1.4.9.tar.gz
#cdm4-1.4.9/
#./configure&&make&&makeinstall
#cd../
#tar-zvxfautoconf-2.62.tar.gz
#cdautoconf-2.62/
3.编译安装
#./configure--enable-xcache-with-php-config=/usr/local/php/bin/
php-config
结束后会生成:Installingsharedextensions:/usr/local/php/lib/php/extensions/no-debug-zts-20121212/