一. 系统环境:
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缓存功能
浙公网安备 33010602011771号