1. 从Apache官网下载合适的apache版本 http://httpd.apache.org/download.cgi#apache24
wget -c http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.20.tar.gz
./configure --prefix=/usr/local/apache
2. 解决Apache找不到apr的问题
a:解决apr not found问题>>>>>>
b:解决APR-util not found问题>>>>
c:解决pcre问题>>>>>>>>>
到 httpd-2.4.20安装Apache :
./configure --prefix=/usr/local/apache --enable-rewrite --enable-so --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make && make install
Aapche安装完成!
注册apache为系统服务: 详见 http://www.linuxidc.com/Linux/2012-11/74517.htm
2. 安装php
从php官网下载php稳定版本,例如 http://php.net/get/php-5.6.21.tar.gz/from/a/mirror
1) 先安装libconv : wget -c http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
2) wget -c http://php.net/get/php-5.6.21.tar.gz/from/a/mirror
tar -xzvf mirror
cd
./configure --prefix=/usr/local/php --enable-fpm --with-iconv-dir=/usr/local/libiconv --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache/bin/apxs --with-mysql
make && make install
报错:
/php-5.6.21/ext/iconv/iconv.c:1505: undefined reference to `libiconv_open'
解决办法:
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
[root@test php-5.2.13]# vi Makefile
在安裝 PHP 到系统中时要是发生「undefined reference to libiconv_open’」之类的错误信息,那表示在「./configure 」沒抓好一些环境变数值。错误发生点在建立「-o sapi/cli/php」是出错,没給到要 link 的 iconv 函式库参数。 解决方法:编辑Makefile 大约77 行左右的地方: EXTRA_LIBS = ….. -lcrypt 在最后加上 -liconv,例如: EXTRA_LIBS = ….. -lcrypt -liconv 然后重新再次 make 即可。
make && make install
成功安装PHP
cp php.ini-development /usr/local/php/etc/php.ini
在运行php --ini的时候发现读取的config配置文件不是 /usr/local/php/etc/ 而是/usr/local/php/lib 所以导致 php -m的时候看到配置的和apache加载的不一样。
所以 在/usr/local/php/lib 下 建立一个软连接过来 ln -s/usr/local/php/etc/php.ini/usr/local/php/lib/php.ini
这样就行了。
3. 配置apache与php
1) 确保这行
LoadModule php5_module modules/libphp5.so 并且这行之前加上 PHPIniDir "/usr/local/php/etc/php.ini"
否则phpinfo里面会出现 Loaded Configuration File (none) ,并且修改php 配置都不会生效。
2) 增加apache解析php: AddType application/x-httpd-php .php
3) 增加 DirectoryIndex index.html index.php
4) 告知 Apache 将特定的扩展名解析成 PHP
完成配置SetHandler application/x-httpd-php
对root 授权 grant all privileges on *.* to 'root'@'%' identified by 'password' WITH GRANT OPTION;后
电脑navacat访问出现 2003 can't connect to mysql server on 10038
把防火墙设置为:
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 3306 -j DROP 把DROP 改为ACCEPT ,
另外还有:
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可
5. php安装扩展。
一些扩展最好在php安装的时候就指定安装否则后期安装浪费时间。
将扩展单独编译成动态连接库so文件
定位到php源码目录 例如以下是安装gettext扩展。
cd php-5.6.21
cd ext/gettext
#运行phpize configure
/usr/local/php/bin/phpize
注意: 如果提示找不到config0.m4 config.m4 则在当前目录下使用 cp config0.m4 config.m4。
#编译,指定php-config
./configure --with-php-config='/usr/local/php/bin/php-config'
make && make install
vi /usr/local/php/etc/php.ini
#Load模块
extension=gettext.so
保存并重启Apache
/usr/local/apache/bin/apachectl restart。
phpinfo 查看是否生效。
可以用 /usr/local/php/bin/php -m|grep gettext 查看
找不到 libmcrypt
yum install php-mcrypt libmcrypt libmcrypt-devel
6.部署phpmyadmin 将
cp config.sample.inc.php config.inc.php
若出现 2002 - 服务器没有响应(或本地服务器的套接字没有正确设置 请设置 $cfg['Servers'][$i]['host'] = '127.0.0.1' 即可!
7. 安装memcache
需要先安装libevent 下载后 wget http://www.monkey.org/~provos/libevent-1.3.tar.gz
tar xzvf libevent-1.3.tar.gz
cd /usr/local/libevent-1.3
./configure --prefix='/usr/local/libevent'
make && make install
make的时候出错
“event.c:156:20: note: each undeclared identifier is reported only once for each function it appears in make[2]: *** [event.lo] Error 1 make[2]: Leaving directory `/usr/local/libevent-1.3' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/usr/local/libevent-1.3' make: *** [all] Error 2”
然后直接修改 vi event.c
在#include "config.h" 后面加上#include "time.h" 【好神奇】
再次make 成功
1) 安装服务器memcached (千万不要搞错 不要去下http://pecl.php.net/package/memcached 此链接是php的扩展)
wget -c http://memcached.org/files/memcached-1.4.25.tar.gz
tar -xzvf memcached-1.4.25.tar.gz
cd memcached-1.4.25
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
make && make install
2) 安装php扩展memcache
wget http://pecl.php.net/get/memcache-2.2.7.tgz
tar xzvf memcache-2.2.7.tgz
cd memcache-2.2.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache
make && make install
把 memcache.so 加入php.ini 重启服务service httpd restart
启动memcached
/usr/local/memcached/bin/memcached -d -u root -m 256 -p 11211 -l localhost
注意:有时候上面命令能生效,但有些服务器启动不了是因为 加 -l localhost, 去掉后就能启动了。奇怪 查找中...............
折腾了几个小时才知道安装错了,晕哦下次一定要注意!尤其是memcached 去下http://pecl.php.net/package/memcached这个是错的,还有客户端版本也要注意。
安装扩展其实很简单只要不要搞错 真的很简单!
不过可以安装 http://pecl.php.net/package/memcached 这个php扩展库,这个支持比memcache更多一些不过他需要libmemcached支持。
./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached --disable-memcached-sasl
8. mysql 配置优化
配置文件可以根据机器配置 选择support_files目录下的ini文件进行选择
1) skip-name-resolve 禁止mysql对外部连接dsn解析
2) skip-external-locking 避免mysql外部锁定
4) 如果opened_tables太大,应该把my.cnf中的table_cache变大 5).如果Key_reads太大,则应该把my.cnf中key_buffer_size变大.可以用 Key_reads/Key_read_requests计算出cache失败率 6).如果Handler_read_rnd太大,则你写的SQL语句里很多查询都是要扫描整个表,而没有发挥索引的键的作用 7).如果Threads_created太大,就要增加my.cnf中thread_cache_size的值.可以用 Threads_created/Connections计算cache命中率 8).如果Created_tmp_disk_tables太大,就要增加my.cnf中tmp_table_size的值,用基于内存的临时表代替基 于磁盘的 更多优化配置详见: http://www.it168.com/redian/mysqlyh/
9.memcache和redis使用与区别。
10. redis安装使用
按照以上安装一切顺利进行!