首先说明:
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通信
/usr/local/php/run/php-fpm.sock
unix://同时usr/local/php/etc/php-fpm.conf中监听的端口不用加unix前缀,nginx.conf需要加
然后创建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;