lnmp编译安装

lamp:
卸载php
查看是否有php

rpm -qa | grep php

卸载

yum remove php*

查看有没有php.ini的配置文件
有必要在全局下(根目录)搜索下 php.*文件,看还有没有,有则删除


卸载 mysql
查看是否有 mysql软件:

rpm -qa | grep mysql

如果有

yum remove mysql* compat-mysql
rm -rf /var/lib/mysql
rm /etc/my.cnf

再有必要在全局下(根目录)搜索下 my.*文件,看还有没有,有则删除

find . -name my.*

卸载 apache,在根目录下查找 httpd

find . -name httpd

关闭 httpd服务

/路径/httpd stop

列出httpd 相关程序包

rpm -qa|grep httpd

卸载包

rpm -e --nodeps httpd

关闭 iptables 和 SELINUX

service iptables stop
vim /etc/sysconfig/selinux

然后,修改

SELINUX=disable

上面是为安装作准备
下面是真正的安装的开始
由于linux的关系,每个软件都有一个默认的安装路径,
如:/usr/local,一般都安装在这里,此为安装的路径前,
可以通过软件的

./configure --help #查看

如果要修改安装路径,则可以

--prefix=路径

来修改,这里都用默认的,不用修改,方便查看

源码安装 mysql
安装选择的是 Source Code平台的
下载版本为 mysql-5.6.23.tar.gz
此版本要自己亲自编译,所以最好不过了
安装编译源码所需的工具和库

yum install gcc gcc-c++ ncurses-devel perl curses

其中,一般要安装两种包,类似: pcre和pcre-devel
pcre提供编译版本的库,
pcre-devel提供开发阶段的头文件和编译项目的源代码,
所以是我们所需要的


安装cmake,从http://www.cmake.org下载源码并编译安装
为了方便,把 cmake-NN.tar.gz复制到 /usr/local里

tar -xzvf cmake-NN.tar.gz  
cd cmake-NN  
./bootstrap
make && make install 

编译安装,根据官网
设置MySQL用户和组

新增mysql用户组

groupadd mysql

新增mysql用户

useradd -r -g mysql mysql

解压 mysql压缩包,此时方法,我把压缩包放在 /usr/local里

tar zxvf mysql-VERSION.tar.gz
cd mysql-VERSION

用cmake编译和安装

cmake .  # 此时有可能提示 ncurses-devel 没有安装,重新 yum install ncurses-devel
make && make install

修改mysql目录所有者和组

cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .

初始化mysql数据库

scripts/mysql_install_db --user=mysql

修改mysql数据库文件目录

chown -R root .
chown -R mysql data

设置安全

bin/mysqld_safe --user=mysql &

复制mysql服务启动配置文件

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

复制mysql服务启动脚本及加入PATH路径

cp support-files/mysql.server /etc/init.d/mysqld

用vim打开

vim /etc/profile

添加如下内容:


PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH

保存退出,然后

source /etc/profile

启动mysql服务

service mysqld start

启动 mysql命令登陆

ln -s /usr/local/mysql/bin/mysql /usr/bin #做个链接即可

此时,可以登陆数据库

mysql -h localhost -u root -p

密码为空
然后可以修理那些用户名
如删除危险的,设置密码...
设置密码(123456)如下

update user set Password=password('123456') where Host='localhost';

刷新权限

flush privileges;

可能会出现的错误:

Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid). 

解决:先删除 /etc/my.cnf文件,然后
再从上面步骤中的 

scripts/mysql_install_db --user=mysql

开始到结束再重新来一次

如果还是不行,直接查看这个文件,一般提示就是内存不足,此时可通过增加 swap来实现,
具体方法参考:http://www.cnblogs.com/lin3615/p/4666788.html此时mysql安装成功,lamp,lnmp都用这种方式安装 m以下安装 nginx

安装编译工具

yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
yum install openssl
yum install openssl-devel
yum install zlib
yum install zlib-devel
yum install pcre
yum install pcre-devel
安装 nginx开始,先复制压缩包到 /usr/local
结合官网加上对应的参数,如
 --prefix=/usr/local/nginx 
--with-http_ssl_module (支持 ssl)
tar -zxvf nginx-version.
cd nginx-varsion
./configure 
make && make install
如果有问题,可以换个版本用
启动nginx
/usr/local/nginx/sbin/nginx

关闭 nginx

/usr/local/nginx/sbin/nginx -s stop


nginx下安装 php

tar -zxvf php-version.tar.gz
cd php-version

./configure --enable-fpm --with-mysql \
--with-mysqli --with-fpm-user=用户名 \
--with-fpm-group=用户组名 --enable-calendar \
--enable-mbstring --enable-soap --enable-sockets \
--enable-zip --with-gd --enable-ftp \
--enable-libxml --with-curl \
--with-openssl --with-mcrypt=/usr/local/lib \
--with-config-file-path = /usr/local/php/php.ini
--enable-pcntl --with-freetype-dir=/usr/local/freetype
--with-jpeg-dir --with-png-dir --enable-session --enable-gd-native-ttf 
--with-iconv --with-zlib --with-xml

编译安装

make && make install

其中 --with-config-file-path 指定 php.ini路径,如果加上了,
在启动时就不用加上这个路径
如果提示没有哪个,就分别yum  或者 编译安装
enable-pcntl 参数支持多进程,
with-freetype-dir 支持图片验码,要单独安装freetype
with-jpeg-dir with-png-dir 有可能会报错,直接安装 对应的包
yum install libjpeg* libpng* 即可
其中的确 mcrypt可能要安装别的文件来完成
如果提示需要,编译这些时,则可下载
libmcrypt(libmcrypt-2.5.8.tar.gz ):
mcrypt(mcrypt-2.6.8.tar.gz ):
mhash(mhash-0.9.9.9.tar.gz ):

先安装 libmcrypt,再mhash,最后才mcrypt
步骤基本是 解压,安装,如

tar -zxvf xxxx.gz.gz
cd xxxx
./configure
make && make install

当安装 mcrypt时,会提示 by modifying LD_LIBRARY_PATH,
则用以下方式指定

LD_LIBRARY_PATH=/usr/local/lib ./configure
make && make install

复制文件到指定的位置

cp php.ini-production /usr/local/php/php.ini #配置文件路径
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

打开 php.ini

vim /usr/local/php/php.ini

定位到 cgi.fix_pathinfo= 并将其修改为如下

cgi.fix_pathinfo=0

打开 php-fpm.conf文件

vim /usr/local/etc/php-fpm.conf

查看

; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = xxxx
group = xxxx

如果用户和组不存在,增加一个存在,或在 系统中用 useradd, groupadd 增加

启动 php-fpm 时,得加上 php.ini的路径(可以先查看 php-fpm文件在哪里),
每次启动时,一定得加上,不然用不到这里的配置文件

php-fpm -c /usr/local/php/php.ini

如果在编译时加入了 --with-config-file-path参数,则直接用

php-fpm 

不用再加上后面的参数

如果出现 9000占用

killall php-fpm

然后重启
	
php-fpm -c /usr/local/php/php.ini

配置nginx,使其支持 php(一定要检查路径)

vim /usr/local/nginx/conf/nginx.conf

接下来,参考php手册即可

修改默认的 location 块,使其支持 .php 文件

location / {
    root   html;
    index  index.php index.html index.htm;
}

下一步配置来保证对于 .php 文件的请求将被传送到后端的
PHP-FPM 模块, 取消默认的 PHP 配置块的注释,
并修改为下面的内容

location ~* \.php$ {
    fastcgi_index   index.php;
    fastcgi_pass    127.0.0.1:9000;
    include         fastcgi_params;
    fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
}

重启 Nginx

/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

为了能够实现重启php,
设置 php-fpm.conf中的参数,开启pid的位置

;pid=run/php-fpm.pid

修改为

pid=run/php-fpm.pid

然后可以先停止 php,其中 php-fpm.pid的路径要正确

kill -INT `cat /usr/local/php/run/php-fpm.pid`


启动 php

php-fpm -c /usr/local/php/php.ini

设置开机自启动 nginx,php-fpm, mysql及修改系统最大连接数,默认为1024

vim /etc/rc.local
ulimit -SHn 65535 #永久开户修改最大文件数
/usr/local/nginx/sbin/nginx   #nginx脚本所在的绝对路径
/usr/local/bin/php-fpm -c /usr/local/php/php.ini  #php-fpm和 php.ini的绝对路径

然后用 chkconfig --level 2345 mysqld on 开启 mysql,可用chkconfig --list 查看 mysqld状态

posted @ 2015-03-29 20:17  好记性还真不如烂笔头  阅读(1301)  评论(0编辑  收藏  举报