GVKun编程网logo

Centos7.2源码编译安装LA(N)MP(centos7源码包安装)

5

在本文中,我们将为您详细介绍Centos7.2源码编译安装LA(N)MP的相关知识,并且为您解答关于centos7源码包安装的疑问,此外,我们还会提供一些关于centos6编译安装LAMP、CentO

在本文中,我们将为您详细介绍Centos7.2源码编译安装LA(N)MP的相关知识,并且为您解答关于centos7源码包安装的疑问,此外,我们还会提供一些关于centos 6 编译安装LAMP、CentOS 6.3编译安装LAMP环境笔记、Centos 6.7 编译安装LAMP、Centos+apache+mysql+php LAMP源码编译安装的有用信息。

本文目录一览:

Centos7.2源码编译安装LA(N)MP(centos7源码包安装)

Centos7.2源码编译安装LA(N)MP(centos7源码包安装)

LAMP环境中PHP是作为apache的模块安装的,所以安装顺序是PHP放在apache的后面安装,这样便于安装PHP时可以在apache的模块目录生成对应的PHP模块。

apache版本:2.4.37

MysqL版本:5.7.24

PHP版本:7.3.0

Nginx版本:Nginx-1.14.2

注意:这里是使用的root用户安装,如果是其他用户,相应的操作前需要加上sudo。

 

1、安装apache

需要安装的依赖 apr、apt-util、pcre,pcre是一个正则表达式库,apache在路由匹配和路由重写时需要用到。

注意:这里不要使用pcre2,否则编译apache时会报错。

 

下载软件源码压缩包并解压

cd /usr/local/src
wget http://mirrors.hust.edu.cn/apache/httpd/httpd-2.4.37.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
wget https://nchc.dl.sourceforge.net/project/pcre/pcre/8.42/pcre-8.42.tar.gz
tar -zxvf httpd-2.4.37.tar.gz
tar -zxvf apr-1.6.5.tar.gz
tar -zxvf apr-util-1.6.1.tar.gz
tar -zxvf pcre-8.42.tar.gz

 

将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

将apr-1.6.5重命名为apr并移动到apache的源码包的srclib目录中

mv apr-1.6.5 httpd-2.4.37/srclib/apr
mv apr-util-1.6.1 httpd-2.4.37/srclib/apr-util

 

编译安装pcre

cd pcre-8.42
./configure --prefix=/usr/local/pcre-8.42
make && make install

 

编译安装apache

cd /usr/local/src/httpd-2.4.37
./configure --prefix=/usr/local/apache --with-pcre=/usr/local/pcre-8.42 --with-included-apr
make && make install

注:如果make过程报 Fatal error: expat.h: No such file or directory,运行 yum install -y expat-devel 安装expat,然后重新执行以上操作,如果还报错,先执行make distclean后重新执行以上操作。

 

启动apache

/usr/local/apache/bin/apachectl start

这里会出现错误提示信息,是因为没有配置虚拟主机的缘故,这里忽略它。

 

在浏览器中访问本机IP,如果是虚拟机则需要使用虚拟机的ip地址

显示It works! 代表启动成功,apache安装完成。

 

2、安装MysqL

准备工作(安装依赖、新建用户和目录)

yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper
groupadd MysqL
useradd -s /sbin/nologin -g MysqL MysqL
mkdir -p /home/MysqL/{data,log}
mkdir  /home/MysqL/log/error.log
chown -R MysqL:MysqL /home/MysqL

 

下载并解压MysqL源码压缩包

cd /usr/local/src
wget https://dev.MysqL.com/get/Downloads/MysqL-5.7/MysqL-5.7.24.tar.gz
tar -zxvf MysqL-5.7.24.tar.gz

 

进入MysqL源码包目录

cd /usr/local/src/MysqL-5.7.24

 

执行cmake

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL -DMysqL_DATADIR=/home/MysqL/data -DSYSconfdIR=/etc -DENABLED_LOCAL_INFILE=1 -DENABLE_DOWNLOADS=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

 

执行make

make

这里需要等待很长的时间,可能由于电脑性能和在虚拟机里面的原因,我这里等了将近三个小时,然后安装

make install

 

安装完成后将MysqL的bin目录加入环境变量

echo "export PATH=$PATH:/usr/local/MysqL/bin" >> /etc/profile
source /etc/profile

 

接下来初始化数据库数据目录

MysqLd --initialize --user=MysqL

注意:这里终端会输出root的初始密码,把它记录下来。

 

接下来配置一下/etc/my.cnf

[client]
port=3306
socket=/tmp/MysqL.sock

[MysqLd]
port=3306
basedir=/usr/local/MysqL
datadir=/home/MysqL/data
log_error=/home/MysqL/log/error.log
socket=/tmp/MysqL.sock
key_buffer_size=16M
max_allowed_packet=8M

[MysqLdump]
quick

上面只列出了基本的配置项,更多配置项请查看官方文档。配置项根据自己的机器做好调整。

 

然后将启动脚本添加到服务中,实现开机自启动

cp /usr/local/MysqL/support-files/MysqL.server /etc/init.d/MysqLd
chmod +x /etc/init.d/MysqLd
chkconfig --add MysqLd

 

接下来启动MysqLd

service MysqLd start

 

MysqLd服务启动起来以后,连接MysqLd服务,修改root初始密码

MysqL -uroot -p
输入密码进入MySQL命令行
alter user root@localhost identified by 新密码;

 

MysqL安装配置完成。

 

3、安装PHP

 下载源码压缩包并解压

cd /usr/local/src
wget http://cn2.PHP.net/get/PHP-7.3.0.tar.gz/from/this/mirror
tar -zxvf mirror

 

接下来进入PHP源码目录编译安装

cd PHP-7.3.0
./configure --prefix=/usr/local/PHP --enable-fpm --with-apxs2=/usr/local/apache/bin/apxs --with-MysqLi --with-pdo-MysqL
make && make install

 

安装成功后会在/usr/local/apache/modules目录下生成一个libPHP7.so的模块文件

 

编辑 httpd.conf 文件以调用 PHP 模块

vi /usr/local/apache/conf/httpd.conf

LoadModule PHP7_module modules/libPHP7.so

先检查是否已经自动生成,没有则手动加入

让apache将扩展名.PHP解析成PHP

<FilesMatch \.PHP$>

  SetHandler application/x-httpd-PHP

</FilesMatch>

默认PHP的配置文件目录为/usr/local/PHP/lib,也可以在httpd.conf文件中用PHPIniDir指令指定,如:PHPIniDir /etc/PHP.ini

从PHP源码包复制配置文件到指定目录,这里使用默认目录

cp /usr/local/src/PHP-7.3.0/PHP.ini-development /usr/local/PHP/lib/PHP.ini

 

新建PHP文件测试

rm -rf /usr/local/apache/htdocs/index.html
echo "<?PHP PHPinfo(); ?>" > /usr/local/apache/htdocs/index.PHP

 

 重启apache

/usr/local/apache/bin/apachectl restart

 

在浏览器中访问http://主机ip/index.PHP,显示PHPinfo()的内容代表配置正确。

LAMP环境到此搭建完成。

 

4、安装Nginx

下载源码压缩包并解压

cd /usr/local/src
wget http://Nginx.org/download/Nginx-1.14.2.tar.gz
tar -zxvf Nginx-1.14.2.tar.gz

 

进入源码包目录进行编译前的准备工作

cd Nginx-1.14.2
./configure --prefix=/usr/local/Nginx --with-pcre=/usr/local/src/pcre-8.42

注意:pcre的路径为源码包的路径

 

编译和安装

make && make install

 

完成以后,先检查apache是否在启动状态

ps aux | grep httpd

 

如果apache在启动状态则先将其退出

/usr/local/apache/bin/apachectl stop

 

启动PHP-fpm

新建用户用于启动PHP-fpm

groupadd www-data
useradd -s /sbin/nologin -g www-data www-data

 

修改PHP-fpm配置文件

cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf
cp /usr/local/PHP/sbin/PHP-fpm /usr/local/bin
vi /usr/local/PHP/etc/PHP-fpm.d/www.conf

 

找到以下内容并修改

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set,the default user‘s group
;       will be used.
user = www-data
group = www-data

 

然后启动PHP-fpm

PHP-fpm

 

配置Nginx使其支持PHP应用

vi /usr/local/Nginx/conf/Nginx.conf

 

修改默认的 location 块,使其支持 .PHP 文件

location / {
    root   html;
    index  index.PHP index.html index.htm;
}

 

下一步配置来保证对于 .PHP 文件的请求将被传送到后端的 PHP-FPM 模块,取消默认的 PHP 配置块的注释,并修改为下面的内容:

location ~ \.PHP$ {
    fastcgi_index   index.PHP;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

 

启动Nginx

/usr/local/Nginx/sbin/Nginx 

 

创建测试文件

rm -rf /usr/local/Nginx/html/index.html
echo "<?PHP PHPinfo(); ?>" > /usr/local/Nginx/html/index.PHP

 

在浏览器中访问http://主机ip,显示PHPinfo()的内容代表配置成功。

到这里LA(N)MP环境搭建完成。 

centos 6 编译安装LAMP

centos 6 编译安装LAMP

搭建环境:Centos 6.8,httpd2.4.18,MysqL 5.6.23,PHP 5.6.17

一、前期准备

请参考LNMP前期准备和MysqL安装请参考:http://www.jb51.cc/article/p-mdoljzgl-ou.html

二、httpd安装

安装apr

tarxfapr-1.5.2.tar.gz
cdapr-1.5.2
./configure--prefix=/usr/local/apr
make&&makeinstall

安装apr-util

tarxfapr-util-1.5.4.tar.gz
cdapr-util-1.5.4
./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
make&&makeinstall

安装httpd

cdhttpd-2.4.18
./configure--prefix=/usr/local/apache--sysconfdir=/etc/httpd--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
make&&makeinstall

编译安装部分参数说明

--enable-so#支持DSO动态装载模块
--enable-ssl#要编译启用ssl模块(前提是需要安装openssl-devel)
--enable-cgi#启用CGI模块(默认就启用)
--enable-rewrite#URL重写(支持URL重写)
--with-zlib#这是一个压缩库(专用于网络传输)
--with-pcre#使用增强的perl正则表达式分析工具(使用这项需要安装pcre-devel,pcre:正则表达式分析器)
--with-apr=/usr/local/apr#指明apr的目录(若apr在特殊路径下)
--with-apr-util=/usr/local/apr-util/#指明apr-util路径(若apr-util在特殊路径下
)
--enable-mpms-shared=all#把所有的mpm模块都编译进来而且是共享模块
--with-mpm=work#默认使用的mpm模块
--enable-modules=most(all)#还有很多其他模块,其他的动态可装载模块需要

测试httpd配置是否正常

/usr/local/apache/bin/apachectl-t

设置httpd服务和开机启动项

cp/usr/local/apache/bin/apachectl/etc/rc.d/init.d/httpd
vim/etc/rc.d/init.d/httpd
#chkconfig:356161
#description:Apache
chkconfig--addhttpd
chkconfighttpdon

三、PHP编译安装

前期准备(补充安装,--with-xsl使用)

yuminstalllibxslt-devel

安装PHP

tarxfPHP-5.6.17.tar.gz
cdPHP-5.6.17
./configure--prefix=/usr/local/PHP--with-MysqL=/usr/local/MysqL--with-apxs2=/usr/local/apache/bin/apxs--with-MysqLi=/usr/local/MysqL/bin/MysqL_config--with-iconv-dir=/usr/local--with-openssl--enable-mbstring--with-freetype-dir--with-jpeg-dir--with-png-dir--with-zlib--with-libxml-dir=/usr--enable-xml--disable-rpath--enable-bcmath--enable-shmop--enable-sysvsem-disable-inline-optimization--enable-mbregex--enable-mbstring--with-gd--enable-gd-native-ttf--with-mhash--enable-pcntl--enable-sockets--with-mcrypt--with-ldap--with-ldap-sasl--with-xmlrpc--enable-zip--enable-soap--with-bz2--with-config-file-path=/etc--with-config-file-scan-dir=/etc/PHP.d--enable-maintainer-zts--with-xmlrpc=shared--with-xsl
makeZEND_EXTRA_LIBS='-liconv'
makeinstall

编译安装部分参数说明(很多加载项用途不明,从别处抄袭,前几位参数还是特别重要的,比如--with-apsx2,httpd和PHP整合用使用)

--with-MysqL=/usr/local/MysqL#MysqL安装目录,对MysqL的支持
--with-MysqLi=/usr/local/MysqL/bin/MysqL_config#MysqLi扩展技术不仅可以调用MysqL的存储过程、处理MysqL事务,而且还可以使访问数据库工作变得更加稳定。
--with-apxs2=/usr/local/apache/bin/apxs#整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块
--with-iconv-dir=/usr/local#选项指令,用于PHP编译时指定iconv在系统里的路径,否则会扫描默认路径(与ZEND_EXTRA_LIBS='-liconv')。
--enable-maintainer-zts#编译成zts模块,event,worker模式使用
--with-freetype-dir#打开对freetype字体库的支持
--with-jpeg-dir#打开对jpeg图片的支持
--with-png-dir#打开对png图片的支持
--with-zlib-dir#打开zlib库的支持,用于http压缩传输
--with-libxml-dir#打开libxml2库的支持
--disable-rpath#关闭额外的运行库文件
--enable-bcmath#打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sysvsem#这样就使得你的PHP系统可以处理相关的IPC函数了。
--enable-inline-optimization#优化线程
--with-curl#打开curl浏览工具的支持
--with-curlwrappers#运用curl工具打开url流
--enable-mbregex
--enable-fpm#支持PHP-fpm,早期版本需要补丁后才有这个参数,CGI方式安装的启动程序
--enable-mbstring#多字节,字符串的支持
--with-mcrypt#mcrypt算法扩展
--with-mhash#mhash算法扩展
--with-gd#打开gd库的支持
--enable-gd-native-ttf#支持TrueType字符串函数库
--with-openssl#openssl的支持,加密传输https时用到的
--enable-pcntl#freeTDS需要用到的,可能是链接mssql才用到
--enable-sockets#打开sockets支持
--with-xmlrpc#打开xml-rpc的c语言
--enable-zip#打开对zip的支持
--enable-ftp#打开ftp的支持
--with-bz2#打开对bz2文件的支持
--without-iconv#关闭iconv函数,字符集间的转换
--with-ttf#打开freetype1.*的支持,可以不加了
--with-xsl#打开XSLT文件支持,扩展了libXML2库,需要libxslt软件
--with-gettext#打开gnu的gettext支持,编码库用到
--with-pear#打开pear命令的支持,PHP扩展用的
--enable-calendar#打开日历扩展功能
--enable-exif#图片的元数据支持
--enable-magic-quotes#魔术引用的支持
--disable-debug#关闭调试模式
--with-mime-magic=/usr/share/file/magic.mime#魔术头文件位置
#CGI方式安装才用的参数
--enable-fastCGI#支持fastcgi方式启动PHP
--enable-force-CGI-redirect#重定向方式启动PHP
--with-ncurses#支持ncurses屏幕绘制以及基于文本终端的图形互动功能的动态库
--with-gmp#应该是支持一种规范
--enable-dbase#建立DBA作为共享模块
--with-pcre-dir=/usr/local/bin/pcre-config#perl的正则库案安装位置
--disable-dmalloc
--with-gdbm#dba的gdbm支持
--enable-sigchild
--enable-sysvshm
--enable-zend-multibyte#支持zend的多字节
--enable-wddx
--enable-soap

提供PHP配置文件

cpPHP.ini-production/etc/PHP.ini

修改httpd.conf,使其支持PHP,并且可以识别index.PHP结尾作为首页

AddTypeapplication/x-httpd-PHP.PHP
AddTypeapplication/x-httpd-PHP-source.PHPs
DirectoryIndexindex.PHPindex.html

四、PHP扩展

libevent编译安装(libevent是一个基于事件触发的网络库,memcached底层也是使用libevent库。)

tarxflibevent-2.0.22-stable.tar.gz
cdlibevent-2.0.22-stable
./configure--prefix=/usr/local/libevent
make&&makeinstall
echo"/usr/local/libevent/lib">/etc/ld.so.conf.d/libevent.conf
ldconfig

memcached编译安装

tarxfmemcached-1.4.25.tar.gz
cdmemcached-1.4.25
/configure--prefix=/usr/local/memcached--with-libevent=/usr/local/libevent/
make&&makeinstall

编译memcached开机启动项(部分设置均在服务脚本中)

vim/etc/rc.d/init.d/memcached
#!/bin/bash
#
#Initfileformemcached
#
#chkconfig:-8614
#description:distributedmemorycachingdaemon
#
#processname:memcached
#config:/etc/sysconfig/memcached

./etc/rc.d/init.d/functions

##Defaultvariables
PORT="11211"
USER="root"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS=""

RETVAL=0
prog="/usr/local/memcached/bin/memcached"
desc="distributedmemorycaching"
lockfile="/var/lock/subsys/memcached"

start(){
echo-n$"Starting$desc(memcached):"
daemon$prog-d-p$PORT-u$USER-c$MAXCONN-m$CACHESIZE
RETVAL=$?
echo
[$RETVAL-eq0]&&touch$lockfile
return$RETVAL
}

stop(){
echo-n$"Shuttingdown$desc(memcached):"
killproc$prog
RETVAL=$?
echo
[$RETVAL-eq0]&&rm-f$lockfile
return$RETVAL
}

restart(){
stop
start
}

reload(){
echo-n$"Reloading$desc($prog):"
killproc$prog-HUP
RETVAL=$?
echo
return$RETVAL
}

case"$1"in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[-e$lockfile]&&restart
RETVAL=$?
;;
reload)
reload
;;
status)
status$prog
RETVAL=$?
;;
*)
echo$"Usage:$0{start|stop|restart|condrestart|status}"
RETVAL=1
esac

exit$RETVAL
chmod+x/etc/rc.d/init.d/memcached
chkconfig--addmemcached
servicememcachedstart

memcached部分参数说明

-l<ip_addr>:指定进程监听的地址;
-d:以服务模式运行;
-u<username>:以指定的用户身份运行memcached进程;
-m<num>:用于缓存数据的最大内存空间,单位为MB,默认为64MB;
-c<num>:最大支持的并发连接数,默认为1024;
-p<num>:指定监听的TCP端口,默认为11211;
-U<num>:指定监听的UDP端口,默认为11211,0表示关闭UDP端口;
-t<threads>:用于处理入站请求的最大线程数,仅在memcached编译时开启了支持线程才有效;
-f<num>:设定SlabAllocator定义预先分配内存空间大小固定的块时使用的增长因子;
-M:当内存空间不够使用时返回错误信息,而不是按LRU算法利用空间;
-n:指定最小的slabchunk大小;单位是字节;
-S:启用sasl进行用户认证;

freetds编译安装(用于PHP连接mssql)

tarxffreetds-1.00.11.tar.gz
cdfreetds-1.00.11
./configure--prefix=/usr/local/freetds--with-tdsver=7.3--enable-msdblib--with-gnu-ld--enable-shared--enable-static
make&&makeinstall
cd/usr/local/src/PHP-5.6.17/ext/mssql/
/usr/local/PHP/bin/PHPize
./configure--with-PHP-config=/usr/local/PHP/bin/PHP-config--with-mssql=/usr/local/freetds/
make&&makeinstall

--with-tdsver=7.3说明,具体说明参照:

http://www.freetds.org/userguide/choosingtdsprotocol.htm#TAB.PROTOCOL.BY.PRODUCT

wKiom1eXNBrCzsr4AAB2YE_enNA904.png

安装PHP支持memcache扩展模块

tarzxvfmemcache-2.2.7.tgz
cdmemcache-2.2.7
/usr/local/PHP/bin/PHPize
./configure--enable-memcache--with-PHP-config=/usr/local/PHP/bin/PHP-config--with-zib-dir
make&&makeinstall

修改PHP.ini,增加freetds和memcache功能

extension_dir="/usr/local/PHP/lib/PHP/extensions/no-debug-zts-20131226/"
extension=mssql.so
extension="GBK"
extension=memcache.so

重启httpd使生效

servicehttpdrestart

编写PHP测试页面

<?PHP
$link=MysqL_connect('ipaddress','user','passwd');
if($link)
echo"MysqLSuccess...";
else
echo"MysqLFailure...";
MysqL_close();
$conn=mssql_connect('ipaddress','passwd');
if($conn)
echo"MSsqlSucess...";
else
echo"MSsqlFailure...";
mssql_close();
PHPinfo();
?>

测试可正常使用

wKioL1eXO0jwle8ZAABZSzaWqTU342.png

wKioL1eXNzKAOJluAAAnwnABSMA265.png

wKioL1eXNzLTOjf5AAAyHfm3lQw710.png

五、后记

本篇博文拖了好久才写出来,其实LAMP编译安装还是挺简单的,只是httpd和PHP的模块化整合搞了好久(./configure具体配置不知何用),计划用于公司的IPOS系统测试使用,后面几篇博文计划httpd.conf,PHP.ini,Nginx.conf配置说明。web服务器的搭建还是得熟练点,毕竟Linux使用最多的东西。

CentOS 6.3编译安装LAMP环境笔记

CentOS 6.3编译安装LAMP环境笔记

最近抽空在虚拟机上测试成功了LAMP各个最新版本的整合编译安装,算是把之前的博文整合精简,以下内容均在CENTOS6.3(安装minimal desktop和默认开发包)下测试安装成功,并做了相应优化配置,如有遗漏,还请留言指教。
 
LINUX操作系统:centOS6.3 64bit(安装了系统默认开发包)
APACHE:httpd-2.4.4
MysqL:mysql-5.6.10
PHP:PHP-5.4.13
注:推荐安装centos6.3系统时,在系统安装向导中。将默认开发包勾上,避免后期编译报错

一.安装开发包(使用默认CENTOS更新源):

复制代码 代码如下:

# yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*

二.关闭iptables和SELINUX

复制代码 代码如下:

# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled
---------------

三.安装MysqL数据库

1.下载编译包:

复制代码 代码如下:

# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.13.tar.gz/from/http://cdn.mysql.com/

 
2.安装前的初始配置工作:
复制代码 代码如下:

# useradd -d /usr/local/MysqL/ MysqL   #创建一个MysqL用户,指定家目录到/use/local目录下。
# mkdir /usr/local/MysqL/data         
# mkdir /usr/local/MysqL/log           #新建MysqL下data和log子目录
# chown -R MysqL:MysqL /usr/local/MysqL/data/
# chown -R MysqL:MysqL /usr/local/MysqL/log/
# chmod 750 /usr/local/MysqL/data     
# chmod 750 /usr/local/MysqL/log       #修改目录的所属者以及所属组

3.解包编译安装
复制代码 代码如下:

# tar -zxv -f mysql-5.6.10.tar.gz     
# cd mysql-5.6.10 
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/MysqL \
-DMysqL_UNIX_ADDR=/tmp/MysqL.sock \
-DDEFAULT_CHARSET=gbk \
-DDEFAULT_COLLATION=gbk_chinese_ci \
-DEXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMysqL_DATADIR=/usr/local/MysqL/data \
-DMysqL_USER=MysqL \
-DMysqL_TCP_PORT=3306 \
-DSYSconfdIR=/etc \
-DWITH_SSL=yes
 
#  make & make install

编译注解:
复制代码 代码如下:

-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL \               #安装目录
-DMysqL_UNIX_ADDR=/tmp/MysqL.sock \                        #Unix socket文件路径,自定义此路径防报错
-DDEFAULT_CHARSET=gbk \                                            #默认字符
-DDEFAULT_COLLATION=gbk_chinese_ci \                    #校验字符
-DEXTRA_CHARSETS=all \                                                 #安装所有扩展字符集
-DWITH_MYISAM_STORAGE_ENGINE=1 \                       #安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \                  #安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \                     #安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \               #安装blackhole存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \                      #安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1                 #安装frderated存储引擎
-DWITH_READLINE=1 \                                                          #快捷键功能
-DENABLED_LOCAL_INFILE=1 \                                          #允许从本地导入数据
-DMysqL_DATADIR=/usr/local/MysqL/data \                        #数据库存放目录
-DMysqL_USER=MysqL \                                                       #数据库属主
-DMysqL_TCP_PORT=3306 \                                             #数据库端口
-DSYSconfdIR=/etc \                                                           #MysqL配辑文件
-DWITH_SSL=yes                                                                   #数据库SSL

4.编写MysqL配置项:
#  vi /etc/my.cnf
复制代码 代码如下:

[MysqL]
 
# CLIENT #
port                              = 3306
socket                         = /tmp/MysqL.sock
 
[MysqLd]
 
# GENERAL #
user                                           = MysqL
default_storage_engine         = InnoDB
socket                                       = /tmp/MysqL.sock
pid_file                                     = /var/run/MysqLd/MysqLd.pid
 
# MyISAM #
key_buffer_size                      = 32M
myisam_recover                    = FORCE,BACKUP
 
# SAFETY #
max_allowed_packet             = 16M
max_connect_errors               = 1000000
skip_name_resolve
sql_mode                       = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate_is_Now                     = 1
innodb                                     = FORCE
innodb_strict_mode              = 1
 
# DATA STORAGE #
datadir                                     = /usr/local/MysqL/data
 
# BINARY LOGGING #
log-bin                                    =/usr/local/MysqL/log/bin.log
expire_logs_days                 = 30
sync_binlog                           = 1
 
# CACHES AND LIMITS #
key_buffer                                 = 256M
max_allowed_packet              = 32M
sort_buffer_size                       = 16M
read_buffer_size                     = 4M
read_rnd_buffer_size             = 16M
thread_stack                            = 8M
tmp_table_size                        = 32M
max_heap_table_size            = 32M
query_cache_type                   = 1
query_cache_size                   = 128M
query_cache_limit                  = 2M
max_connections                   = 2048
thread_cache_size                = 512
open_files_limit                      = 65535
table_deFinition_cache         = 1024
table_open_cache               = 2048
 
# INNODB #
innodb_log_files_in_group                = 2
innodb_log_file_size                         = 64M
innodb_flush_log_at_trx_commit    = 1
innodb_file_per_table                      = 1
# 2G这个值配置低的话建议改小即可
innodb_buffer_pool_size        = 2G
 
# LOGGING #
log-error=/usr/local/MysqL/log/error.log
general_log=1
general_log_file=/usr/local/MysqL/log/MysqL.log
slow_query_log=1
slow_query_log_file=/usr/local/MysqL/log/slowquery.log
log-output=FILE
 
# 避免MysqL的外部锁定,减少出错几率增强稳定性 #
skip-external-locking
 
# 禁止sql读取本地文件 #
local-infile=0

 
5.将MysqL的库文件路径加入系统的库文件搜索路径中

方法一:直接做软链接

复制代码 代码如下:

# ln -s /usr/local/MysqL/lib/MysqL /usr/lib/MysqL

方法二:利用ldconfig导入系统库(推荐)
复制代码 代码如下:

# echo "/usr/local/MysqL/lib" >> /etc/ld.so.conf.d/MysqL.conf
# ldconfig

6.输出MysqL的头文件到系统头文件

复制代码 代码如下:

# ln -s /usr/local/MysqL/include/MysqL /usr/include/MysqL

7.进入安装路径,初始化配置脚本

复制代码 代码如下:
# cd /usr/local/MysqL
# scripts/MysqL_install_db --user=MysqL --datadir=/usr/local/MysqL/data

8.复制MysqL启动脚本到系统服务目录

复制代码 代码如下:
# cp /usr/local/MysqL/support-files/MysqL.server /etc/init.d/MysqLd

9.系统启动项相关配置

复制代码 代码如下:
# chkconfig --add MysqLd  #添加开机启动服务
# chkconfig --level 35 MysqLd on  #设置MysqL启动

10.启动MysqL

复制代码 代码如下:

# service MysqLd start

注:编译时若socket路径自定义为/var/lib/MysqL/MysqL.sock,这里需要创建一个MysqL接口的软链接,防止登陆后台或安装论坛报错.
复制代码 代码如下:

# ln -s /var/lib/MysqL/MysqL.sock /tmp/MysqL.sock 

11. 设置初始账户,并登陆后台:

复制代码 代码如下:

# /usr/local/MysqL/bin/MysqLadmin -u root password 123456   #设置密码
# /usr/local/MysqL/bin/MysqL -u root -p123456     #连接数据库
-----------------------------------
MysqL> create database PHPwind;      #创建数据库
MysqL> grant all privileges on *.* to root@'%' identified by '123456' with grant option;  #给root用户非本地链接所有权限,并改密码和赋予其给其他人下发权限.
MysqL> show variables; #查看MysqL设置.
-----------------------------------

注:从启MysqL也可使用以下命令开启此服务
复制代码 代码如下:

# /usr/local/MysqL/bin/safe_MysqLd

如果不设置chkconfig启动项,也可在/etc/rc.local下添加如下命令,使MysqL服务利用系统启动脚本运行.
复制代码 代码如下:

# echo "/usr/local/MysqL/bin/safe_MysqLd --user=MysqL &" >> /etc/rc.local

12 添加MySQL命令集到系统全局变量

注:如果系统之前未安装MysqL客户端,可以将编译好的MySQL命令集导入系统全局变量
以后就可以直接使用MySQL命令集,而不需要使用绝对路径访问.

复制代码 代码如下:
# echo "PATH=$PATH:/usr/local/MysqL/bin;export PATH" >> /etc/profile
# source /etc/profile

四.安装apache网站服务

1.pcre依赖包安装

复制代码 代码如下:

# wget http://sourceforge.net/projects/pcre/files/pcre/8.32/pcre-8.32.tar.gz/download
# tar -xzvf pcre-8.32.tar.gz
# cd pcre-8.32
# ./configure --prefix=/usr/local/pcre
# make && make install

2.下载apache

其实这里在apache官网找不到httpd-2.4.4-deps.tar.bz2的编译包,不知道官方怎么想的,最后研究了下最近的2.43deps版本,解压该编译包,发现里面放的其实就是apr和apr-util两个apache的依赖包,现在的方法是直接把2.43的包解压到apache安装根目录即可连同apache编译安装,最后能正常安装使用,算是一个无奈之举,但安装起来较网上单独编译安装依赖包要简便一些.

复制代码 代码如下:

# wget http://archive.apache.org/dist/httpd/httpd-2.4.3-deps.tar.bz2
# wget http://archive.apache.org/dist/httpd/httpd-2.4.4.tar.bz2

3.解包

注:httpd-2.4.3-deps.tar.bz2已集成APR,安装apache前检查pcre是否安装成功.

复制代码 代码如下:

# tar jxvf httpd-2.4.4.tar.bz2
# tar jxvf httpd-2.4.3-deps.tar.bz2
# cp -rf httpd-2.4.3/* httpd-2.4.4
# cd httpd-2.4.4

4.伪装Apache版本信息

修改 include/ap_release.h文件 "Apache" 参数为 "Microsoft-IIS/5.0"
修改 os/unix/os.h文件 "Unix" 参数为 "Win32"

复制代码 代码如下:

# cd httpd-2.4.4
# vi include/ap_release.h
#define AP_SERVER_BASEPRODUCT "Apache"

改为
复制代码 代码如下:

#define AP_SERVER_BASEPRODUCT "Microsoft-IIS/5.0"
 
# vi os/unix/os.h
#define PLATFORM "Unix"

改成
复制代码 代码如下:

#define PLATFORM "Win32"

--------------随  笔-----------------
这里走了一些弯路,网上很多资料上写到apache2.4版本打开默认多线程模式时,都是在修改conf/extra/httpd-mpm.conf下prefork MPM处参数,但当我实际操作的时候发现,修改后系统的apache进程并未增加,但在2.2下修改此参数则没有任何问题,最近研究worker模式下才发现到,实际你启用worker模式后,执行此命令
复制代码 代码如下:
# /usr/local/apache2/bin/apachectl -l
返回的结果如下:
复制代码 代码如下:
core.c
 mod_so.c
 http_core.c
worker.c

看到worker.c,这里就想到是不是使用默认的线程模式显示的*.c的这个*就是apache根目录conf/extra/httpd-mpm.conf下对应的参数,想到这个疑问然后就使用默认线程模式从新编译了下apache,执行命令
复制代码 代码如下:
# /usr/local/apache2/bin/apachectl -l
返回:
复制代码 代码如下:

core.c
mod_so.c
http_core.c
event.c

OK,到conf/extra/httpd-mpm.conf下,查看有如下几行参数
复制代码 代码如下:

<IfModule mpm_event_module>
   StartServers            3
   MinSpareThreads         75
   MaxSpareThreads        250
   ThreadsPerChild         25
   MaxRequestWorkers      400
   MaxConnectionsPerChild   0
</IfModule>

将StartServers 参数修改成10
复制代码 代码如下:
# lsof -i:80
[root@lamp apache2]# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd    1302   root    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21852 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21854 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21855 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21856 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21857 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21858 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21859 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21860 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21936 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)
httpd   21937 daemon    4u  IPv6 106523      0t0  TCP *:http (LISTEN)

问题解决,看来2.4版本的apache默认线程是需要修改event参数,这里请注意.
 
5.编译安装:

编译默认event MPM模式(推荐)

复制代码 代码如下:
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --with-pcre=/usr/local/pcre/bin/pcre-config

编译worker MPM模式(可选,能正常开启服务,但本人未做过相关网站测试,不推荐生产环境下使用)
复制代码 代码如下:
# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite  -with-mpm=worker --with-pcre=/usr/local/pcre/bin/pcre-config
 
# make && make install
 
#  防止apache启动报错.
# vi /usr/local/apache2/conf/httpd.conf
------------------------
ServerName localhost:80
------------------------

6.启动apache

复制代码 代码如下:
# /usr/local/apache2/bin/apachectl start
设置开机启动
复制代码 代码如下:
# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.local

7.配置apache:

1).禁止地址目录访问和索引:

复制代码 代码如下:
#vi /usr/local/apache2/conf/httpd.conf
搜索  Options Indexes FollowSymLinks
将其前面加#注释
复制代码 代码如下:
-----------------
# Options Indexes FollowSymLinks
-----------------

2).隐藏版本号:

复制代码 代码如下:
#vi /usr/local/apache2/conf/httpd.conf
加入以下两行:
复制代码 代码如下:
------------------
ServerTokens ProductOnly
ServerSignature Off
------------------

3).优化线程数:

如果apche访问量过大,将会导致页面打开迟缓,下载速度也降低,如果由于经费和环境问题,可以通过对Apache2增加模块MPM来进行优化,这里我选择线程型MPM加以优化:
注:此方法仅对编译安装apache有效:

a.开启mpm:

复制代码 代码如下:
#vi /usr/local/apache2/conf/httpd.conf
找到以下这行内容,去掉注释.
复制代码 代码如下:
Include conf/extra/httpd-mpm.conf (如果没有此段代码可以新加。没有此文件httpd-mpm.conf可以新建,也可以直接加代码到)

b.优化配置:

复制代码 代码如下:
#vi  /usr/local/apache2/conf/extra/httpd-mpm.conf
找到如下代码,修改成以下参数即可.
复制代码 代码如下:
# event MPM配置:
------------------------
<IfModule mpm_event_module>
  StartServers 5
  ServerLimit 5000
  MaxClients 4000
  MinSpareThreads 100
  MaxSpareThreads 400
  ThreadLimit 200
  ThreadsPerChild 100
  MaxRequestWorkers    400
  MaxRequestsPerChild  100
</IfModule>
------------------------
# worker MPM配置:
-----------------------
<IfModule mpm_event_module>
  StartServers 5
  ServerLimit 5000
  MaxClients 4000
  MinSpareThreads 100
  MaxSpareThreads 400
  ThreadLimit 200
  ThreadsPerChild 100
  MaxRequestWorkers    400
  MaxRequestsPerChild  100
</IfModule>
-----------------------
------------------------------------------------------

其中最重要的参数是 ThreadsPerChild和 MaxClients:

复制代码 代码如下:

#ThreadsPerChild
每个子进程建立的线程数,子进程在启动时建立这些线程后就不再建立新的线程了
#MaxClients
允许同时伺服的最大接入请求数量(在worker下就是最大线程数量)
#ServerLimit:
对最大子进程数的上限,该值必须大于等于MaxClients/ThreadsPerChild
#ThreadLimit:
对ThreadsPerChild的上限,该值必须大于等于 ThreadsPerChild,如果将ThreadLimit设置成一个高出实际需要很多的ThreadsPerChild值,将会有过多的共享内存被 分配,应当和ThreadsPerChild可能达到的最大值保持一致.
#StartServers:
服务器启动时的服务进程数目,该值肯定小于等于ServerLimit
#MinSpareThreads和MaxSpareThreads:
通过新建或结束子进程的方式,将空闲线程的总数维持在这个范围内
#MaxRequestsPerChild:
用于控制服务器建立新进程和结束旧进程的频 率,其实是一个为了防止内存溢出的参数,每个子进程在其生存期内允许伺服的最大请求数量。到达MaxRequestsPerChild的限制后,子进程将 会结束。对于KeepAlive链接,只有第一个请求会被计数。事实上,它改变了每个子进程限制最大链接数量的行为。

可以通过检查HTTPServer/logs/error_log日志,判断MaxClients是否需要增加,如果有报错,就说明apache自上次重启至今,曾经发生过达到MaxClients的情况:

4).关闭TRACE Method.

复制代码 代码如下:
#vi /usr/local/apache2/conf/httpd.conf
-----------------------
TraceEnable off
-----------------------

5).实现service和chkconfig系统控制httpd开启关闭

复制代码 代码如下:

# vi /etc/ld.so.conf.d/apache2.4.4.conf
-----------
/usr/local/apache2/lib
------------
# ldconfig
# cp /usr/local/apache2/bin/apachectl /etc/init.d/httpd
# vi /etc/init.d/httpd

在首行#!/bin/sh 下面添加:
复制代码 代码如下:
----------------
#chkconfig:345 61 61
#description:Apache httpd
--------------- 
# chkconfig --add httpd
# chkconfig httpd on
# service httpd restart

6).修改log日志格式实现每天保存.

#vi /usr/local/apache2/conf/httpd.conf
找到CustomLog和ErrorLog行,注释掉修改为以下参数

复制代码 代码如下:
--------------------------------
CustomLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.access_log 86400 480" combined
ErrorLog "|/usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/%Y_%m_%d.error_log 86400 480"
---------------------------------

7).修改apache权限:

复制代码 代码如下:
# vi /usr/local/apache2/conf/httpd.conf
------------------
User www
Group www
------------------

注:这里其实就相当于用户执行WEB浏览会触发httpd进程,该进程由于属主属组都为www,所以对属主属组为www的目录都有读写权限,当然前提你的目录u=r+w+x,这样就保证开发人员在执行PHP语句时能对项目目录下的文件具有读写权限,避免运维人员手动对需要读写的子目录再设置777权限,保证项目顺利实施.

五.安装PHP模块

1.处理依赖包

暂无..

2.安装PHP

复制代码 代码如下:
# wget http://cn2.php.net/distributions/php-5.4.13.tar.bz2
# tar -jxvf PHP-5.4.13.tar.bz2
# cd PHP-5.4.13

此处编译安装了我们项目经常用到的PHP模块,如有其它需要可以自定义添加.

复制代码 代码如下:
# ./configure --prefix=/usr/local/PHP5 --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/lib --with-zlib-dir=/usr/local/lib --with-MysqL=/usr/local/MysqL --with-MysqLi=/usr/local/MysqL/bin/MysqL_config --with-gd --enable-soap --enable-sockets  --enable-xml --enable-mbstring --with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-curl=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype/ --enable-bcmath --enable-calendar --enable-zip --enable-maintainer-zts
# 注:其中最后一个参数--enable-maintainer-zts在安装PHP5.4最新版本时必须添加(5.3貌似不需要),表示打开PHP进程安全Thread Safe,默认不添加为NON Thread Safe,开启apache服务会报错.....(此处被坑了一下午...#$%^&*)
# make
# make install

安装结束后:

添加PHP配置文件,需要CP一个源码里面的PHP.ini-development或PHP.ini-production  到/usr/local/PHP/lib为PHP.ini

复制代码 代码如下:
#cd ~/PHP-5.4.13
#cp PHP.ini-development /usr/local/PHP5/lib/PHP.ini

 
3.配置APACHE的PHP模块:

编辑Apache配置文件,

复制代码 代码如下:
# vi /usr/local/apache2/conf/httpd.conf
并添加以下一行:
复制代码 代码如下:
--------------------------------------------
AddType application/x-httpd-PHP .PHP
--------------------------------------------

并在 DirectoryIndex 一行后面加上 index.PHP
如果PHP无法加载,检查httpd.conf配置下是否有该行配置(默认安装PHP后会自动将该行写入)
复制代码 代码如下:
LoadModule PHP5_module modules/libPHP5.so
 

4.测试PHP加载:

注: 编译安装的apache 网页存放路径跟rpm包安装的不一样。编译安装的路径在/usr/local/apache2/htdocs/
可添加以下内容info.PHP到/usr/local/apache2/htdocs/下,测试PHP模块是否加载.

复制代码 代码如下:
# vi  /usr/local/apache2/htdocs/info.PHP
---------------
<?PHP
echo PHPinfo();
?>
---------------

检查80端口是否打开
复制代码 代码如下:
# lsof -i:80
浏览器输入 http://localhost/info.PHP
显示有如下测试页面内容,PHP模块即在APACHE下加载成功

测试本地MysqL是否正常连接

复制代码 代码如下:
# vi  /usr/local/apache2/htdocs/index.PHP
---------------------
<html><body><h1>The page to test MysqL local connection.</h1></body></html>
<?PHP
 $conn=MysqL_connect('localhost','root','123456');
 if ($conn)
   echo "<h2>Success...</h2>";
 else
   echo "<h2>Failure...</h2>";
 
?>
---------------------

浏览器输入 http://localhost
显示如下页面,表示连接成功.

5.PHP配置项: (默认路径/usr/local/PHP5/lib/PHP.ini)

复制代码 代码如下:
# vi /usr/local/PHP5/lib/PHP.ini
-------------------------
# 隐藏PHP版本信息:
expose_PHP = Off
# 关闭警告及错误信息,爆路径:
display_errors = Off
# 调整时区,防止PHPinfo()函数报错.
date.timezone =PRC
# 开启PHP错误日志并设置路径.
log_errors = On
error_log = /usr/local/apache2/logs/PHP_error.log

--------------大功告成O(∩_∩)O~-----------------

Centos 6.7 编译安装LAMP

Centos 6.7 编译安装LAMP

一、环境和软件包准备

使用163的yum源

关闭防火墙和selinux

需要准备的软件包

mkdir /tools; cd/tools

apr-1.5.2.tar.gz

apr-util-1.5.4.tar.gz

httpd-2.4.16.tar.gz

curl-7.45.0.tar.gz

gettext-0.19.5.tar

libmcrypt-2.5.7.tar.gz

mcrypt-2.6.8.tar.gz

lpng1618.zip

mod_fastcgi-2.4.6.tar.gz

mysql-5.6.26.tar.gz

PHP-5.5.30.tar.gz

PHPMyAdmin-4.5.0.2-all-languages.zip

libpng-1.2.53.tar

freetype-2.4.0.tar

jpegsrc.v9.tar

opencart-2.1.0.1.zip

zlib-1.2.3.tar

……………….

注.版本不一定要一样。

二、安装依赖环境

三、编译安装apr

1、编译安装apr

2、编译安装apr-util

四、编译安装apache

五、编译安装MysqL

1、安装MysqL

2、创建相关设置

编辑配置文件

vim /etc/my.cnf

添加如下内容

详细内容参考附件my.cnf

编辑启动脚本

vim/etc/rc.d/init.d/MysqLd

添加和修改如下三行

详细内容参考附件MysqLd文件

设置启动脚本权限

3、初始化数据库并启动

初始化数据库,执行完成后如果看到有两个OK,说明初始化成功了。

启动数据库

把MySQL命令加入环境变量

使用service命令管理MysqL进程

六、编译安装PHP

1、安装curl

2、安装libmcrypt

3、安装mhash

4、安装mcrypt

5、安装gettext

6、安装libxml2

7、安装PHP

8、设置PHPinfo和PHPadmin

(1)、设置PHPinfo页面

修改apache配置文件

vim /usr/local/apache2/conf/httpd.conf

在DirectoryIndex 后加上index.PHP,如下

在末尾加上

访问http://yourip

看到如下界面,说明lamp安装成功。

Centos 6.7 编译安装LAMP

(2)、设置PHPadmin

修改如下内容,在$cfg['blowfish_secret']后面加上任意字符,给密码加密

把$cfg['Servers'][$i]['host']的localhost改成127.0.0.1

Centos 6.7 编译安装LAMP

设置MysqL密码

登陆MysqL

用浏览器访问http://yourip/PHPadmin

看到如下界面,使用你的MysqL用户名和密码登陆。

Centos 6.7 编译安装LAMP

Centos 6.7 编译安装LAMP

(3)、修改PHP.in

到此LAMP基本安装完成,可通过调整PHP.ini实现一些自定义的功能。

七、扩展PHP模块

有时候我们安装完成PHP后,发现有有需要的模块没有安装,但我们又不希望重新编译安装PHP,这时就可以使用动态扩展的方法安装PHP的扩展模块。

以下以GD模块和zlib模块为例子:

1、安装freetype

2、安装jpeg

3、安装libpng

4、安装gd

5、安装zlib

6、编辑PHP.ini文件

vim /opt/PHP/lib/PHP.ini

在末尾添加如下几行内容

重启httpd服务

7、验证是否安装成功

用浏览器访问PHPinfo查看是否有了GD模块和zlib模块

http://youip

Centos 6.7 编译安装LAMP

Centos 6.7 编译安装LAMP

PHP GD模块和zlib模块安装完成。

八、搭建网站服务

我们使用opencart这个开源项目作为WEB站点实验

浏览器访问http://youip/opencart

Centos 6.7 编译安装LAMP

站点搭建完成。

九、设置防火墙


Centos+apache+mysql+php LAMP源码编译安装

Centos+apache+mysql+php LAMP源码编译安装

WEB服务器linux+apache+MysqL+PHP LAMP源码环境搭建

Linux+Apache+MysqL+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度共同

组成了一个强大的web应用程序平台。而从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。

下面来看一下LAMP环境搭建的步骤。

准备工具:

apr-1.4.6.tar.gz apr-util-1.5.1.tar.gz

httpd-2.4.4.tar.bz2

mysql-5.6.10.tar.gz cmake-2.8.10.2.tar.gz

PHP-5.4.3.tar.gz

一.准备环境:

我用的是Red Hat Enterprise Linux 5.4 eth0 192.168.126.129

[root@lly ~]# mount /dev/cdrom /mnt/cdrom挂载光盘

用yum检测开发环境

[root@lly ~]# vim /etc/yum.repos.d/rhel-debuginfo.repo编辑yum客户端

Centos+apache+mysql+php LAMP源码编译安装

[root@lly ~]# yum grouplist检查开发环境

Centos+apache+mysql+php LAMP源码编译安装

说明:这里需要有这几个开发环境,我这里,环境已经具备了,要是没有这几个开发环境, 可以用yum groupinstall “开发环境名”即可,

注意:yum安装软件包组时,多个单词的一定要加””

二.安装

按照httpd MysqL PHP 的顺序依次安装

1.安装apache

其实关于apache的安装,本人前边的博客已有介绍

[root@lly ~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

[root@lly ~]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/

[root@lly src]# cd /usr/local/src/apr-1.4.6/

[root@lly apr-1.4.6]# ./configure --prefix=/usr/local/apr把apr安装到/usr/local/apr目录下

[root@lly apr-1.4.6]#make

[root@lly apr-1.4.6]#make install

[root@lly apr-1.4.6]# cd ..

[root@lly src]# cd apr-util-1.5.1/

[root@lly apr-util-1.5.1]# ./configure --with-apr=/usr/local/apr/bin/apr-1-config

[root@lly apr-util-1.5.1]# make

[root@lly apr-util-1.5.1]# cd

[root@lly ~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/

[root@lly ~]# cd /usr/local/src/httpd-2.4.4/

[root@lly httpd-2.4.4]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-pcre -with-z --enable-mpms-shared=all

[root@lly httpd-2.4.4]# make

[root@lly httpd-2.4.4]# make install

[root@lly httpd-2.4.4]#/usr/local/apache/man

[root@lly man]# vim /etc/man.config

把apache的man手册添加到man路径方便查看apache的man手册

Centos+apache+mysql+php LAMP源码编译安装

为了防止系统调用apache的头文件include时找不到路径,可以做一个连接

[root@lly apache]# ln -s /usr/local/apache/include/ /usr/include/apache

为了更好的管理httpd,为其编辑一个启动脚本

[root@lly ~]# cd /etc/init.d/

[root@lly init.d]# vim httpd

脚本如下

#!/bin/sh

#set -x

HTTPD='/usr/local/apache/bin/httpd'

CONFFILE='/etc/httpd/httpd.conf'

#description: http server

#chkconfig: 2345 88 60

start(){

[ -f /var/lock/subsys/httpd ]&& echo "apache is started" && exit

echo -n "starting apache......"

sleep 1

}

stop(){

[ ! -f /var/lock/subsys/httpd ] && echo "httpd is stoped..." && exit

echo -n "stoping httpd........"

sleep 1

/bin/rm -rf /var/lock/subsys/httpd

$HTTPD -k stop && RETVAL=0 ||RETVAL=1

}

case $1 in

stop(){

[ ! -f /var/lock/subsys/httpd ] && echo "httpd is stoped..." && exit

echo -n "stoping httpd........"

sleep 1

/bin/rm -rf /var/lock/subsys/httpd

$HTTPD -k stop && RETVAL=0 ||RETVAL=1

[ $RETVAL -eq 0 ] && rm -rf /var/lock/subsys/httpd && echo "ok" || echo "fail"

}

case $1 in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo "start|stop|restart"

;;

esac

[root@lly init.d]# chmod a+x /etc/init.d/httpd

[root@lly init.d]# service httpd start

[root@lly init.d]# netstat -tupln |grep http

tcp 0 0 :::80 :::*

[root@lly init.d]# chkconfig --add httpd添加自启动

[root@lly init.d]# chkconfig --list |grep http

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2.安装MysqL cmake

[root@lly ~]# tar zxvf mysql-5.6.10.tar.gz -C /usr/local/src/

[root@lly ~]# cd /usr/local/src/mysql-5.6.10/

[root@lly mysql-5.6.10]# less INSTALL-SOURCE

MysqL的使用说明

Centos+apache+mysql+php LAMP源码编译安装

安装MysqL的时候需要用到cmake工具

安装cmake

[root@lly ~]# tar -zxvf cmake-2.8.10.2.tar.gz -C /usr/local/src/

[root@lly ~]# cd /usr/local/src/cmake-2.8.10.2/

[root@lly cmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake

[root@lly cmake-2.8.10.2]# make && make install

Waiting.......................

[root@lly cmake-2.8.10.2]# cd /usr/local/cmake/

为了日后能快速访问cmake下的bin,把cmke下的bin添加路径

[root@lly cmake]# vim /etc/profile

Centos+apache+mysql+php LAMP源码编译安装

注意:只有下次进入之后路径才会添加成功

[root@lly ~]# cd /usr/local/src/mysql-5.6.10/

86:36

[root@lly mysql-5.6.10]# cmake .

[root@lly mysql-5.6.10]# make && make install

Please waiting for a long time。。。。。。。。。。。。。。。。。。。。。。。。。。

[root@lly ~]# cd /usr/local/src/mysql-5.6.10/

[root@lly mysql-5.6.10]# less INSTALL-SOURCE

MysqL安装说明中的配置的步骤

Centos+apache+mysql+php LAMP源码编译安装

[root@lly mysql-5.6.10]# cd /usr/local/MysqL/

创建帐号信息

[root@lly MysqL]# groupadd MysqL

[root@lly MysqL]# useradd -r -g MysqL MysqL

[root@lly MysqL]# chown -R MysqL .

进行初始化

[root@lly MysqL]# scripts/MysqL_install_db --user=MysqL

[root@lly MysqL]# chown -R root .

[root@lly MysqL]# chown -R MysqL data

[root@lly MysqL]# cd support-files/

[root@lly support-files]# cp my-default.cnf /etc/my.cnf

[root@lly support-files]# cp MysqL.server /etc/init.d/MysqLd

[root@lly support-files]# chmod a+x /etc/init.d/MysqLd

[root@lly support-files]# service MysqLd start

Starting MysqL..... [ OK ]

MysqLd 服务成功启动

[root@lly support-files]# netstat -tupln |grep MysqLd

tcp 0 0 :::3306 :::*

[root@lly support-files]# cd ..

[root@lly MysqL]# pwd

/usr/local/MysqL

[root@lly MysqL]# vim /etc/profile

Centos+apache+mysql+php LAMP源码编译安装

重新登录一次

[root@lly ~]# MysqL

MysqL> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| MysqL |

| performance_schema |

| test |

+--------------------+

4 rows in set (0.00 sec)

[root@lly ~]# MysqLadmin -u root -p password '123'设置一个管理员帐号密码123

[root@lly ~]# MysqL -u root -p以后就可以以此帐号登陆了

Centos+apache+mysql+php LAMP源码编译安装

MysqL生成的/usr/local/MysqL/lib库文件不是标准路径系统无法识别(/lib 或者/usr/lib为标准路径)所以需做如下配置

[root@lly MysqL]# vim /etc/ld.so.conf.d/MysqL.conf

写入

/usr/local/MysqL/lib

刷新ld.so.cache

[root@lly MysqL]# ll /etc/ld.so.cache

-rw-r--r-- 1 root root 81871 Apr 13 08:17 /etc/ld.so.cache

[root@lly MysqL]# ldconfig

[root@lly MysqL]# ll /etc/ld.so.cache

-rw-r--r-- 1 root root 82128 Apr 13 15:46 /etc/ld.so.cache

对MysqL的头文件include做一个连接

[root@lly MysqL]# ln -s /usr/local/MysqL/include/ /usr/include/MysqL

3.安装PHP

[root@lly ~]# tar -zxvf PHP-5.4.3.tar.gz -C /usr/local/src/

[root@lly ~]# cd /usr/local/src/PHP-5.4.3/

[root@lly PHP-5.4.3]# ./configure --prefix=/usr/local/PHP --sysconfdir=/etc --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-gd --with-jpeg-dir --with-png-dir --enable-mbstring --with-MysqL=/usr/local/MysqL --with-MysqLi=/usr/local/MysqL/bin/MysqL_config --enable-xml --with-freetype-dir

[root@lly PHP-5.4.3]# make && make install

[root@lly PHP-5.4.3]# cd /usr/local/PHP/

[root@lly PHP]# vim /etc/profile

Centos+apache+mysql+php LAMP源码编译安装

[root@lly PHP]# vim /etc/ld.so.conf.d/PHP.conf

写入

/usr/local/MysqL/lib

[root@lly PHP]# ldconfig

[root@lly PHP]# ln -s include /usr/include/PHP

[root@lly PHP]# vim /etc/httpd/httpd.conf

在apache的配置文件中会自动添加modules/libPHP5.so模块

Centos+apache+mysql+php LAMP源码编译安装

Centos+apache+mysql+php LAMP源码编译安装

[root@lly ~]# service httpd restart重启apache

注意:若出现如下错误,可能是是Linux有一个SELinux保护模式引起的

starting apache......httpd: Syntax error on line 147 of /etc/httpd/httpd.conf: Cannot load modules/libPHP5.so into server: /usr/local/apache/modules/libPHP5.so: cannot restore segment prot after reloc: Permission denied

Fail

可以进行如下操作

1关闭SELINUX的方法:
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled

需要重启
这个方法可能会对服务器带来风险。

2不关闭SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libPHP5.so
# service httpd restart
# setenforce 1

[root@lly ~]# cd /usr/local/apache/htdocs apache的默认站点目录

三.测试

1.测试apache

浏览器输入http://192.168.126.129

Centos+apache+mysql+php LAMP源码编译安装

2.测试PHP

[root@lly htdocs]# mv index.html index.PHP 把apache的测试页改为PHP

[root@lly htdocs]# vim index.PHP

Centos+apache+mysql+php LAMP源码编译安装

刷新浏览器出现如下界面

Centos+apache+mysql+php LAMP源码编译安装

至此,apache和PHP完美结合了。。。

3.测试PHP和MysqL的结合是否成功

[root@lly htdocs]# vim index.PHP

Centos+apache+mysql+php LAMP源码编译安装

刷新浏览器

Centos+apache+mysql+php LAMP源码编译安装

[root@lly htdocs]# service MysqLd stop关闭MysqLd服务时也显示正常

Centos+apache+mysql+php LAMP源码编译安装

到这里 apache 和MysqL、PHP已经完美结合在了一起。linux+apache+MysqL+PHP的web环境架构已经形成了.


关于Centos7.2源码编译安装LA(N)MPcentos7源码包安装的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于centos 6 编译安装LAMP、CentOS 6.3编译安装LAMP环境笔记、Centos 6.7 编译安装LAMP、Centos+apache+mysql+php LAMP源码编译安装的相关信息,请在本站寻找。

本文标签: