您的位置:首页 > 运维架构 > Nginx

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

2017-09-25 17:25 507 查看
首先说明:

buildconf: autoconf not found.

            You need autoconf version 2.57 or newer installed.

这个并没有安装

安装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

设置所有者

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

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

安装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

然后安装:

./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

注意红色部分

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('zjwaa1989a') where user='root' and host='localhost;

update user set password=PASSWORD('zjwaa1989a') where user='root' and host='127.0.0.1';
修改完毕删除所有空密码的用户记录:

delete from user where password='';

记得刷新

flush privileges;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: