一.   系统环境:

Linux系统版本: CentOS release 6.5

Apache版本:  httpd-2.2.24

PHP 版本:   php-5.6.11

二.安装前准备:

   1.查看是否安装GCC ,GCC-C++编译器,如果没有则进行安装:

     查看是否安装的命令:

      #gcc –v

     若未安装在服务器联网情况下可以使用下列命令安装:

      #yum install gcc

      #yum install gcc-c++

2.查看和卸载默认的低版本环境(系统安装时自带的rpm包安装环境)

  检查是否安装以apache为例:

  #rpm –qa | grep httpd

   出现下图的情况说明已安装:

3.卸载低版本环境:

  #rpm –e httpd*  --nodeps (--nodeps 加这个强行卸载)

  #rpm –e php*   --nodeps  (有时可能需要先卸载mysql,再卸载php)

  #rpm –e mysql*  --nodeps

三.相关库文件与插件准备:

   1.在安装PHP之前需要安装最新的版本库文件:

     Libxml2,libmcrypt,gd2 (gd2库是为了让PHP5支持GIF,PNG和JPG等图片格式,所以在安装gd2之前还需要先安装 zlib,libpng,freetype和jpegsrc等库文件)

四.安装LAMP:

1.安装库文件:

a.安装libxml2 版本:libxml2-2.6.30.tar.gz

  # ./configure –prefix=/usr/local/libxml

  #make && make install

b.安装libmcrypt 版本:libmcrypt-2.5.8.tar.gz

  #./configure –prefix=/usr/local/libmcrypt

  #make && make install

 c.安装zlib 版本:zlib-1.2.3.tar.gz

  #./configure

  #make &&make install

 d.安装libpng 版本:libpng-1.2.52.tar.gz

   #./configure –prefix=/usr/local/libpng

   #make && make install

e.安装jpeg8 版本:jpegsrc.v8b.tar.gz (此软件安装时需要手动创建目录)

#mkdir  /usr/local/jpeg8

   # mkdir  /usr/local/jpeg8/bin

   # mkdir  /usr/local/jpeg8/lib

   # mkdir  /usr/local/jpeg8/include

   # mkdir  -p /usr/local/jpeg8/man/man1   (加-P是因为本来没有man目录,现在是man目录和man1同时创建,所以要加-p参数)

 #./configure --prefix=/usr/local/jpeg8/ --enable-shared --enable-static

 #make && make install

f.安装freetype 版本:freetype-2.3.5.tar.gz

   #./configure –prefix=/usr/local/freetype

   #make

   #make install

g.安装autoconf  版本:autoconf-2.61.tar.gz

 #./configure

 #make && make install

 h.安装GD库 版本:gd-2.0.33.tar.gz

# /configure \

--prefix=/usr/local/gd2/ \

--enable-m4_pattern_allow \

--with-zlib=/usr/local/zlib/ \

--with-jpeg=/usr/local/jpeg8/ \

--with-png=/usr/local/libpng/ \

--with-freetype=/usr/local/freetype/

#make (注:到这一步安装时一般会出现报错:)

报错信息:

make[2]: *** [gd_png.lo] Error 1

make[2]: Leaving directory `/usr/local/src/gd-2.0.35'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/usr/local/src/gd-2.0.35'

make: *** [all] Error 2

原因分析与解决方法:

(1)     出现此报错主要因为gd库文件中的gd_png.c这个文件里的png_h没有找到。

(2)     我们直接#vim  gd_png.c 将文件中的include “png.h”改为 include “/usr/local/libpng/include/png.h”就可以解决该问题,/usr/local/libpng/为先前的libpng的安装路径。

(3)     更改完成后最后再执行 #make && make install

五.安装apache,

(1)安装apache时先安装所需插件:

# yum -y install openssl openssl-devel zlib zlib-devel

(2)安装apr可移植运行库:

#[httpd-2.2.24]# cd srclib/apr

#[httpd-2.2.24/srclib/apr]# ./configure --prefix=/usr/local/apr

#[httpd-2.2.24/srclib/apr]# make

#[httpd-2.2.24/srclib/apr]# make install

#[httpd-2.2.24/srclib/apr]# cd ../apr-util/

#mkdir /usr/local/apr-util

#[httpd-2.2.24/srclib/apr-util]#./configure --prefix=/usr/local/apr-util  --with-apr=/usr/local/apr

#[httpd-2.2.24/srclib/apr-util]# make

#[httpd-2.2.24/srclib/apr-util]# make install

(3)安装APACHE:

#cd httpd-2.2.24

       #./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --enable-dav --enable-dav-fs --enable-modules=most --enable-mods-shared=all --enable-deflate --enable-ssl --with-apr-util=/usr/local/apr-util --enable-so  --enable-rewrite --with-mpm=prefork  

部分模块功能说明:

a. --enable-mods-shared=all动态加载所有模块(安时加这个不用单加模块)

b. --enable-dav --enable-dav-fs部分系统具备文件上传功能,因此开启dav支持。

c. --enable-deflate提供了压缩功能,一方面节约带宽,另一方面提高用户访问效率

d. --enable-expires 对网站图片,js,css等内容,提供浏览器缓存的功能。

e. --with-mpm=prefork,选择prefork模式,prefork提供了比worker模式更稳定的性能。

(4)加载模块

a.  mod_ssl.so模块加载操作

               #cd http-2.2.24/modules/ssl

               #/usr/local/apache/bin/apxs -c -i -A mod_ssl.c

b.  mod_speling.so模块加载操作(关闭区分大小写敏感的)

               # cd http-2.2.24/modules/ mappers

               #/usr/local/apache/bin/apxs  -c  -i  -a  mod_speling.c

(4)     编辑apache的配置文件:

4.1 prefork模式设定,在安装目录

/usr/local/apache/conf/extra/httpd-mpm.conf下进行编辑:

#vim httpd-mpm.config

将原来默认配置:

<IfModule mpm_prefork_module>

StartServers 5  //服务器进程开始子过程数量

MinSpareServers 5  //空闲时服务器最小进程数

MaxSpareServers 10   //空闲时服务器最大进程数

MaxRequestWorkers 250  //允许的最大数量的服务器进程

MaxConnectionsPerChild 0   //服务器进程最大连接数

</IfModule>

更改为如下:

<IfModule mpm_prefork_module>

     ServerLimit 20000  //设置为两万让MaxClient支持更多的进程

      StartServers          20

      MinSpareServers       20

      MaxSpareServers      50

      MaxClients          1000

 MaxRequestsPerChild   10000 //设置为非0可防止内存泄漏,闲时回收进程数量

  </IfModule>

 4.2  /usr/local/apache/conf下httpd.conf配置文件修改:

   #vim httpd.conf

   ServerRoot "/usr/local/apache" //apache的安装路径该配置在30行

   Listen 80   //配置监听端口为80 该配置在41行附近

   LoadModule speling_module     modules/mod_speling.so

   CheckSpelling On  //  关闭大小写区分  56行附近

  LoadModule php5_module  modules/libphp5.so //加载PHP解释器 58行

   Addtype plication/x-httpd-php .php .phtml  //apache与PHP整合  59行

   User apache  //启动apache所使用的用户

   Group  apache //启动apache所使用的用户所属的用户组

   ServerName localhost:80 //默认服务器和端口 106行附近

  

123 <Directory /> // apache的根目录访问权限

124     Options none

125     AllowOverride None

126     Order deny,allow

127     allow from all

128 </Directory>

<Directory "/www">  //apache的默认根目录与访问权限设置

153     Options none  

165     Order allow,deny

166     Allow from all

167

168 </Directory>

 

174 <IfModule dir_module> //默认首页配置174---176行

175     DirectoryIndex index.html index.php

176 </IfModule>

 

182 <FilesMatch "^\.ht"> //.ht文件访问设置,默认配置既可,默认可访问

183     Order allow,deny

184     Deny from all

185     Satisfy All

186 </FilesMatch>

 

195 ErrorLog "logs/error_log" //错误日志目录配置路径

 

386 Include conf/extra/httpd-mpm.conf //启用MPM模块

404 Include conf/extra/httpd-vhosts.conf//启用虚拟主机配置

416 Include conf/extra/httpd-ssl.conf //启用证书支持

4.3 SSL配置/usr/local/apache/conf/extra/httpd-ssl.conf

   #vim httpd-ssl.conf

 

 37 Listen 443   //启用HTTPS所使用的443端口

 

 78 DocumentRoot "/www"  //需要使用HTTPS协议传输文件路径

 79 ServerName localhost:443 //所有域名都协议都可走443

 80 ServerAdmin you@example.com //管理员邮箱出问题可收到邮件通知

 81 ErrorLog "/usr/local/apache/logs/error_log"//错误日志地址

 82 TransferLog "/usr/local/apache/logs/access_log"//访问日志记录

 86 SSLEngine on

 89 SSLProtocol  all -SSLv2 -SSLv3

              90SSLCipherSuiteALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL    

                123 SSLCertificateFile "/usr/local/apache/conf/ssl/server.crt" //证书地址

                131 SSLCertificateKeyFile "/usr/local/apache/conf/ssl/server.key"

                141 SSLCertificateChainFile "/usr/local/apache/conf/ssl/server-ca.crt

                214 <FilesMatch "\.(cgi|shtml|phtml|php)$">

215     SSLOptions +StdEnvVars

216 </FilesMatch>

217 <Directory "/usr/local/apache/cgi-bin">

218     SSLOptions +StdEnvVars

219 </Directory>

4.4  配置虚拟主机:/usr/local/apache/conf/extra/httpd-vhosts.conf

     #vim httpd-vhosts.config

19 NameVirtualHost  ip:80  //这里定义的是你本机域名所对应的IP地址

27 <VirtualHost 162.254.207.3:80> //虚拟主机对应的IP及开启的相应端口

 28     ServerAdmin webmaster@dummy-host.example.com

 29     DocumentRoot "/www/程序文件路径  //应用程序文件

 30     ServerName  域名(如 www.baidu.com)

 31     ServerAlias   域名

 32     ErrorLog "logs/ www.baidu.com -error_log"

 33     CustomLog "logs/ www.baidu.com -access_log" common

 34 </VirtualHost>

 六.安装mysql:

1.相关插件安装:

安装bison

yum install bison

安装cmake

yum install  cmake

安装ncurses

yum install ncurses

yum install ncurses-devel

2. 添加mysql用户组与用户,以及安装目录:

    新建mysql组和mysql用户,并将用户加入到组

#groupadd mysql  

#useradd -g mysql -s /sbin/nologin -M mysql 

 

#新建一个数据目录

#mkdir -p /usr/local/mysql/data

 

#赋予权限

#chown -R mysql:mysql /usr/local/mysql

#chown -R mysql:mysql /usr/local/mysql/data

3.源码编译安装mysql:

#tar zxvf mysql-5.6.24.tar.gz   //解压

#cd mysql-5.6.24            //CD到mysql的源码目录

3.1 编译安装:从mysql 5.5版本开始,mysql源码安装开始使用cmake

#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

   所安装模块功能注释:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径

 

-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置

 

-DSYSCONFDIR=/etc \ #my.cnf路径

 

-DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎

 

-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎

 

-DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎

 

-DWITH_READLINE=1 \ #快捷键功能

 

-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径

 

-DMYSQL_TCP_PORT=3306 \ #端口

 

-DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据

 

-DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区

 

-DEXTRA_CHARSETS=all \ #安装所有的字符集

 

-DDEFAULT_CHARSET=utf8 \ #默认字符

 

-DDEFAULT_COLLATION=utf8_general_ci #默认校对规则

 

其中-------

utf8_general_ci 不区分大小写

utf8_general_cs 区分大小写

cmake完成后进行编译安装

#make

#make install

 3.2 安装完成后开始配置mysql:

     注:在CentOS6.5系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,否则该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

#mv  /etc/my.cnf  /etc/my.cnf_bak  //将原有my.cnf文件进行重命名

#cd   /usr/local/mysql/scripts/   //到mysql的scripts安装目录下

#./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql      //初始化

#cp /usr/local/mysql/my.cnf   /etc/     //复制my.cnf到etc下

#vim  /etc/my.cnf       //编辑更改my.cnf里的文件

将数据目录和套接字文件修改为实际值 以下是我的配置文件:

 ——————————————————————————————

[mysqld]

 

# Remove leading # and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size = 128M

 

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

 

# These are commonly set, remove the # and set as required.

 

basedir = /usr/local/mysql

datadir = /usr/local/mysql/data

port = 3306

socket = /tmp/mysql.sock

 

# Remove leading # to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

 

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#cp /usr/local/mysql/support-files/mysql.server   /etc/init.d/mysqld

//复制启动脚本到/etc/init.d

#chkconfig mysqld on    //设置开机启动mysql

#vim  /etc/profile  //配置环境变量

//在profile文件里末尾添加以下内容

PATH=/usr/local/mysql/bin:$PATH

export PATH

#source  /etc/profile   //让变量马上生效

3.3初始化mysql的一些设置

    # mysql_secure_installation

 

Enter current password for root (enter for none):  直接回车

  

Set root password? [Y/n]            y   //设置mysql的root密码

 

//以下都yes

Remove anonymous users? [Y/n]   y

Disallow root login remotely? [Y/n]                   y

Remove test database and access to it? [Y/n]                  y

Reload privilege tables now? [Y/n]             y 

Thanks for using MySQL!   //密码设置成功

3.4登陆到MYSQL:

[root@****]# /usr/local/mysql/bin/mysql -uroot -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.40-log MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql>

//mysql安装完成。

 

七.安装PHP:

1.插件安装:

yum install libxml2-devel

yum install  libmcrypt-devel

2.php安装:

版本:php-5.6.11

         #./configure --prefix=/usr/local/php  --with-apxs2=/usr/local/apache/bin/apxs --with-zlib --with-libxml-dir --enable-gd-native-ttf --enable-mbstring --with-gd --with-mysql=/usr/local/mysql --with-mcrypt --with-mysqli=/usr/local/mysql/bin/mysql_config --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/jpeg-8b/  --with-png-dir=/usr/local/libpng --enable-sockets --enable-fpm --enable-force-cgi-redirect --enable-fastcgi  --enable-opcache #配置

          #make

          #make install

       3.PHP的配置:

# rm -rf /etc/php.ini #删除系统自带配置文件

#ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

#cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

#ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

#vi /usr/local/php/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

:wq! #保存退出

设置 php-fpm开机启动

#cp /usr/local/php/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录

#chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限

#chkconfig php-fpm on #设置开机启动

#vi /usr/local/php/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = PRC #设置时区

找到:expose_php = On

修改为:expose_php = Off #禁止显示php版本的信息

找到:short_open_tag = Off

修改为:short_open_tag = ON #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:;opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so #开启opcode缓存功能

 

posted on 2016-03-18 18:37  爱技术努力学技术  阅读(324)  评论(0)    收藏  举报