系统:CentOS 6.5 64位

1、卸载旧版本软件
rpm -qa | grep mysql                #查询是否已经安装MySQL,如有执行下面的操作将其全部删除
rpm -e mysql --nodeps #--nodeps选项强制删除,删除所有以MySQL开头的软件
rpm -e mysql-devel
rpm -e mysql-libs --nodeps rpm -qa | grep httpd #查询、卸载安装的Apache
rpm -e httpd --nodeps
rpm -e httpd-tools --nodeps rpm -qa|grep php #查询是否安装php,若有将其卸载

2、更新系统,并安装基本编译器

yum -y update
yum -y install wget make zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
yum -y install gcc gcc-c++ #基本编译器
yum -y install libXpm-devel #编译php需要
yum -y install openssl-devel
3、下载源码包
cd /usr/local/src/
mkdir /usr/local/src/dbtools/ #这个目录下的软件主要是安装MySQL使用的
cd /usr/local/src/dbtools/
wget http://ftp.gnu.org/gnu/make/make-4.1.tar.gz
wget http://alpha.gnu.org/gnu/bison/bison-2.7.91.tar.gz
wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24.tar.gz
wget -O m4-1.4..tar.gz http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
ls *.tar.gz | xargs -n1 tar xzvf #批量解压
cd .. mkdir -p /usr/local/src/libtools #这个目录下安装gd及其依赖库以支持php对图片的处理
cd /usr/local/src/libtools
wget http://xmlsoft.org/sources/libxml2-sources-2.9.2.tar.gz
wget http://mirrors.linuxeye.com/lnmp/src/libmcrypt-2.5.8.tar.gz
wget http://zlib.net/zlib-1.2.8.tar.xz
wget http://ncu.dl.sourceforge.net/project/libpng/libpng16/1.6.17/libpng-1.6.17.tar.gz
wget http://www.ijg.org/files/jpegsrc.v9.tar.gz
wget http://jaist.dl.sourceforge.net/project/freetype/freetype2/2.5.5/freetype-2.5.5.tar.gz
wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
wget https://codeload.github.com/libgd/libgd/tar.gz/gd-2.1.0
mv gd-2.1. gd-2.1..tar.gz #这里下载后的文件后缀不对,改一下名称后缀
ls *.tar.gz | xargs -n1 tar xzvf
cd .. mkdir -p /usr/local/src/apache_tools
cd /usr/local/src/apache_tools
wget http://mirrors.linuxeye.com/lnmp/src/apr-util-1.5.4.tar.gz
wget http://mirrors.linuxeye.com/lnmp/src/apr-1.5.1.tar.gz
wget http://mirrors.linuxeye.com/lnmp/src/pcre-8.37.tar.gz
wget http://www.apache.org/dist/httpd/httpd-2.4.12.tar.gz
cd .. mkdir -p /usr/local/src/php_pack
cd /usr/local/src/php_pack
wget http://mirrors.linuxeye.com/lnmp/src/phpMyAdmin-4.4.7-all-languages.tar.gz
wget http://mirrors.sohu.com/php/php-5.5.15.tar.gz
#wget http://cn2.php.net/distributions/php-5.4.41.tar.gz
#wget https://codeload.github.com/eaccelerator/eaccelerator/legacy.tar.gz/master #php5.5以后的版本不能用这些外在的加速插件了
#mv master eaccelerator-eaccelerator.tar
ls *.tar.gz | xargs -n1 tar xzvf
4、安装gd库及其基本依赖包
cd libxml2-2.9./
./configure --prefix=/usr/local/libxml2 && make && make install
cd .. cd libmcrypt-2.5.
./configure --prefix=/usr/local/libmcrypt && make && make install
cd .. cd zlib-1.2.
./configure --prefix=/usr/local/zlib && make && make install
cd.. cd libpng-1.6.
./configure --prefix=/usr/local/libpng && make && make install
cd .. mkdir /usr/local/jpeg9 #建立软件安装目录
mkdir /usr/local/jpeg9/bin #建立存放命令的目录
mkdir /usr/local/jpeg9/lib #建立jpeg库文件所在目录
mkdir /usr/local/jpeg9/include #建立存放头文件目录
mkdir -p /usr/local/jpeg9/man/man1 #建立存放手册目录
cd jpeg-
./configure --prefix=/usr/local/jpeg9/ --enable-shared --enable-static
make && make install
cd .. cd freetype-2.4.
./configure --prefix=/usr/local/freetype && make && make install
cd .. cd autoconf-2.69
./configure && make && make install
cd .. libgd-gd-2.1.
./bootstrap.sh
./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib/ --with-jpeg=/usr/local/jpeg9/ --with-png=/usr/local/libpng/ --with-freetype=/usr/local/freetype
make && make install
 二、开始部署lamp
1、安装 Apache
#拷贝两个文件到httpd目录下(注意:低一些的版本可能不需要此操作),并同时重命名
cp -a apr-1.5. httpd-2.4./srclib/apr
cp -a apr-util-1.5. httpd-2.4./srclib/apr-util #安装pcre
cd pcre-8.37
./configure && make && make install
cd .. #安装Apache
./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd/ --with-z=/usr/local/zlib/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --enable-static-support
make && make install #修改配置文件
# vim /etc/httpd/httpd.conf
将ServerName localhost:
DirectoryIndex index.html index.htm index.php #测试成功后,为Apache添加自启动功能,用如下命令编辑/etc/rc.d/rc.local 文件:
echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.d/rc.local /usr/local/apache2/bin/apachectl start 启动服务器
打开网页输入Localhost,应该看到it works字样

2、安装mysql

2-1、#安装基本依赖包,这里采用源码安装的方式,也可以使用yum命令安装
cd make-4.1
./configure && make && make install
cd m4-1.4.
./configure && make && make install
cd bison-2.7.
./configure && make && make install
cd cmake-3.2.
./bootstrap && gmake && gmake install
make && make install
cd ncurses-5.9
./configure && make && make install
#安装mysql
2-2、#首先,创建mysql用户、组
groupadd mysql
useradd -r -g mysql mysql
mkdir -p /usr/local/mysql #软件安装目录
mkdir -p /usr/local/mysql/data #数据仓库目录

进入安装目录并安装:

cd mysql-5.6.24

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_DATADIR=/data/mysql/data\
-DSYSCONFDIR=/etc\
-DWITH_MYISAM_STORAGE_ENGINE= \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_MEMORY_STORAGE_ENGINE= \
-DWITH_READLINE= \
-DMYSQL_UNIX_ADDR=/tmp/mysql/mysql.sock \
-DMYSQL_TCP_PORT= \
-DENABLED_LOCAL_INFILE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci make && make install
解读:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \   #软件安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据仓库目录
-DSYSCONFDIR=/etc \ #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE= \ #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE= \ #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE= \ #支持Memory引擎
-DWITH_READLINE= \ #快捷键功能(我没用过)
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
-DMYSQL_TCP_PORT= \ #端口
-DENABLED_LOCAL_INFILE= \ #允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE= \ #安装支持数据库分区
-DEXTRA_CHARSETS=all \ #安装所有的字符集
-DDEFAULT_CHARSET=utf8 \ #默认字符
-DDEFAULT_COLLATION=utf8_general_ci
2-3、配置数据库
(1)、#初始化数据库
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
(2)、#copy配置文件,针对不同版本,5.6用下面一行
# cp support-files/my-medium.cnf /usr/local/mysql/my.cnf
cp /usr/local/mysql/support-files/my-default.cnf /usr/local/mysql/my.cnf
(3)、 #更改权限
chown -R mysql:mysql /usr/local/mysql                     
(4)、vim /usr/local/mysql/my.cnf #修改文件,添加以下内容:
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/mysql.pid
user = mysql
tmpdir = /tmp
(5)、添加到引导程序中:
cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld   
然后即可手工启动
/etc/init.d/mysqld start ##或者 service mysqld start
注意:设置开机启动:
chkconfig --add mysql ##有的系统需要下面的 chkconfig --level  mysql on
(6)、简化调用过程,设置密码,为方便调用,添加一个软连接:
ln -s /usr/local/mysql/bin/mysql /usr/bin/
设定一个密码
#mysql                      #默认是空密码,用这个命令就可以启动数据库
mysql> SET PASSWORD = PASSWORD('');
成功设置密码后启动数据库用下面的命令启动数据库
# mysql -u root -p
3、安装php
3-1、编译安装
# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysql=/usr/local/mysql/ \
--with-libxml-dir=/usr/local/libxml2/ \
--with-png-dir=/usr/local/libpng/ \
--with-jpeg-dir=/usr/local/jpeg9/ \
--with-freetype-dir=/usr/local/freetype/ \
--with-gd=/usr/local/gd2/ \
--with-zlib-dir=/usr/local/zlib/ \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-soap \
--enable-mbstring=all \
--enable-sockets # make && make install
3-2、#创建php配置文件
cp php.ini-production /usr/local/php/etc/php.ini     
3-3、修改Apache配置文件:
# vim  /etc/httpd/httpd.conf  ,修改时参考下面的内容
 LoadModule php5_module        modules/libphp5.so            #查看是否有这一行,如果PHP安装成功会有此行,否则重新安装PHP

     AddType application/x-httpd-php .php .php4 .php5         #添加这两行意思是以.php  .php4 .php5这些扩展名结尾的文件在Apache中用php解析器解析。
AddType application/x-httpd-php .php .phtml
3-4、重启Apache服务器,然后编辑一个test.php
[root@vn~]# /usr/local/apache2/bin/apachectl stop
[root@vn ~]# /usr/local/apache2/bin/apachectl start
[root@vn ~]# vim /usr/local/apache2/htdocs/test.php #输入以下内容并保存
<?php
phpinfo();
?>
在浏览器中输入网址:http://localhost/test.php,如果配置成功,则可以看到php的安装信息网页。
 
3-5、开启php缓存加速功能:
(1)、如果安装的是php5.5或更高版本,开启自带的缓存加速功能

目前PHP的缓存插件一般有三个: APC、 eAccelerator、 XCache,但未来它们可能都会消失,因为PHP 5.5已经集成 Zend Opcache,功能和前三者相似但又有少许不同,

缓存速度据说比它们更快(注意:只是据说,我没测试过)。

php5.5以后版本编译eAccelerator报错如下:

eaccelerator.c:66:23: error: php_logos.h: No such file or directory

究其原因是PHP5.5以下版本有php_logos.c,php_logos.h等文件。

如果想在新版本继续用加速,目前知道是的php自带扩展 opcache。

操作如下:

cd /usr/local/src/php_pack/php-5.5. /ext/opcache 

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

 make && make install

修改配置文件# vim /usr/local/php/etc/php.ini  在最后加入

zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-/opcache.so
opcache.memory_consumption=
opcache.interned_strings_buffer=
opcache.max_accelerated_files=
opcache.revalidate_freq=
opcache.fast_shutdown=
opcache.enable_cli=
(2)、如果安装时php5.4或之前的版本安装缓存插件,参考网址:http://www.osyunwei.com/archives/5274.html
 
补充:这里忘记安装curl了,查阅资料,解决方法如下:
当php编译完成以后,php的bin目录下会有phpize脚本文件,phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,在编译要添加的扩展模块前,
执行一下phpize就可以。
参考资料:《决战Nginx高性能Web服务器部署与运维(基于PHP、Java、ASP.NET等》陶利军编著 清华大学出版社 。第一章
这里用phpize安装curl扩展模块
[root@vn ~]# ls /usr/local/php/bin/
pear  peardev  pecl  phar  phar.phar  php  php-cgi  php-config  phpize
[root@vn ~]# cd /usr/local/src/
[root@vn src]# wget http://curl.haxx.se/download/curl-7.43.0.tar.gz
 
安装curl
tar zxvf curl-7.43.0.tar.gz
cd curl-7.43.0
./configure --prefix=/usr/local/curl
make && make install
安装扩展模块(重要的步骤已经用绿色标出,注意这种安装扩展模块的方法)
# find / -name php-config 
# cd /usr/local/src/php_pack/php-5.5.15/ext/ curl                   这里是正确的路径,在这里执行下面的命令
[root@vn curl]# /usr/local/php/bin/phpize 
Configuring for:
PHP Api Version:         20121113
Zend Module Api No:      20121212
Zend Extension Api No:   220121212
 
注意:
错误一:
[root@vn curl-7.43.0]# /usr/local/php/bin/phpize              这里出现这种错误,有可能是路径不对,真正的路径应该到下载的php安装包里找

错误二:Cannot find config.m4.
Make sure that you run '/usr/local/php/bin/phpize' in the top level source directory of the module
解决:
[root@kn curl]# pwd
/usr/local/src/php_pack/php-5.5./ext/curl
[root@kn curl]# ls
config.m4 config.w32 CREDITS curl.dsp curl_file.c interface.c multi.c package.xml php_curl.h share.c tests
[root@kn curl]# /usr/local/php/bin/phpize 即可 OK
 
 #这里注意,./configure后面指定的是php-config文件的路径;同时不要忘记加上curl的安装路径
./configure --with-php-config=/usr/local/php/bin/php-config --with-curl=/usr/local/curl/             
make && make install
 
编辑配置文件,添加配置项:
# vim /usr/local/php/etc/php.ini            #注意:配置文件的位置(前面的是行号)
  ; ... or with a path:
;
; extension=/path/to/extension/msql.so
;
extension=curl.so
执行命令
[root@kn curl]# /usr/local/php/bin/php -m           #看到curl的选项,证明安装成功

[PHP Modules]
Core
ctype
curl
date
dom
ereg
fileinfo
filter
gd
hash
iconv
json
libxml
mbstring
mcrypt
mysql
mysqli
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
soap
sockets
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib [Zend Modules]
重启Apache,
# /usr/local/apache2/bin/apachectl stop
# /usr/local/apache2/bin/apachectl start
编辑测试脚本,保存到Apache的htdocs目录下
<?php
echo phpinfo();
?>
在浏览器中查看php信息,有curl证明成功
4、安装PHPmyadmin,方便数据库管理
cd phpMyAdmin-4.4.-all-languages
cp config.sample.inc.php config.inc.php #配置文件
cp -a phpMyAdmin-4.4.-all-languages /usr/local/apache2/htdocs/myadmin #复制到指定目录,并更名
在浏览器中输入http://IP地址/myadmin,如果配置无误,则可以在浏览器中看到数据库登陆页面
 
5、安装对php进行安全加固的补丁:
wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
tar zxvf suhosin-0.9..tar.gz
cd suhosin-0.9.
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
然后,
     # vim /usr/local/php/etc/php.ini
将 extension_dir = "./" 更改为:
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20121212/ "
extension="suhosin.so"
 


部署lamp服务器的更多相关文章

  1. 部署LAMP+NFS实现双Web服务器负载均衡

    一.需求分析 1.前端需支持更大的访问量,单台Web服务器已无法满足需求了,则需扩容Web服务器: 2.虽然动态内容可交由后端的PHP服务器执行,但静态页面还需要Web服务器自己解析,那是否意味着多台 ...

  2. 云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2 ,Apache版本:2.4.23, Mysql 版本:5.7.17 , Php版本:7.0.12)

    云服务器 ECS > 建站教程 > 部署 LAMP (CentOS 7.2) 部署 LAMP (CentOS 7.2) 文档提供方:上海驻云信息科技有限公司    更新时间:2017-06 ...

  3. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  4. thinkphp5部署到LAMP服务器显示Access denied.

    问题:thinkphp5部署到LAMP服务器,首页正常访问,其余页面访问显示Access denied 解决:1.先把文件夹权限改为777 2. 进入服务器,改文件.将php.ini的值改成1

  5. AWS EC2中部署Apache服务器(LAMP)

    关键词: 1.新建aws ec2实例 2.使用putty连接到aws ec2 实例(SSH协议) 3.使用filezilla连接到aws ec2实例(SFTP协议) 4.在aws ec2上部署apac ...

  6. mint上部署lamp环境

    不得不说现在在linux mint上部署lamp很方便,比windows服务器上的asp.net的部署升级都简单. 1 安装MySql sudo apt-get install mysql-serve ...

  7. 将网站部署到服务器上出现_STORAGE_WRITE_ERROR_问题

    用的thinkphp3.2的框架,在本地运行没有问题,部署到服务器上(基于centos的LAMP环境)即报错,报错信息如下(完全看不懂...):求大神帮帮忙~~~~(>_<)~~~~ :( ...

  8. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  9. rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构

    rhel6+apache2.4+mysql5.7+php5.6部署LAMP架构 2017年10月01日 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~准备阶段~~~~~~~~~~~~~ ...

随机推荐

  1. safe RGB colors

    RGB是面向机器的一种颜色空间. 虽然它表示\(256 \times 256 \times 256\)种不同的颜色, 但在实际中, 大部分机器都只实现了256种颜色. 安全色(Safe RGB col ...

  2. .Net Core 1.0.0 RC2安装及示例教程

    前几天微软发布了.Net Core1.0.0 RC2 Preview版本,一直都想尝试下跨平台的.Net Core,一直拖到今天,也参考了下园友们的经验,闲时整理了一下安装的步骤,供大家参考. 我们要 ...

  3. 状态压缩 HDU 3091

    多组数据 n个点m条边 求有几个经过所有的点的环 最好用__int64 #include<stdio.h> #include<algorithm> #include<st ...

  4. Jetty应用服务器的安装详解

    Jetty是一个开源的Servlet容器和应用服务器,它极度轻量级.高便携性.功能强大.灵活和扩展性好,而且支持各种技术如SPDY.WebSocket.OSGi.JMX.JNDI和JAAS.Jetty ...

  5. Linux下C程序的内存布局

    参考下列书籍中的对应章节: <Linux高级程序设计(第3版)>第3章Linux进程存储管理.相关视频:一.二. <C专家编程>第6章 运动的诗章:运行时数据结构. <U ...

  6. 【caffe】三种文件类别:solver,model和weights

    @tags: caffe 文件类别 solver文件 是一堆超参数,比如迭代次数,是否用GPU,多少次迭代暂存一次训练所得参数,动量项,权重衰减(即正则化参数),基本的learning rate,多少 ...

  7. 【bzoj1082】 SCOI2005—栅栏

    http://www.lydsy.com/JudgeOnline/problem.php?id=1082 (题目链接) 题意 给出m块木柴,以及n块木板,要求将m块木柴做木板,要求将木柴切割成与木板一 ...

  8. 09-FZ6R 白色

  9. Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites

    Busting Frame Busting Reference From: http://seclab.stanford.edu/websec/framebusting/framebust.pdf T ...

  10. nginx中SSI问题的研究

    最近感觉挺爽的,这个项目团队没有一个专门做PHP的,我是第一个进来做PHP(当然还有前端)的,哈哈,我会设计修改出适合我们业务的PHP框架,哈哈,感觉会学到很多东西的样子,前几天在组内20几个前辈面前 ...