linux 自行安装lanmp


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的问题


  1. wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz  
  2. wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz  
  3. wget http://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.zip

a:解决apr not found问题>>>>>>


  1. [root@xt test]# tar -zxf apr-1.4.5.tar.gz  
  2. [root@xt test]# cd  apr-1.4.5  
  3. [root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr  
  4. [root@xt apr-1.4.5]# make && make install  
  5.  

  b:解决APR-util not found问题>>>>


  1. [root@xt test]# tar -zxf apr-util-1.3.12.tar.gz  
  2. [root@xt test]# cd apr-util-1.3.12  
  3. [root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-config  
  4. [root@xt apr-util-1.3.12]# make && make install 


  c:解决pcre问题>>>>>>>>>


  1. [root@xt test]#unzip -o pcre-8.10.zip  
  2. [root@xt test]#cd pcre-8.10  
  3. [root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre  
  4. [root@xt pcre-8.10]#make && make install 


  到 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
完成配置


另外:php和Apache可以以几种方式运行: fastcgi 和 module方式运行,有时间可以试试看


4. 安装mysql
http://www.cnblogs.com/xiongpq/p/3384681.html

另外防火墙的问题: 
对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安装使用


按照以上安装一切顺利进行!





















你可能感兴趣的:(linux 自行安装lanmp)