您的位置:首页 > 运维架构 > Linux

linux 自行安装lanmp

2016-07-14 21:58 369 查看
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的问题

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

a:解决apr not found问题>>>>>>
[root@xt test]# tar -zxf apr-1.4.5.tar.gz  
[root@xt test]# cd  apr-1.4.5  
[root@xt apr-1.4.5]# ./configure --prefix=/usr/local/apr  
[root@xt apr-1.4.5]# make && make install  
 

  b:解决APR-util not found问题>>>>
[root@xt test]# tar -zxf apr-util-1.3.12.tar.gz  
[root@xt test]# cd apr-util-1.3.12  
[root@xt apr-util-1.3.12]# ./configure --prefix=/usr/local/apr-util -with- apr=/usr/local/apr/bin/apr-1-config  
[root@xt apr-util-1.3.12]# make && make install 

  c:解决pcre问题>>>>>>>>>
[root@xt test]#unzip -o pcre-8.10.zip  
[root@xt test]#cd pcre-8.10  
[root@xt pcre-8.10]#./configure --prefix=/usr/local/pcre  
[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

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
完成配置

另外: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 查看

找不到 libmcryptyum  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扩展memcachewget http://pecl.php.net/get/memcache-2.2.7.tgz tar xzvf memcache-2.2.7.tgzcd 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安装使用


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







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: