---线上版本----php5.2.17---mysql5.55----nginx1.12.1编译安装

140 篇文章 1 订阅
83 篇文章 0 订阅

首先说明:
buildconf: autoconf not found.
            You need autoconf version 2.57 or newer installed.

这个并没有安装

xml-confng

xml configuation not found  : 软链到 /usr/bin下

安装m4-1.4.18

./configure --prefix=/usr/local/related/m4

安装perl 5.26.0

configure.gnu --prefix=/usr/local/related/perl

安装pcre 8.20

./configure --prefix=/usr/local/related/pcre


安装zlib 1.2.33

./configure --prefix=/usr/local/related/zlib  --可能需要生成64位版本

安装openssl

先安装openssl-fips 2.0.16
./config --prefix=/usr/local/related/openssl-fips

安装openssl-1.0.2l

./config fips --prefix=/usr/local/related/openssl --with-fipsdir=/usr/local/related/openssl-fips --openssldir=/usr/local/related/openssl/ssl

第二次安装生成动态库

./config fips shared --prefix=/usr/local/related/openssl --with-fipsdir=/usr/local/related/openssl-fips --openssldir=/usr/local/related/openssl/ssl

make clean

make


阿里云上竟然没有报找不到openssl.h头文件的错误

然后替换系统旧版本

ln -s /usr/local/related/openssl/include/openssl /usr/include/

ln -s /usr/local/related/openssl/bin/openssl /usr/bin/

查看  openssl version
openssl version
OpenSSL 1.0.2l-fips  25 May 2017


安装nginx  1.12.1

./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.20 --with-zlib=/usr/local/src/zlib-1.2.3 --with-openssl=/usr/local/src/openssl-1.0.2l

配置开机自启后并启动nginx,同时绑定域名,注意阿里云后台的设置,需要开启访问

chkconfig --add nginx

chkconfig --level 3 nginx on

service nginx start 启动成功
service nginx start
sed: -e expression #1, char 26: unterminated `s' command
Starting nginx:                                            [  OK  ]

mysql 安装


安装bison 2.4.1

./configure

报了一个警告:config.status: WARNING: not linking GNUmakefile to itself


make

make install

安装ncursese 6.0

./configure --prefix=/usr --with-shared --without-debug --without-ada


安装cmake 3.9.2

./configure --prefix=/usr/local/related/cmake

make

make install




安装mysql 5.55

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DMYSQL_DATADIR=/usr/local/mysql/data  -DWITH_INNOBASE_STORAGE_ENGINE=1  -DMYSQL_TCP_PORT=3306  -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock  -DMYSQL_USER=mysql  -DWITH_DEBUG=0

make

make install

cd support-files

cp mysql.server /etc/init.d/mysqld

cp my-large.cnf /usr/local/mysql/my.cnf

chkconfig --add mysqld

vi /etc/init.d/mysqld

mysqld_pid_file_path=/usr/local/mysql/pids/mysqld.pid

mkdir -p /usr/local/mysql/pids

mkdir -p /usr/local/mysql/logs

mkdir -p /usr/local/mysql/lock/subsys

vi /usr/local/mysql/my.cnf

[mysqld]段中添加:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

添加一段
[mysqld_safe]
log-error=/usr/local/mysql/logs/mysqld.error
pid-file=/usr/local/mysql/pids/mysql.pid

 

    [client]
    port    = 3306
    socket    = /usr/local/mysql/mysql.sock
    
    [mysqld_safe]
    #pid-file = /usr/local/mysql/pids/mysql.pid #注意位置,只能在mysqld栏中
    log-error = /usr/local/mysql/logs/mysqld.log  #注意位置

    [mysqld]
    user = mysql
    port  = 3306
    socket  = /usr/local/mysql/mysql.sock
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    #tmpdir  = /usr/local/mysql/tmp
     pid-file = /usr/local/mysql/pids/mysql.pid
    #skip-grant-tables
    #rpl_semi_sync_master_enabled=1
    #rpl_semi_sync_master_timeout=1000
    #rpl_semi_sync_slave_enabled=1
    
    sql_mode        = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    # Log
    #general-log = 1
    #general_log_file = /mysqllog/bitvclog/3306/mysql.log
    
    slow-query-log = 1
    slow-query-log-file = /usr/local/mysql/logs/slow.log
    log-slow-admin-statements
    log-slow-slave-statements
    long-query-time = 1
    log-error = /usr/local/mysql/logs/mysqld.log
    log-warnings  = 2  #mysql8 not used

    back_log = 512
    max_connections = 2048
    max_connect_errors = 10000
    connect_timeout = 60

    skip-external-locking
    skip-name-resolve
    #skip-grant-tables
    #skip-symbolic-links
    #skip-innodb_checksums
    #skip-innodb_doublewrite
    explicit_defaults_for_timestamp

    key_buffer_size = 16M
    max_allowed_packet = 32M
    table_open_cache = 512
    sort_buffer_size = 8M
    read_buffer_size = 4M
    read_rnd_buffer_size = 32M
    myisam_sort_buffer_size = 1M
    thread_cache_size = 32

    query_cache_size = 128M       # 8.0 not used
    query_cache_type = 0           #  see up
    server-id = 1
    log-bin                 = mysql-bin
    binlog_format           = mixed
    sync_binlog             = 1

    expire-logs-days        = 7

    max_binlog_size         = 256M
    sync_binlog                     = 30

    default-storage-engine = InnoDB
    innodb_max_dirty_pages_pct = 90
    innodb_file_per_table = 1
    innodb_io_capacity = 100000
    character-set-server = utf8
    innodb_log_buffer_size = 8M
    innodb_flush_log_at_trx_commit = 1
    innodb_lock_wait_timeout = 50

    [mysqldump]
    quick
    max_allowed_packet = 32M

    [mysql]
    no-auto-rehash
    #safe-updates

    [myisamchk]
    key_buffer_size = 128M
    sort_buffer_size = 128M
    read_buffer = 2M
    write_buffer = 2M

    [mysqlhotcopy]
    interactive-timeout

 


设置所有者

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

初始化:

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql

开启3306端口

iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

service iptables save

开启mysql

service mysqld start

查看 ps -ef | grep mysqld

连接 /usr/local/mysql/bin/mysql

quit

安装php

安装libiconv-1.14

./configure --prefix=/usr/local/related/iconv

make && make install


安装libxml2-2.8.0

./configure --prefix=/usr/local/related/libxml2 --with-zlib=/usr/local/related/zlib --with-iconv=/usr/local/related/iconv

make

make install

报zlib的错;::/usr/bin/ld: /usr/local/related/zlib/lib/libz.a(crc32.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
/usr/local/related/zlib/lib/libz.a: could not read symbols: Bad value

http://blog.csdn.net/youcijibi/article/details/78059140

重新安装zlib

cd /usr/local/src/zlib-1.2.3   低版本的zlib务必这样装,否则装gd和libpng时都有问题

CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/related/zlib

再次安装libxml2

报错:
cannot remove `libtoolT': No such file or directory

编辑configure  文件

将13716行的RM='RM -r' 修改为RM='RM -rf' 即可

再次编译

./configure --prefix=/usr/local/related/libxml2 --with-zlib=/usr/local/related/zlib --with-iconv=/usr/local/related/iconv

make && make install

如果报错:collect2: error: ld returned 1 exit status  make[2]: *** [libxml2.la] Error 1,则:

./configure --prefix=/usr/local/related/libxml2-2.8.0 --with-zlib=/usr/local/related/zlib-1.2.3/lib/libz.a

安装freetype 2.4.6

./configure --prefix=/usr/local/related/freetype

make  && make install

安装jpeg-9b

./configure --prefix=/usr/local/related/jpeg-9b

make && make install

安装libpng 1.2.33

./configure --prefix=/usr/local/related/libpng LDFLAGS=-L/usr/local/related/zlib/lib CPPFLAGS=-I/usr/local/related/zlib/include


make && make install

安装libgd 2.0.35

./configure --prefix=/usr/local/related/gd --with-jpeg=/usr/local/related/jpeg-9b --with-png=/usr/local/related/libpng --with-zlib=/usr/local/related/zlib --with-freetype=/usr/local/related/freetype

报错:
53: error: png.h: No such file or directory

修改gd_png.c

png.h 路径改为安装路径,或者把它复制到src/gd.2.0.35下

再次编译 make

png.h:460:18: error: zlib.h: No such file or directory
png.h:464:21: error: pngconf.h: No such file or directory

要么将文件复制到src/gd.2.0.35下,要么在png.h中修改为安装路径

再次编译
报错;
gdparttopng.o: In function `main':
/usr/local/src/gd-2.0.35/gdparttopng.c:42: undefined reference to `gdImageCreateFromGd2Part'

yum install  libjpeg-devel freetype-devel libpng-devel

然后重新configure
./configure --prefix=/usr/local/related/gd --with-jpeg=/usr/local/related/jpeg-9b --with-png=/usr/local/related/libpng --with-zlib=/usr/local/related/zlib --with-freetype=/usr/local/related/freetype

再次make

然后make install

安装curl -7.54.1

./configure --prefix=/usr/local/related/curl

make && make install

安装re2c 0.15.3

./configure

make && make install

安装flex 2-5.33

./autogen.sh: line 32: autoreconf: command not found

所以还是需要安装autoconf

yum install -y autoconf

还是报错
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory

安装automake

yum install -y automake

一直报错:无法安装,可能需要试试其他版本 :/bin/sh ./ylwrap scan.l .c scan.c -- /bin/sh /usr/local/src/flex-flex-2-5-33/missing --run flex  
make[2]: *** [scan.c] Error 1
make[2]: Leaving directory `/usr/local/src/flex-flex-2-5-33'




安装php

使用php-fpm方式运行,而php-5.2.17需要安装php-fpm的补丁,下载:

https://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz

打补丁

gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1

还需要一个libxml2的补丁:

问题:/home/ec2-user/lnmp1.0-full/php-5.2.17/ext/dom/node.c:1953:21: error: dereferencing pointer to incomplete type
/home/ec2-user/lnmp1.0-full/php-5.2.17/ext/dom/node.c:1955:5: error: dereferencing pointer to incomplete type
make: *** [ext/dom/node.lo] Error 1

curl -o php-5.2.17.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt
cd php-5.2.17
patch -p0 -b <../php-5.2.17.patch 

然后安装:

./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql  \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--enable-fastcgi \
--enable-fpm  \
--enable-force-cgi-redirect \

--with-libxml-dir=/usr/local/related/libxml2 \
--with-openssl=/usr/local/related/openssl \
--with-zlib-dir=/usr/local/related/zlib \
--with-jpeg-dir=/usr/local/related/jpeg-9b \
--with-png-dir=/usr/local/related/libpng \
--with-curl=/usr/local/related/curl \
--with-iconv=/usr/local/related/iconv \
--with-freetype-dir=/usr/local/related/freetype \
--with-pcre-regex \
--enable-bcmath \
--enable-ftp \
--enable-sockets \
--enable-mbstring \
--enable-mbregex \
--with-gd=/usr/local/related/gd \
--enable-soap \
--with-mcrypt=/usr/local/related/libmcrypt \
--enable-zip

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --enable-fastcgi --enable-force-cgi-redirect --with-libxml-dir=/usr/local/related/libxml2-2.9.1 --with-openssl-dir=/usr/local/related/openssl-1.0.2l --with-zlib-dir=/usr/local/related/zlib-1.2.3 --disable-debug --with-mysqli=/usr/local/mysql/bin/mysql_config  --with-mysql-sock=/usr/local/mysql/mysql.sock --with-curl=/usr/local/related/curl-7.54.1 --with-png-dir=/usr/local/related/libpng-1.2.59 --with-jpeg-dir=/usr/local/related/jpeg-9b --with-iconv --with-pcre-regex --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --with-gd=/usr/local/related/libgd-2.0.35  --enable-soap --enable-shmop --enable-sysvsem --with-xsl=/usr/local/related/libxslt-1.1.32 --enable-zip --with-freetype-dir=/usr/local/related/freetype-2.4.6 -with-pcre-dir=/usr/local/related/pcre-8.41 --with-bz2=/usr/local --enable-gd-native-ttf

 

./configure --prefix=/usr/local/php5.2 --with-config-file-path=/usr/local/php5.2/etc --enable-fpm --enable-fastcgi --enable-force-cgi-redirect --with-libxml-dir=/usr/local/related/libxml2-2.98 --with-openssl-dir=/usr/local/related/openssl-1.0.2p --with-zlib-dir=/usr/local/related/zlib-1.2.3 --disable-debug --with-mysql-sock=/usr/local/mysql5.6/mysql.sock --with-mysql=/usr/local/mysql5.6  --with-mysqli=/usr/local/mysql5.6/bin/mysql_config  --with-curl=/usr/local/related/curl-7.54.1 --with-png-dir=/usr/local/related/libpng-1.2.33 --with-jpeg-dir=/usr/local/related/jpeg-9c --with-iconv --with-pcre-regex --enable-bcmath --enable-ftp --enable-sockets --enable-mbstring --enable-mbregex --with-gd=/usr/local/related/libgd-2.0.35  --enable-soap --enable-shmop --enable-sysvsem --with-xsl=/usr/local/related/libxslt-1.1.32 --enable-zip --with-freetype-dir=/usr/local/related/freetype-2.4.6 -with-pcre-dir=/usr/local/related/pcre-8.41  // 5.2版本没它--with-libzip=/usr/local/related/libzip-1.5.1 --with-bz2=/usr/local


bison-2.4.1/bin目录需要加到环境变量否则会找不到

 

注意红色部分

 

make && make install


然后后续

php安装完成后,复制/usr/local/src/php-5.2.17/sapi/cgi/fpm/init.d下的php-fpm.in 到 /etc/init.d/php-fpm

cp /usr/local/src/php-5.2.17/sapi/cgi/fpm/init.d/php-fpm.in /etc/init.d/php-fpm

然后编辑/etc/init.d/php-fpm

vi /etc/init.d/php-fpm

在#!/bin/bash下面添加两行

#chkconfig:345 62 62
#description:php-fpm

然后将@这种形式的路径修改为安装路径

php_fpm_BIN=/usr/local/php/bin/php-cgi
php_fpm_CONF=/usr/local/php/etc/php-fpm.conf
php_fpm_PID=/usr/local/php/pids/php.pid



然后修改权限给可执行权限
chmod a+x /etc/init.d/php-fpm

然后增加开机自启动

chkconfig --add php-fpm

然后添加运行php的用户

groupadd -r www & useradd -r -g www -s /bin/false -M www


然后 cp /usr/local/src/php-5.2.17/sapi/cgi/fpm/conf/php-fpm.conf.in /usr/local/php/etc/php-fpm.conf

vi php-fpm.conf

使用www用户,把下面两行的注释去掉
Unix user of processes
<value name="user">www</value>


Unix group of processes
<value name="group">www</value>

修改@路径为绝对路径

                Pid file
                <value name="pid_file">/usr/local/php/pids/php.pid</value>

                Error log file
                <value name="error_log">/usr/local/php/logs/error.log</value>


:wq!保存退出


创建logs以及pids两个文件夹

然后复制Php.ini文件

cp /usr/local/src/php-5.2.17/php.ini-dist /usr/local/php/etc/php.ini #复制php配置文件到安装目录



然后安装zendoptimizer

cd /usr/local/src/ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp

mkdir -p /usr/local/zendoptimizer && cp ZendOptimizer.so /usr/local/zendoptimizer/

然后在php.ini中加入optimizer的配置

vi /usr/local/etc/php.ini

在底部加入:

[Zend Optimizer]
zend_optimizer.optimization_level=11
zend_extension="/opt/local/zend/ZendOptimizer.so"


修改 /usr/local/php/etc/php-fpm.conf

设置监听端口为 socket通信

unix:/usr/local/php/run/php-fpm.sock

然后创建run文件夹

mkdir -p /usr/local/php/run

然后去修改nginx,让其支持php

修改/usr/local/nginx/nginx.conf 配置文件,需做如下修改
user www www; (首行user去掉注释,并与/usr/local/php/etc/php-fpm.conf中的user,group配置同)

vi /usr/local/nginx/nginx.conf

        location ~ \.php$ {
            root           html;
            fastcgi_pass   unix:/usr/local/php/run/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }


然后重启下nginx试下

service nginx restart

nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
sed: -e expression #1, char 26: unterminated `s' command
Starting nginx:                                            [  OK  ]

nginx成功

然后启动php-fpm

 

service php-fpm start

开启失败报错:

root@centos php-5.2.17]# /usr/local/php5.2.17/sbin/php-fpm start
Starting php_fpm Error in argument 1, char 1: no argument for option -
Usage: php-cgi [-q] [-h] [-s] [-v] [-i] [-f <file>]

因为配置编译php时没有添加红色那段,所以需要重新编译

重新编译php时提示xml找不到了

直接yum libxml-devel 后可以了,但是必须重新解压一份新的php-5.2.17后才行的。

编译安装好后即可开启,可以查看phpinfo

    //phpinfo 中php-fpm是否为active ,因为查看server api 仍显示的是CGI/FastCGI,所以查看php-fpm状态即可。

    //同时usr/local/php/etc/php-fpm.conf中监听的端口不用加unix前缀,nginx.conf需要加

//最后记得项目目录所有者设置为www

然后对于mysql 修改数据库密码:

修改数据库密码:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h localhost.localdomain password 'new-password'

 

或者登陆后

update user set password=PASSWORD('xxx') where user='root' and host='localhost;

update user set password=PASSWORD('xxx') where user='root' and host='127.0.0.1';

修改完毕删除所有空密码的用户记录:

delete from user where password='';

 

记得刷新

 

flush privileges;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值