1、使用YUM安装开发包
yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl openssl-devel gcc* libxml2 libxml2-devel crul-devel libgpeg* libpng-devel freetype-devel libcurl-devel libcurl libmcrypt libmcrypt-devel libtool libtool-devel libjpeg-devel gcc pcre pcre-devel
2.安装apache
1.安装apache2之前的步骤先卸载rpm 方式安装的apache
a.使用rpm命令查看当系统是否安装apache服务
# rpm -qa |grep httpd,。
b.如未看到有提示安装,则直接进行安装。
c.如看到提示安装的apache服务,使用
# rpm -e --nodeps http-*进行卸载。
2.安装apr和apr-util
a.使用文件传输工具,将以上两个安装包放到/usr/local/src内进行解压。
b.解压apr包
# tar -jxvf apr-*
c.创建安装目录,
# mkdir /opt/resource
d.进入到apr解压包内进行编译安装:
# ./configure --prefix=/opt/resource/apr && make && make install
e.解压apr-util包 tar -jxvf apr-util-*
f.进入到apr-util目录中进行编译安装:
# ./configure --prefix=/opt/resource/apr-util \
--with-apr=/opt/resource/apr && make && make install
3.通过yum安装 pcre pcre-devel
a.# yum -y install pcre
b.# yum -y install pcre-devel
c.# yum -y install lib*
4.编译安装apache
a.解压apache安装包:tar -jxvf httpd-*
b. #./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-ssl --with-ssl=/usr/lib --enable-cgi --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apahce/htdocs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-module=so
5.创建apache2的快捷方式
# ln -sf /usr/local/apache2/bin/apachectl /usr/sbin/
6.检测与启动apache
# /usr/local/apache2/bin/apachectl -t 测试配置
# /usr/local/apache2/bin/apachectl start 启动服务
7.设置开机自启动
# echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.local
8.开启防火墙的80端口
# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
3.安装mysql
3.1安装前配置
groupadd mysql
useradd -g mysql mysql
3.2解包编译安装
# tar -zxv -f mysql-5.6.10.tar.gz
# cd mysql-5.6.10
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=gbk -DDEFAULT_COLLATION=gbk_chinese_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DSYSCONFDIR=/usr/local/mysql -DWITH_SSL=yes
# make & make install
3.3编译注释
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #Unix socket文件路径,自定义此路径防报错
-DDEFAULT_CHARSET=gbk \ #默认字符
-DDEFAULT_COLLATION=gbk_chinese_ci \ #校验字符
-DEXTRA_CHARSETS=all \ #安装所有扩展字符集
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装blackhole存储引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 #安装frderated存储引擎
-DWITH_READLINE=1 \ #快捷键功能
-DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
-DMYSQL_DATADIR=/usr/local/mysql/data \ #数据库存放目录
-DMYSQL_USER=mysql \ #数据库属主
-DMYSQL_TCP_PORT=3306 \ #数据库端口
-DSYSCONFDIR=/etc \ #MySQL配置文件
-DWITH_SSL=yes #数据库SSL
3.4.编写mysql配置项:
# vi /etc/my.cnf
复制代码 代码如下:
[mysql] # CLIENT #
port = 3306 socket = /tmp/mysql.sock [mysqld]
# GENERAL #
user = mysql default_storage_engine = InnoDB socket = /tmp/mysql.sock pid_file = /var/run/mysqld/mysqld.pid
# MyISAM #
key_buffer_size = 32M
myisam_recover = FORCE,BACKUP
# SAFETY #
max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve
sql_mode= STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,\
NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
sysdate_is_now = 1
innodb = FORCE innodb_strict_mode = 1
# DATA STORAGE #
datadir = /usr/local/mysql/data
# BINARY LOGGING #
log-bin = /usr/local/mysql/log/bin.log expire_logs_days = 30 sync_binlog = 1
# CACHES AND LIMITS #
key_buffer = 256M
max_allowed_packet = 32M
sort_buffer_size = 16M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
thread_stack = 8M
tmp_table_size = 32M
max_heap_table_size = 32M
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 2M
max_connections = 2048
thread_cache_size = 512
open_files_limit = 65535
table_definition_cache = 1024
table_open_cache = 2048
# INNODB #
innodb_log_files_in_group = 2
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
# 2G这个值配置低的话建议改小即可
innodb_buffer_pool_size = 2G
# LOGGING #
log-error=/usr/local/mysql/log/error.log general_log=1
general_log_file=/usr/local/mysql/log/mysql.log
slow_query_log=1 slow_query_log_file=/usr/local/mysql/log/slowquery.log log-output=FILE
# 避免MySQL的外部锁定,减少出错几率增强稳定性
# skip-external-locking
# 禁止sql读取本地文件 # local-infile=0
3.5.将mysql的库文件路径加入系统的库文件搜索路径中
# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf.d/mysql.conf # ldconfig
3.6.输出mysql的头文件到系统头文件
# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
3.7.进入安装路径,初始化配置脚本
# cd /usr/local/mysql # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
3.8.复制mysql启动脚本到系统服务目录
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
3.9.系统启动相关配置
# chkconfig --add mysqld #添加开机启动服务 # chkconfig --level 35 mysqld on #设置mysql启动
3.10.启动mysql
# service mysqld start
3.11.设置初始账户,并登陆后台:
4.安装PHP
# tar -jxvf php-5.4.13.tar.bz2 # cd php-5.4.13
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-libxml-dir=/usr/local/lib --with-zlib-dir=/usr/local/lib --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-gd --enable-soap --enable-sockets --enable-xml --enable-mbstring --with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-curl=/usr/lib --with-freetype-dir=/usr/include/freetype2/freetype/ --enable-bcmath --enable-calendar --enable-zip --enable-maintainer-zts --with-config-file-path=/usr/local/php --enable-fpm
4.1报错信息:
configure:eror:libjpeg.(a|so) not found
解决办法:未安装 libjpeg-devel或cp -frp /usr/lib64/libjpeg.* /usr/lib
4.2报错信息:
configure:error libpng.(a|so) not found
解决办法: cp -frp /usr/lib64/libpng.* /usr/local/lib
4.3报错信息:configure error: png.h not found
解决办法:下载libpng包进行编译安装
./configure --prefix=/usr/local/png && make && make install
4.3报错信息:
/usr/local/src/php-5.2.15/ext/mysqli/mysqli.c:644: error: (Each undeclared identifier is reported only once /usr/local/src/php-5.2.15/ext/mysqli/mysqli.c:644: error: for each function it appears in.) /usr/local/src/php-5.2.15/ext/mysqli/mysqli.c:645: error: ‘MYSQL_RPL_SLAVE‘ undeclared (first use in this function) /usr/local/src/php-5.2.15/ext/mysqli/mysqli.c:646: error: ‘MYSQL_RPL_ADMIN‘ undeclared (first use in this function) make: *** [ext/mysqli/mysqli.lo] Error 1
解决方法: 修改/usr/local/include/mysql/mysql.h 文件内容: (mysql.h这个是根据个人安装的mysql路径来找 在mysql下面的include的mysql目录里 别搞错了) 找到 enum mysql_protocol_type { MYSQL_PROTOCOL_DEFAULT, MYSQL_PROTOCOL_TCP, MYSQL_PROTOCOL_SOCKET, MYSQL_PROTOCOL_PIPE, MYSQL_PROTOCOL_MEMORY }; 在这个中间添加这些内容 ++++++++++++++++++++++++++++++++++++++++++++ /* There are three types of queries - the ones that have to go to the master, the ones that go to a slave, and the adminstrative type which must happen on the pivot connectioin */ enum mysql_rpl_type { MYSQL_RPL_MASTER, MYSQL_RPL_SLAVE, MYSQL_RPL_ADMIN }; ++++++++++++++++++++++++++++++++++++++++++++ typedef struct character_set { unsigned int number; /* character set number */ unsigned int state; /* character set state */ const char *csname; /* collation name */ const char *name; /* character set name */
4.4报错信息:
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor‘:
/home/king/php-5.2.13/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open‘ collect2: ld returned 1 exit status make: *** [sapi/cli/php] Error 1
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open‘」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。
make ZEND_EXTRA_LIBS=‘-liconv‘
4.5报错信息:
/usr/bin/ld: cannot find -liconv
collect2: ld returned 1 exit status
make: *** [libphp5.la] 错误 1
解决方法:
yum -y install libtool libtool-*
下载liconv包进行编译安装
./configure --prefix=/usr/local && make && make install
make clean
make && make install
4.6
在64位centos上编译php时使用了如下参数:
cd php-5.2.11/
./configure --prefix=/usr/local/php/ \
--enable-fastcgi --enable-ftp --enable-mbstring --enable-bcmath \
--with-mysql=/usr/local/mysql/ --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql \
--with-pcre-regex=yes --with-openssl --with-curl \
--enable-sockets --with-gd --enable-gd-native-ttf --with-mcrypt \
--with-jpeg-dir=/usr --with-libdir=lib64 \
--with-freetype-dir=/usr/ --with-zlib
编译时报错:
checking for MySQL UNIX socket location... no
configure: error: Cannot find libmysqlclient under /usr/local/mysql/.
Note that the MySQL client library is not bundled anymore!
应该是由于我使用了--with-libdir=lib64参数有关,解决办法 :
cd /usr/local/mysql/
ln -s lib lib64
4.7报错信息:
/usr/local/src/php-5.4.9/sapi/cli/php: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory make: *** [ext/phar/phar.php] Error 12
解决办法 :
#echo "/usr/local/lib" >> /etc/ld.so.conf
#ldconfig
处理完成以上错误后进执行
#make clean /清除上次编译内容
#make ZEND_EXTRA_LIBS=‘-liconv‘
#make test
#make install
4.7测试php
vi /usr/local/apache/htdocs/test.php
<?phpinfo()?>
5.1安装
原文:http://www.cnblogs.com/liuxf88/p/6398685.html