• 部署lamp服务器


    系统: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,若有将其卸载
    View Code

    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
    View Code
    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.9.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.0  gd-2.1.0.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
    View Code
    4、安装gd库及其基本依赖包
    cd libxml2-2.9.2/
     ./configure --prefix=/usr/local/libxml2 && make && make install
    cd ..
     
    cd libmcrypt-2.5.8
    ./configure --prefix=/usr/local/libmcrypt && make && make install
    cd ..
     
     cd zlib-1.2.8
    ./configure --prefix=/usr/local/zlib && make && make install
    cd..
     
     cd libpng-1.6.17
    ./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-9 
    ./configure  --prefix=/usr/local/jpeg9/   --enable-shared  --enable-static
    make && make install
    cd ..
     
    cd  freetype-2.4.10
    ./configure --prefix=/usr/local/freetype && make && make install
    cd ..
     
    cd autoconf-2.69
     ./configure &&  make && make install
    cd ..
     
    libgd-gd-2.1.0 
    ./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
    View Code
     二、开始部署lamp
    1、安装 Apache
    #拷贝两个文件到httpd目录下(注意:低一些的版本可能不需要此操作),并同时重命名
    cp -a apr-1.5.1  httpd-2.4.12/srclib/apr
    cp -a apr-util-1.5.4  httpd-2.4.12/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:80
        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字样
    View Code

    2、安装mysql

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

    进入安装目录并安装:

    cd mysql-5.6.24

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_DATADIR=/data/mysql/data
    -DSYSCONFDIR=/etc
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_MEMORY_STORAGE_ENGINE=1 
    -DWITH_READLINE=1 
    -DMYSQL_UNIX_ADDR=/tmp/mysql/mysql.sock 
    -DMYSQL_TCP_PORT=3306 
    -DENABLED_LOCAL_INFILE=1 
    -DWITH_PARTITION_STORAGE_ENGINE=1 
    -DEXTRA_CHARSETS=all 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci
    
    make && make install
    View Code
    解读:
    -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
    View Code
    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
    View Code
    (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 345 mysql on
    (6)、简化调用过程,设置密码,为方便调用,添加一个软连接:
    ln -s /usr/local/mysql/bin/mysql /usr/bin/
    设定一个密码
    #mysql                      #默认是空密码,用这个命令就可以启动数据库
    mysql> SET PASSWORD = PASSWORD('123456');
    成功设置密码后启动数据库用下面的命令启动数据库
    # 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
    View Code
    3-2、#创建php配置文件
    cp php.ini-production /usr/local/php/etc/php.ini     
    3-3、修改Apache配置文件:
    # vim  /etc/httpd/httpd.conf  ,修改时参考下面的内容
    149 LoadModule php5_module        modules/libphp5.so            #查看是否有这一行,如果PHP安装成功会有此行,否则重新安装PHP
     
    378     AddType application/x-httpd-php .php .php4 .php5         #添加这两行意思是以.php  .php4 .php5这些扩展名结尾的文件在Apache中用php解析器解析。
    379     AddType application/x-httpd-php .php .phtml
    View Code 
    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();
    ?>
    View Code
    在浏览器中输入网址: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.15 /ext/opcache 
    
    /usr/local/php/bin/phpize
    
    ./configure --with-php-config=/usr/local/php/bin/php-config
    
     make && make install
    View Code

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

    zend_extension=/usr/local/php/lib/php/extensions/no-debug-zts-20121212/opcache.so
    opcache.memory_consumption=128
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=4000
    opcache.revalidate_freq=60
    opcache.fast_shutdown=1 
    opcache.enable_cli=1
    View Code
    (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.15/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
    View Code
     
     #这里注意,./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            #注意:配置文件的位置(前面的是行号)
     852 ; ... or with a path:
     853 ;                
     854 ;   extension=/path/to/extension/msql.so
     855 ;                
     856 extension=curl.so      
    View Code
    执行命令
    [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]
    View Code
    重启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.9-all-languages
    cp config.sample.inc.php config.inc.php        #配置文件
    cp -a  phpMyAdmin-4.4.9-all-languages /usr/local/apache2/htdocs/myadmin       #复制到指定目录,并更名
    View Code
    在浏览器中输入http://IP地址/myadmin,如果配置无误,则可以在浏览器中看到数据库登陆页面
     
    5、安装对php进行安全加固的补丁:
    wget https://download.suhosin.org/suhosin-0.9.38.tar.gz
    tar zxvf suhosin-0.9.38.tar.gz 
    cd suhosin-0.9.38
    /usr/local/php/bin/phpize 
    ./configure --with-php-config=/usr/local/php/bin/php-config 
    make && make install
    View Code
    然后,
         # vim /usr/local/php/etc/php.ini
    将 extension_dir = "./" 更改为:
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20121212/ " 
    extension="suhosin.so"
     

  • 相关阅读:
    信号量Semaphore
    进程锁Lock
    创建多进程Process
    什么是进程?什么是线程?进程和线程之间的区别是什么?
    Git命令
    xss攻击问题以及如何防范
    ORM跨表查询问题
    for循环将字典添加到列表中出现覆盖前面数据的问题
    Linux源码的目录结构
    嵌入式中 MMU的功能
  • 原文地址:https://www.cnblogs.com/chinas/p/4572281.html
Copyright © 2020-2023  润新知