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

来源:互联网 发布:中国房地产 知乎。 编辑:程序博客网 时间:2024/05/20 18:02
首先说明:
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;




阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 魔幻陀螺二的陀螺拆不动怎么办 我不干了小厂不给我发工资怎么办 货车司机把人撞成重伤没钱出怎么办 房主卖房定金收了不想卖怎么办 领导迟迟不给升职加薪机会怎么办 加工中心铣圆进出刀有接刀痕怎么办 烧茄子时炸茄子茄子太吸油怎么办? 梦金园黄金刚买了不给退怎么办 给同学抄作业被老师发现了怎么办 不准体罚和变相体罚后熊孩子怎么办 钢琴练的不好走不了专业怎么办 老师来信息说孩子学习退步了怎么办 老人磕着膝盖走路腿疼怎么办 腿膝盖一受凉就疼怎么办可以不疼 手臂和膝盖摔烂了好痛?怎么办 结扎一个月后坐太久腰酸怎么办 杠铃深蹲肩关节背不过去怎么办 QQ音乐在别的地方停不了歌怎么办 孕8周胎儿发育变慢怎么办 8个月宝宝肋张力高怎么办 术后5个月左手张力高怎么办 宝宝4个月体检四肢张力稍高怎么办 上腹绷紧大便酸臭酸臭的怎么办 小学生从双杠上摔下来会怎么办 去健身房碰到教练让你报私教怎么办 提踵把小腿练粗了怎么办 健身后两个小腿不一边粗怎么办 宿舍床上隔段时间有虫子怎么办 b2驾照实习证扣6分怎么办 健身房有个教练想撩我怎么办 学车跟校长投诉了教练怎么办 打架把眼睛打肿怎么办属于什么伤 罗马椅有点高做不了山羊挺身怎么办 节食一周后暴食肚子胀的难受怎么办 健身教练和会员聊天说错肌肉怎么办 两个月宝宝吃奶老是呛到怎么办 怀孕六个月体重一天增加两斤怎么办 备孕同房后一直乳头立起来怎么办 夏天出汉内衣老是湿的怎么办 大腿旁边长了红色的癣怎么办 跑步膝盖疼怎么办能不能再跑了